목록 보기
TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기
백엔드

TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기

마켓컬리
마켓컬리
2023년 3월 15일

두줄요약

Testcontainers로 Kafka·PostgreSQL·Spring 애플리케이션을 함께 구동해 사용자 시나리오 통합 테스트를 구성했습니다.\nGitHub Actions 트리거로 배포 이미지 생성 뒤 테스트를 실행해 QA 부담을 줄이는 방식을 소개합니다.

문제 상황

  • 서버별 mock 기반 통합 테스트로는 이벤트 수집·저장·조회 간 제약조건 불일치 탐지 한계
  • QA 비용 증가와 짧고 안정적인 배포 주기 요구의 충돌

해결 방법

  • Testcontainers로 Kafka, PostgreSQL, 이벤트 수집 서버, 주문 조회 API 서버를 실제 컨테이너로 구성
  • 주문 이벤트 발행부터 배송 관리 서비스 주문 조회까지 사용자 시나리오 단위 자동화
  • 공통 Docker 네트워크와 alias, Spring 환경변수로 컨테이너 간 내부 연결 구성

성능/운영 포인트

  • 매 실행 시 최신 애플리케이션 이미지 사용을 위한 이미지 pull 정책 설정
  • 컨테이너 외부 API 호출에는 자동 매핑 포트 사용, 장애 분석에는 컨테이너 로그 조회
  • GitHub Actions에서 배포 이미지 생성 완료 후 통합 테스트 트리거 구성

주의할 점

  • 컨테이너 환경용 DB·Kafka 연결 설정과 실행 프로필 별도 구성 필요
  • 인증 서버 전체 구동 대신 local 프로필의 특수 토큰으로 인증 우회

컬리 계열사 채용12건

채용 사이트에서 전체 보기

다음 읽기

#TestContainers 주제를 이어서 읽기

TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기

Testcontainers로 Kafka, PostgreSQL, Spring 앱을 함께 띄워 실제 사용자 흐름에 가까운 통합테스트를 구성했습니다. 서버 간 제약 불일치로 생길 수 있는 버그를 QA 전에 조기에 찾고, 배포 후 자동 검증까지 연결했습니다.

마켓컬리
마켓컬리
백엔드

댓글 0개

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

댓글을 불러오는 중...