병렬화와 캐싱으로 결제 흐름 단계별 소요 시간 절반 개선 경험
사이드 프로젝트에서 결제 흐름 성능을 개선한 경험이 있습니다. 사용자가 결제 버튼을 누른 뒤 완료 화면까지 4초 이상이었는데, 이를 줄이는 것이 목표였습니다. 먼저 각 단계의 소요 시간을 로그로 측정해보니, 외부 PG사 API 호출과 재고 확인 쿼리가 순차 실행되는 구조가 병목이었습니다.
비동기 처리로 병렬화 가능한 단계를 분리했고, 재고 확인에 캐시 레이어를 추가했더니 평균 결제 완료 시간이 1.8초로 줄었습니다. 결제 흐름 최적화에서 병렬화와 캐싱 외에 가장 중요했던 건 실패 케이스를 건드리지 않는 것이었는데, 성능 개선 과정에서 오류 처리 로직을 실수로 바꾸면 금액 오류로 이어질 수 있었습니다. 지금도 성능 최적화 코드는 기존 오류 경로를 그대로 유지하는지 먼저 검증하는 순서를 지킵니다.