더북(TheBook)

엔티티 A의 인스턴스가 서비스에서 관리되고 현재 모든 데이터 변경을 특정 클라이언트만 하고 있다면 조회 속도를 높이고자 Write-Through 캐시5를 구현할 수 있습니다. 하지만 이 경우 시스템에서 구조적으로 엔티티 A의 데이터를 다른 클라이언트가 변경할 수 있다면, 앞선 캐시 구현은 특정 클라이언트만 엔티티 A에 접근할 수 있다는 불완전한 가정을 기반으로 설계된 것입니다. 다만 이렇게 구현하더라도 당장은 문제가 발생하지 않을 수도 있습니다. 그러나 다른 클라이언트가 직접 엔티티 A의 데이터를 읽거나 쓰는 상황이 발생하면 결국 시스템은 망가질 것입니다.

Note ≣ | 불완전한 가정을 기반으로 한 설계 예시

상황 쇼핑몰 시스템의 사용자 서비스(user service)는 고객의 프로필 정보 인스턴스를 관리하며, 사용자는 애플리케이션으로 해당 서비스에 접근하여 주소나 전화번호 같은 정보를 수정할 수 있습니다. 개발 팀은 캐시를 추가하여 사용자 서비스 성능을 높이고, 이 추가한 캐시로 발생할 수 있는 데이터 불일치를 방지하려고 Write-Through 캐시 전략을 사용합니다.

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