Redis 캐싱과 비동기 큐로 결제 트래픽 급증을 버텨낸 경험을 설명
졸업 프로젝트로 소규모 티켓 예매 서비스를 만들 때, 이벤트 오픈 순간 DB에 동시 요청이 몰려 서버가 멈춘 적이 있었습니다. 당시 3초 만에 400개 요청이 쏟아졌고, 쿼리 타임아웃이 연달아 터졌습니다.
그 실패 이후 Redis를 도입해 재고 수량 조회를 캐시하고, 결제 완료 처리를 비동기 큐로 분리했습니다. 실제 DB 쓰기는 큐 소비자가 순차적으로 처리하도록 바꾸니, 같은 규모의 테스트에서 타임아웃이 사라졌습니다.
이후 인턴십에서도 결제 API 응답 캐싱 TTL 설정이 트래픽 피크 대응에서 핵심 변수라는 걸 몸소 확인했습니다. 모니터링 지표로는 DB 커넥션 풀 사용률과 큐 적재량을 5초 간격으로 수집했습니다. 완벽하진 않았지만 그 경험이 트래픽 설계를 먼저 고민하는 습관을 만들어 줬습니다.