
이젠 보내줄 때가 되었다. 대규모 트래픽의 C++ 시스템 Java로 전환하기
22
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
대규모 트래픽 C++ 시스템의 Java 전환 경험
이 게시물은 배달 주소 기반 행정동/법정동 판단 웹 서버를 C++에서 Java 및 Spring Boot로 전환한 경험을 공유합니다.전환 배경 및 검토
- C++ 서버는 2000TPS 이상 고성능을 제공했으나 유지보수와 안정성에 단점이 존재함
- Java 전환 시 성능과 장애 최소화를 최우선 과제로 설정
- 기존 싱글스레드 이벤트 루프 구조를 분석하여 Java 멀티스레드 활용 가능성 탐색
구현 및 성능 테스트
- Java용 S2 라이브러리 사용과 메모리 적재 구조 유지로 성능 확보
- 최대 3500TPS 부하 테스트에서 목표 성능 달성
배포 및 운영
- Canary 배포와 AWS ALB 트래픽 세밀 조절로 장애 최소화
- 배포 후 GC 문제 발견 및 primitive 컬렉션 사용 등으로 메모리 최적화 진행
- GC 튜닝과 메모리 구조 개선을 통해 major GC 발생과 CPU 스파이크 감소
결과 및 향후 계획
- Java 전환 후 유지보수 용이성 향상과 서버 비용 절감 달성
- 필요시 Redis 등 추가 캐시 레이어 도입 검토