더북(TheBook)

문제 시스템 구조상 다른 클라이언트( 제3자 애플리케이션이나 API)를 통해서도 데이터베이스의 사용자 정보를 수정할 수 있다면 캐시와 원본 데이터 사이의 불일치 문제가 발생할 수 있습니다. 캐시와 원본 데이터가 달라지면 시스템이 엉뚱한 사용자 정보를 반환하는 문제가 발생합니다.

즉, 캐시와 원본 데이터의 불일치를 방지하기 위해 Write-Through 캐시를 적용했음에도 다른 경로로 원본 데이터가 수정되지 않을 것이라는 불완전한 가정을 기반으로 설계했기 때문에 향후 문제가 생길 가능성이 있는 것입니다.

최악의 경우 복잡성은 더 큰 복잡성을 낳습니다. 앞선 불안정한 가정의 예에서 알 수 있듯이, 시스템의 기본적인 구조가 제 역할을 하지 못하면 새로운 기능을 만들거나 수정하는 작업은 본질적으로 무작위한 변경을 만들어 내는 것입니다. 새로운 기능과 수정은 개별적으로 이전 변경 사항과 비교하여 평가해야 합니다. 가장 쉬운 경우는 새로운 기능이나 수정 작업이 단일하고 독립된 구성 요소를 추가하는 것입니다. 하지만 최악의 경우에는 이러한 변경이 시스템 전체에 영향을 미치는 새로운 의존성을 만들어 낼 수도 있습니다. 이를 방치하면 시스템 복잡성은 항상 증가할 것이며, 증가 속도는 결국 느리냐 빠르냐의 문제가 될 뿐입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.