목록 보기
이젠 보내줄 때가 되었다. 대규모 트래픽의 C++ 시스템 Java로 전환하기
백엔드

이젠 보내줄 때가 되었다. 대규모 트래픽의 C++ 시스템 Java로 전환하기

우아한 형제들
우아한 형제들
2025년 1월 7일

두줄요약

C++로 운영하던 대규모 트래픽 서버를 Java와 Spring Boot로 전환한 과정을 정리했습니다. 성능 검증, Canary 배포, GC 개선까지 거쳐 안정적으로 이관했습니다.

문제 상황

  • 배달 주소 기반 행정동·법정동 조회용 C++ 웹 서버의 운영 부담 증가
  • 낮은 유지보수성, 사내 배포·모니터링 체계와의 비호환성, 메모리 오남용 위험
  • 전사 핵심 API 특성상 전환 시 성능 저하와 장애 확산 우려

원인 분석

  • 이벤트 루프 기반 싱글스레드 구조로 인한 확장성 한계와 유지보수 난이도
  • Java 전환 후 힙 메모리에 대량 S2 데이터를 올릴 때 GC, 특히 major GC 부담 예상
  • 램프업 중심 성능테스트로는 중간 트래픽 구간의 CPU spike를 놓칠 가능성

해결 방법

  • Java 및 Spring Boot로 이관하고 멀티스레드 처리로 성능 확보
  • 메모리 조회 구조는 유지하되 fastutil로 primitive 컬렉션 최적화
  • Canary 배포와 ALB 트래픽 조절로 장애 범위를 줄이며 롤백 대비

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...