목록 보기
10초 타임아웃에서 벗어나기까지의 여정
백엔드

10초 타임아웃에서 벗어나기까지의 여정

무신사
무신사
2025년 8월 31일

두줄요약

체험단 활동목록 조회 API의 10초 타임아웃을 대용량 데이터에 맞는 인덱스와 쿼리 분리로 해결했습니다. 조회 구조를 바꿔 p99 지연시간을 20ms 이하로 낮췄습니다.

문제 상황

  • 체험단 활동목록 조회 API에서 일부 사용자의 페이지 로딩이 10초 이상 걸리거나 타임아웃 발생
  • 1억 건 이상으로 증가한 데이터와 복잡한 화면 요구사항으로 기존 쿼리의 한계 노출

원인 분석

  • DATE_FORMAT 사용으로 인덱스 활용 불가
  • LEFT JOIN과 다중 정렬 조건으로 옵티마이저 최적화 저해
  • 16개 컬럼 동시 조회로 네트워크 전송량 과다

해결 방법

  • 날짜 전용 컬럼과 커버링 인덱스 재설계로 인덱스 온리 스캔 유도
  • 조회를 ID 목록, 기본 정보, 당첨자 정보로 분리
  • 애플리케이션 메모리에서 결과 결합으로 조인 복잡도 완화

성능/운영 포인트

  • 불필요한 인덱스 정리로 변경 작업과 버퍼 풀 경합 완화
  • 데이터 전송량 99% 이상 감소로 I/O 병목 해소
  • p99 지연시간 350ms 수준에서 20ms 이하로 안정화

댓글 0

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

댓글을 불러오는 중...