본 프로젝트는 쿠폰 발급 시스템을 구현한 웹 애플리케이션입니다. 비동기 메시지 처리를 위한 Kafka, 컨테이너 가상화를 위한 Docker, 그리고 클라우드 네이티브 환경을 위한 AWS 서비스 등 다양한 기술 스택을 활용했습니다.
- Producer/Consumer 아키텍처 구현: Kafka를 통한 비동기 메시지 처리 시스템 구축
- 안정적인 쿠폰 발급: 정해진 수량만큼만 쿠폰이 발급되도록 테스트 코드로 검증
- 성능 최적화: 동시 요청에도 안정적인 처리가 가능한 구성
- 다중 데이터베이스 환경: Docker를 활용한 MySQL과 Redis 컨테이너 구성
- RDBMS(MySQL): 규격화된 데이터 저장 및 트랜잭션 관리
- In-Memory DB(Redis): 신속한 요청 처리 및 Key-Value 형태의 데이터 저장 최적화
- 다중 스레드 환경 최적화: slf4j를 활용한 스레드별 로깅 처리
- 요청 추적: Interceptor를 통한 고유 식별자 부여로 모든 요청의 생명주기 추적
- 디버깅 용이성: 체계적인 로그 관리로 문제 해결 시간 단축
- 확장성 있는 인프라: ELB, EC2, Route53, RDS를 활용한 클라우드 네이티브 환경 구축
- 고가용성: ELB Health Check를 통한 서비스 안정성 확보
- 보안 강화: HTTPS 설정으로 데이터 전송 보안 강화
- 도메인 관리: Route53을 통한 효율적인 도메인 관리
- N+1 문제 해결: @EntityGraph를 활용한 쿼리 최적화
- 성능 향상: Lazy Loading으로 인한 성능 저하 문제 해결 (318ms → 119ms, 약 63% 성능 향상)
- 테스트 기반 검증: 테스트 코드를 통한 성능 개선 효과 정량적 측정