목록 보기
실제처럼, 빠르게, 안정적으로: 에이닷 통합 테스트 환경 구축기 (WireMock + Docker + GitLab CI)
데브옵스

실제처럼, 빠르게, 안정적으로: 에이닷 통합 테스트 환경 구축기 (WireMock + Docker + GitLab CI)

데보션
데보션
2025년 8월 25일

두줄요약

외부 API 의존으로 흔들리던 통합 테스트를 WireMock, Docker, GitLab CI로 분리하고 자동화했습니다. 로컬과 CI에서 같은 환경을 써 테스트 신뢰도와 개발 생산성을 높였습니다.

문제 상황

  • 외부 Model Provider 직접 연동으로 인한 통합 테스트 불안정
  • 서버 상태, 타임아웃, 스펙 변경으로 인한 빈번한 테스트 실패
  • 로컬 DB·Redis 실행과 수동 Mock API 관리의 번거로움

원인 분석

  • 외부 서비스 상태에 테스트가 종속되는 구조
  • 실제 실패 원인과 외부 요인 구분의 어려움
  • Mock API 변경 사항을 함께 유지보수해야 하는 부담

해결 방법

  • WireMock으로 외부 API 응답을 stub 기반으로 모킹
  • Docker로 WireMock, DB, Redis를 컨테이너화해 통합 테스트 환경 구성
  • GitLab CI의 services와 alias로 파이프라인에서 동일한 테스트 환경 실행

적용해볼 점

  • 응답 패턴 중심의 stub 정의로 에러·지연 케이스 분리
  • healthcheck와 컨테이너 기반 구성으로 준비 상태 확인
  • 로컬과 CI에서 같은 방식의 테스트 환경 재사용

다음 읽기

#WireMock 주제를 다룬 다른 회사 글

야, 너도 WireMock으로 테스트할 수 있어

외부 API를 호출하는 통합 테스트의 불편함을 해결하기 위해 WireMock 도입 과정을 소개했습니다.\nRead Timeout과 비정상 응답을 stub으로 재현하는 방법도 함께 설명했습니다.

우아한 형제들
우아한 형제들
백엔드

댓글 0개

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

댓글을 불러오는 중...