- 선착순 쿠폰 발급 이벤트를 진행하는 상황에서 필요한 신청, 대기열 조회, 발급 기능을 개발하였습니다.
- 웹 서버 한 대와 DB 서버 한 대로 최소한의 시스템 구성으로 시작하여, 점진적으로 트래픽을 증가시키며 짧은 시간에 요청이 몰리는 상황에서도 안정적으로 서비스를 운영할 수 있도록 시스템 구조를 확장해 나가는 경험을 목표로 설정했습니다.
- Java, Spring Boot, Gradle
- MariaDB, Redis
- GitHub Actions, Naver Cloud Platform
- K6, Pinpoint, Grafana, Prometheus
- IntelliJ
- 비즈니스 로직 링크 추가
- api 문서 링크 추가
- 쿠폰 발급 신청
- 쿠폰 발급
- 대기열 조회 & 발급 결과 조회
- 자세한 사항 : 링크 추가
- 단일 서버 환경에서는 spring으로 큐 구현, 분산 서버 환경에서는 redis로 큐를 관리하여 운영 환경 특성을 고려하여 설계
- MariaDB 장애 상황 대비를 위한 Replication
- Sentinel을 통한 자동 페일오버 메커니즘 설정으로 장애 발생 시 슬레이브를 새로운 마스터로 자동 승격하여 서비스 중단 시간을 최소화
- K6 테스트 스크립트를 작성하여 대규모 트래픽 시나리오를 시뮬레이션, 성능 튜닝
- Prometheus와 Grafana를 연동하여 인프라 및 애플리케이션 메트릭을 실시간으로 수집 및 시각화