[내일배움캠프 TIL, Day 68] 최종 발표 - 예상 Q&A 정리
1. 발표 전 최종 점검 및 예상 질의응답 정리해보기
최종 발표일. 발표 12분 + 피드백 8분 구성이라, 지난 며칠간 준비해둔 예상 Q&A 문서를 오늘 아침 최종본으로 압축하고 발표에 들어갔다.
- 발표 결과: Redis 단일 장애점 관련 시스템 전체 관점 질문 1개 - 정확히 예측했던 질문인데, 아쉽게도 제대로 답하지 못했다🥲😱.
1) 질문 선별 과정
- 튜터님 피드백 과정에서 짚었던 영역 (150 RPS, 부하 테스트 전후 비교)
- 발표 슬라이드에 직접 노출된 주장 (캐싱 전환 근거, 조용한 장애, 3단 분기)
- 구현 세부 (캐시 키 구조, 소유 vs 참조, 테스트 스위트)
2) 예상 Q&A 목록
- 매장 데이터 30건으로 부하 테스트가 의미 있나? → 병목 원인이 데이터 양이 아니라 “동시 요청 × 매 요청 DB 왕복” 구조라 유효. 대용량 인덱스 성능은 별개 과제로 구분
- TTL 만료 순간 캐시 스탬피드는? → 일반 미스 경로는 락 없이 의도적 수용(fetch join 단일 쿼리라 창이 밀리초 수준). 락은 비용 큰 rebuild 경로에만 선별 적용
- Redis가 단일 장애점 아닌가? fallback 켜지면 25초로 돌아가는 것 아닌가? → fallback의 목적은 성능이 아니라 가용성. 이중화(Sentinel/Cluster)는 인프라 확장 단계 과제
- 리뷰 1개짜리 5점 매장이 500개짜리 4.8점을 이기는데? → 현재 구조의 알려진 한계. 점수 계산부 한 곳만 바꾸면 되는 구조로 격리해둠
- 이벤트 유실·순서 역전 시 평점은? → Outbox + storeId 파티션 키 + 절대값 덮어쓰기의 3겹 (위 2번 섹션)
- 로컬 측정인데 2,600배를 믿을 수 있나? → 절대값이 아닌 동일 조건 상대 비교. 구조적 결론은 환경과 무관
부족한 부분이나 어려웠던 점 위주로 목록을 만들고, “약점 인정 → 판단 근거 → 다음 단계” 구조로 답을 정리했다. 방어가 아니라 트레이드오프를 인지하고 있었음을 보여주는 쪽이 낫다고 판단했다.
2. 실제 발표 결과
준비한 개별 질문들은 안 들어왔고, 대신 전체 아키텍처 관점의 질문 하나가 들어왔다.
“캐싱·랭킹·대기열·분산락이 전부 Redis에 의존하는데 괜찮나” 👉🏻 Redis 단일 장애점 질문이었다.
위 6개 중 3번, 정확히 준비해둔 지점이었으나, 부끄럽게도 제대로 답하지 못했다.
문서에는 내 서비스(store)에 대한 관점을 중심으로 답을 정리해 뒀다. “fallback의 목적은 성능이 아니라 가용성이고, 이중화는 확장 단계 과제다”라는 논리를 전날 분명히 적어뒀는데, 실전에서 그 말이 정리된 형태로 나오지 않았을 뿐더라, 프로젝트 전반에 동일한 취약점이 있다고 지적 받으니 섣불리 대답하지 못했다.
우리가 머뭇거리자 튜터님이 “샤딩 같은 전략이 있으니 그 부분을 좀 더 고민해보면 좋겠다”고 정리해주시면서 마무리됐다.
서비스 하나가 아니라 시스템 전체를 겨냥한, 웨이팅의 대기열, 예약의 분산락까지 걸린 질문이라 “누가 답할 것인가”부터 정리가 안 됐고, 각자 자기 서비스의 방어 논리는 있어도 그걸 시스템 레벨에서 묶어 말할 준비는 팀 차원에서 안 돼 있었다.
3. 프로젝트 간단 회고
성취 - 답변을 준비하는 과정 자체가 검증이었다. 내가 만든 시스템의 설계 의도(절대값 덮어쓰기의 자기 수렴, 경로별 락 선별 적용)를 남에게 설명 가능한 언어로 다시 정리해 본 것 자체만으로 의미 있는 시간이었다.
매번 완성에만 급급한게 아쉬웠기 때문이다. 비록 실제 질문으로 연결되지 않았더라도 문서/기록으로 정리하고 남기는 것 자체가 작은 성과라고 생각한다.
또, Redis SPOF 질문이 들어온 건 이 아키텍처에서 가장 자연스러운 질문이었기 때문에 나중에 면접 준비 하면서도 기억을 되새기기에 도움이 되리라 생각한다.
과제 — 지금 구조는 Redis “장애 시 폴백”까지만 설계돼 있고, Redis 자체를 어떻게 확장·분산할지(이중화, Sentinel/Cluster, 키 특성별 샤딩 - 캐시성 데이터와 대기열·락 같은 상태성 데이터는 요구 특성부터 다르다)는 비어 있다.
튜터님이 짚어준 방향 그대로, 다음에 정리해볼 주제로 남긴다.
#내일배움캠프 #단기Java #TIL #Kok #Redis #MSA #발표
Leave a comment