Skip to content

lsc713/concurrencyPrac

Repository files navigation

쿠폰 발급 시스템 프로젝트

📋 프로젝트 개요

본 프로젝트는 쿠폰 발급 시스템을 구현한 웹 애플리케이션입니다. 비동기 메시지 처리를 위한 Kafka, 컨테이너 가상화를 위한 Docker, 그리고 클라우드 네이티브 환경을 위한 AWS 서비스 등 다양한 기술 스택을 활용했습니다.

🛠️ 주요 기능 및 기술 스택

1. 비동기 쿠폰 발급 처리 (Kafka)

  • Producer/Consumer 아키텍처 구현: Kafka를 통한 비동기 메시지 처리 시스템 구축
  • 안정적인 쿠폰 발급: 정해진 수량만큼만 쿠폰이 발급되도록 테스트 코드로 검증
  • 성능 최적화: 동시 요청에도 안정적인 처리가 가능한 구성

2. 컨테이너 기반 데이터베이스 구성 (Docker)

  • 다중 데이터베이스 환경: Docker를 활용한 MySQL과 Redis 컨테이너 구성
  • RDBMS(MySQL): 규격화된 데이터 저장 및 트랜잭션 관리
  • In-Memory DB(Redis): 신속한 요청 처리 및 Key-Value 형태의 데이터 저장 최적화

3. 효율적인 로깅 시스템 (Interceptor)

  • 다중 스레드 환경 최적화: slf4j를 활용한 스레드별 로깅 처리
  • 요청 추적: Interceptor를 통한 고유 식별자 부여로 모든 요청의 생명주기 추적
  • 디버깅 용이성: 체계적인 로그 관리로 문제 해결 시간 단축

4. 클라우드 네이티브 배포 (AWS)

  • 확장성 있는 인프라: ELB, EC2, Route53, RDS를 활용한 클라우드 네이티브 환경 구축
  • 고가용성: ELB Health Check를 통한 서비스 안정성 확보
  • 보안 강화: HTTPS 설정으로 데이터 전송 보안 강화
  • 도메인 관리: Route53을 통한 효율적인 도메인 관리

5. JPA 성능 최적화 (@EntityGraph)

  • N+1 문제 해결: @EntityGraph를 활용한 쿼리 최적화
  • 성능 향상: Lazy Loading으로 인한 성능 저하 문제 해결 (318ms → 119ms, 약 63% 성능 향상)
  • 테스트 기반 검증: 테스트 코드를 통한 성능 개선 효과 정량적 측정

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published