
TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기
두줄요약
Testcontainers로 Kafka·PostgreSQL·Spring 애플리케이션을 함께 구동해 사용자 시나리오 통합 테스트를 구성했습니다.\nGitHub Actions 트리거로 배포 이미지 생성 뒤 테스트를 실행해 QA 부담을 줄이는 방식을 소개합니다.
문제 상황
- 서버별 mock 기반 통합 테스트로는 이벤트 수집·저장·조회 간 제약조건 불일치 탐지 한계
- QA 비용 증가와 짧고 안정적인 배포 주기 요구의 충돌
해결 방법
- Testcontainers로 Kafka, PostgreSQL, 이벤트 수집 서버, 주문 조회 API 서버를 실제 컨테이너로 구성
- 주문 이벤트 발행부터 배송 관리 서비스 주문 조회까지 사용자 시나리오 단위 자동화
- 공통 Docker 네트워크와 alias, Spring 환경변수로 컨테이너 간 내부 연결 구성
성능/운영 포인트
- 매 실행 시 최신 애플리케이션 이미지 사용을 위한 이미지 pull 정책 설정
- 컨테이너 외부 API 호출에는 자동 매핑 포트 사용, 장애 분석에는 컨테이너 로그 조회
- GitHub Actions에서 배포 이미지 생성 완료 후 통합 테스트 트리거 구성
주의할 점
- 컨테이너 환경용 DB·Kafka 연결 설정과 실행 프로필 별도 구성 필요
- 인증 서버 전체 구동 대신 local 프로필의 특수 토큰으로 인증 우회

