프로젝트 개요
GS SHOP Breeze Platform에서 Nike Korea 공식 온라인 스토어의 대용량 트래픽 처리 구조를 개발했습니다. 한정판 스니커즈 출시 시 대규모 트래픽 급증을 처리하면서 실시간 재고 정확성과 주문-결제 연계를 함께 유지해야 했습니다.
해결 과제
한정판 제품 출시 시 수만 명의 동시 사용자를 처리하고, 과판매를 방지하기 위해 실시간 재고 정확성을 유지하며, 주문-재고-결제 시스템 간 연계를 안정적으로 보장해야 했습니다.
구현과 설계
고성능 트래픽 관리
대규모 동시 트래픽을 처리하기 위한 캐싱 및 부하 분산 전략을 적용하고, DB 읽기/쓰기 분리를 통해 주문-결제 시 안정성을 확보했습니다.
- Hibernate Second Level Cache를 통한 엔티티 레벨 캐싱
- 정적 자산 전달 및 글로벌 성능을 위한 CDN 통합
- DB 읽기/쓰기 분리: 프록시를 통한 쿼리 자동 분리
- 헬스 체크와 자동 확장을 고려한 로드 밸런싱
실시간 재고 및 추첨 시스템
한정판 제품 출시를 위한 재고 관리와 공정한 추첨 처리 구조를 구현했습니다.
- 과판매 방지를 위한 비관적 잠금을 통한 실시간 재고 추적
- 고수요 출시 중 공정한 액세스를 위한 큐 기반 추첨 시스템
- 주문-재고-결제 서비스에 걸친 분산 트랜잭션 관리
- 배치를 통한 비정상 결제 자동 취소 및 재고 조정
주요 결과
- 대규모 동시 사용자 안정적 처리
- 과판매 방지를 통한 높은 재고 정확도 달성
- 시스템 안정성 개선을 통한 고객 구매 경험 향상
- 최적화된 캐싱 전략을 통한 응답 시간 개선
사용 기술
- Java
- Spring Boot 엔터프라이즈 개발
- Spring
- Hibernate Second Level Cache
- Hibernate 2L Cache
- MySQL 데이터베이스 최적화
- MySQL R/W Split
- CDN 및 정적 자산 최적화
- Spring Batch
- 로드 밸런싱 및 오토 스케일링
- Nginx
- 분산 트랜잭션 관리
- CDN
- 추첨 및 큐 시스템
- AWS
- 실시간 모니터링 및 알림
배운 점
- 적절한 캐싱 전략은 전자상거래 시스템의 트래픽 급증 처리에 필수
- 실시간 재고 관리는 성능과 정확성 간 신중한 균형이 필요
- 추첨 시스템과 같은 공정한 액세스 메커니즘은 고수요 중 사용자 경험 개선
- 엔드투엔드 트랜잭션 모니터링은 시스템 무결성 유지에 중요