ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION215 / 1500
성능난이도 중하5분 답변 목표 · 보강본

없는 상품 조회를 캐시하면 DB 부하가 줄지만 새 상품이 늦게 보입니다. 음성 캐시의 수명과 실패 분류는 어떻게 정하나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

음성 캐시는 부재 결과를 저장해 같은 불필요한 조회를 줄이지만 진짜 미존재와 일시 장애·권한 거절을 구분해야 합니다. DB timeout을 없음으로 캐시하면 정상 데이터를 숨깁니다.

동작 원리와 전제

존재하지 않는 키는 짧은 TTL로 캐시할 수 있고 생성 시 무효화나 버전 조건을 둡니다. 권한별로 결과가 다르면 사용자 범위 없는 공통 부재 캐시는 부정확할 수 있습니다. 부재 판정의 원본과 확인 시각을 보존합니다.

선택과 실패 처리

TTL을 길게 하면 공격성·오류 조회 부하는 줄지만 새 데이터 노출 지연이 커집니다. 무효화 실패·동시 생성·늦은 옛 부재 조회의 refill을 고려합니다. 블룸 필터와 결합해도 최신 삽입 반영 전제가 필요합니다.

구체적인 사례와 검증

사용자 A에게 권한이 없어 404처럼 반환한 결과를 공통 캐시에 저장하면 권한 있는 B도 부재라고 볼 수 있습니다. 부재 응답이 전역 사실인지 사용자별 접근 결과인지 구분해야 합니다. 생성 직전에 시작한 느린 조회가 나중에 부재를 캐시하는 경합도 있어 TTL만으로 즉시 최신성을 보장하지 않습니다. 삭제·생성 이벤트와 버전 장벽을 조합할 수 있지만 관리 비용을 평가합니다. 장애 응답을 음성 캐시에 넣어 DB 부하를 줄이는 정책을 택한다면 실제 없음과 다르게 표시하고 짧은 실패 수명을 사용해야 합니다. 사용자에게 잘못된 영구 부재를 보고하지 않겠습니다.

동일 미존재 키 집중·생성 직후 조회·원본 장애·권한 변경을 시험합니다. 적중률뿐 아니라 잘못된 부재 응답과 원본 우회량을 봅니다. 음성 캐시는 원본 권위를 대체하지 않는 비용 최적화입니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: 음성 캐시는 부재 결과를 저장해 같은 불필요한 조회를 줄이지만 진짜 미존재와 일시 장애·권한 거절을 구분해야 합니다.
  • 선택 조건: TTL을 길게 하면 공격성·오류 조회 부하는 줄지만 새 데이터 노출 지연이 커집니다.
  • 검증 기준: 동일 미존재 키 집중·생성 직후 조회·원본 장애·권한 변경을 시험합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • DB timeout·권한 거절·진짜 미존재를 같은 음성 캐시 값으로 저장한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 늦은 옛 조회가 새 변경 뒤 캐시를 다시 채우면 어떤 원자 버전 검사가 필요한가요?
  • 부재 필터를 믿으려면 신규 삽입·삭제·재구축의 어떤 최신성 전제가 필요한가요?
  • 동일 키의 원본 조회를 합쳐도 대기자·실패·분산 인스턴스의 남은 호출은 어떻게 제한하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기