목록 보기
더 빠르게, 그리고 무너지지 않게 — 전시 아키텍처 개선기 (1/3)
아키텍처

더 빠르게, 그리고 무너지지 않게 — 전시 아키텍처 개선기 (1/3)

여기어때
여기어때
2026년 7월 13일

두줄요약

전시 상품 API의 Redis 병목과 캐시 단일 의존 문제를 구조적으로 개선했습니다. Kafka CDC, 병렬 처리, 다단계 조회로 더 빠르고 무너지지 않는 서빙 구조를 만들었습니다.

문제 상황

  • 전시 상품 API가 트래픽 집중 시 Redis 캐시 병목과 네트워크 egress 한계로 timeout 발생
  • 캐시 단일 의존 구조라 pod를 늘려도 병목이 해소되지 않는 상황
  • RDB식 Document 분산과 제휴점별 순차 처리로 MongoDB 조회 비용과 응답 지연이 큰 상태

원인 분석

  • 최종 응답 전체를 날짜 조합별로 Redis에 통째로 저장해 중복과 payload 비대가 심화
  • Redis가 애플리케이션 병목이 아니라 인프라 네트워크 한계에 먼저 도달
  • 조회 경로가 파편화된 Document와 순차 IO에 묶여 있어 구조적으로 느린 상태

해결 방법

  • Document 통합으로 조회 경로를 단순화하고 Virtual Thread로 제휴점별 병렬 처리 도입
  • Kafka 기반 CDC로 메타 캐시를 변경 즉시 갱신하고 실시간 가격은 별도 경로로 분리
  • Redis → Local Cache → MongoDB 3단계 조회와 서킷 브레이커로 캐시 장애 시에도 서비스 지속

성능/운영 포인트

  • TPS 211에서 666으로 향상
  • P95 응답 시간 4.13초 구간을 캐시 없이도 1초대로 단축
  • Redis와 MongoDB CPU 부하를 각각 10% 이하 수준으로 완화

다음 읽기

#Kafka 주제를 이어서 읽기

여기어때 이벤트 기반 통합 알림 플랫폼 구축기 Part 2. How?

여기어때의 통합 알림 플랫폼 NotiHub 설계와 핵심 의사결정을 정리했습니다. Kafka, Redis, HPA, 샤딩으로 안정성과 확장성을 함께 확보했습니다.

여기어때
여기어때
데브옵스

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...