채널톡 메인 백엔드 서버 CI 개선기
데브옵스
채널톡 메인 백엔드 서버 CI 개선기
두줄요약
채널톡 메인 백엔드 서버의 CI 병목을 단계적으로 분해해 개선한 과정을 정리했습니다. 공유 상태 제거, prepare 분리, 동적 큐와 캐시로 실행 시간을 크게 줄였습니다.
문제 상황
- AI 에이전트와 사람이 함께 작업하는 흐름에서 코드 구현보다 CI 피드백 대기 시간이 실험 속도를 더 크게 제한하는 상황
- 채널톡 메인 백엔드 서버는 테스트 수와 의존 서비스가 많아, 공통 준비 비용과 숨은 직렬 구간이 누적된 느린 CI 구조
원인 분석
- 공유 데이터베이스와 반복 생성 작업 때문에 병렬 실행이 어려운 구조
- 테스트 노드마다 compile, migration, 초기화가 중복되며 prepare 비용이 과도하게 재실행되는 문제
- 러너 수 증가와 이미지 미러 워밍이 오히려 인프라 병목과 변동성을 키우는 문제
해결 방법
- 작은 서비스에서 먼저 병목 패턴을 검증한 뒤 메인 백엔드 서버에 단계적으로 확장
- pgtestdb, prepare 분리, SEED_EACH에서 ISOLATED 전환, 동적 큐, 단계별 캐시로 중복 비용과 꼬리 시간 축소
- sparse checkout, S3 병렬화, 입력 해시 캐시, 서비스 기동 전략 정리로 전환 시간과 재계산 비용 감소
