Skip to content

3. Technology used

YeeunJ edited this page Jun 16, 2025 · 3 revisions

🛠️ Kotlin / Spring / Spring Data JPA / MySQL / Gradle

  • Kotlin + Spring Boot 3: 주요 비즈니스 로직과 REST API 구현
  • Spring Security + JWT: 토큰 기반 인증·인가
  • Spring Data JPA (Hibernate): 도메인 모델 ↔ DB 매핑, 페이징·정렬 지원
  • MySQL: 회원·상품·예약 데이터 등 트랜잭션 관리
  • Gradle: 의존성·빌드 자동화, CI 캐시 활용

⚡ Redis

  • 인기 상품 랭킹: 찜 수 집계(ZINCRBY) → Top N 조회(ZREVRANGE)
  • 선착순 재고 관리: DECR 원자적 재고 차감, 재고 소진 시 즉시 실패 처리

🔄 Kafka

  • 이벤트 버스: 찜 등록/취소, 예약 신청, 선착순 구매 요청 등 토픽 발행
  • 비동기 처리: 예약 마감·주문 확정·평균 평점 재계산 등을 백그라운드로 처리
  • 확장성: 파티셔닝·컨슈머 그룹으로 부하 분산

🚀 nGrinder

  • 부하 테스트: Groovy 스크립트 기반 시나리오 설계
  • 성능 측정: 인기 조회·예약·찜 API 동시 호출 시 응답 시간·TPS 리포트
  • CI 연동: 빌드 파이프라인에서 자동화된 성능 검증

☁️ AWS

  • RDS (MySQL): 운영 DB 관리(백업·스케일링)
  • ElastiCache (Redis): 캐시 클러스터 운영
  • MSK (Kafka): 매니지드 Kafka 서비스
  • S3: 이미지·정적 파일 호스팅 (presigned URL)
  • ECS/EKS: 컨테이너 배포 환경
  • CloudWatch: 로그·메트릭·분산 트레이싱

📊 Prometheus & Grafana

  • Prometheus: 애플리케이션 및 인프라 메트릭 수집·저장

    • Spring Boot Actuator + Micrometer 연동 → JVM, HTTP 요청, Kafka lag, Redis 키 사용량 등 자동 스크래핑
    • 알람 규칙(Alerting) 설정으로 CPU·메모리·응답 지연 임계치 모니터링
  • Grafana: 대시보드 시각화

    • Prometheus 데이터를 기반으로 실시간 차트·그래프 제공
    • 사용자 정의 대시보드로 서비스 상태·트렌드 한눈에 파악
    • 알림 채널(Slack, Email) 연동 가능
Clone this wiki locally