목차
- Instruction
- Architecture
- Performance Test Report
- Contributors
1. Instruction
성능 테스트를 위한 티켓팅 서비스 구현
- Backend Kotlin, Spring-boot, Testcontainers, MySQL
- Infra AWS, EKS, Terraform, Helm, Argocd, Prometheus, Grafana
- Queue System Node.js, Redis
- K6를 활용한 Spike Test 수행
- Prometheus 및 Grafana를 통한 모니터링 및 개선사항 보고서 작성
2. Architecture
Infra
Terraform을 통해 전체 배포 환경 구현
NAT Gateway 비용 이슈로 Public Subnet Node Group 구성 사용
ALB 비용 이슈로 인해 ALB 삭제 후 Nginx Ingress(Baremetal) 구축
Performance Test
성능 테스트 환경 구축에 대한 고민 (테스트 도구, 성능테스트 자동화, 성능테스트 부하발생 환경, 테스트 결과 출력 및 분석)
대기열 시스템
대기열 시스템 설계 이슈
- 갱신 누락 고려, Non-blocking API, 대기열 데이터 구조 등
백엔드 설계
CD Pipeline
3. Performance Test Report
SignIn
Spike Test 보고서
- 100만건 데이터 단일 컬럼에 대한 인덱스 추가 후 Slow Query 개선
- 암호화 CPU 성능 이슈: CPU 코어수 증가 및 암호화 난이도 조절에 따른 변화 관찰
JVM Warm Up Test 보고서
- 프로세스 생성 후 동일 테스트를 반복함으로 JVM CodeHeap 및 성능 변화 관찰
인터파크 트래픽 0.001% Spike Test 보고서
- 천만건 데이터
SELECT COUNT(*)
를 NoOffset
구현으로 개선
- 하나의 자원(=Event)에 대한 Lock 경쟁 발생에 대한 고민 및 대기열 시스템 도입 후 테스트
인터파크 트래픽 0.002% Spike Test 보고서
- Thread Pool 전략 수정으로 쓰레드 생성에 따른 CPU 리소스 사용 개선
- DB Connection Pool 전략 수정으로 Pending Connection 개선
- Redis 캐싱 적용으로 Latency 개선
4. Contributors
진행 기간 : 2023.07.01 ~ 2023.11.19 (회의록)
2023.07.01 ~ 2023.09.30 (집중기간)
하차자 제외
프로젝트 시작 일기를 보면 알 수 있듯, 모두 현역 군인 신분으로 프로젝트를 진행했나갔습니다.