토스, Docker와 Github Actions를 활용한 Mock 서버 기반 통합 테스트 자동화 및 데이터 마이그레이션 전략
🤖 AI 추천
신용대출 서비스의 E2E 테스트 자동화에 어려움을 겪고 있거나, Mock 서버 운영 시 발생하는 데이터 유지보수 비용 절감 및 자동화 방안을 모색하는 백엔드 개발자, DevOps 엔지니어, QA 엔지니어에게 이 글을 추천합니다.
🔖 주요 키워드

핵심 기술
토스 Financial Marketplace Platform Team에서 신용대출 서비스의 Mock 서버를 활용하여 통합 테스트 자동화 및 데이터 마이그레이션을 효율화한 경험을 공유합니다. Docker 환경에서 Mock 서버를 구동하고 Github Actions를 통해 통합 테스트를 실행하며, 제휴사 코드 변경 시 발생하는 데이터 마이그레이션 부담을 줄이기 위한 자동화 전략을 제시합니다.
기술적 세부사항
- Mock 서버 환경 구성: Docker를 활용하여 Mock 서버를 격리된 환경에 배포하고, Github Actions에서 통합 테스트를 수행합니다.
- Spring Cloud Config와 Multi Profile 활용: 기존 Spring Cloud Config 환경에서
mockServerTest
라는 새로운 Profile을 정의하여, Docker 환경에 맞는 인프라 정보를 Mock 서버 테스트에 맞게 오버라이드합니다. - 데이터 중복 문제 해결: 멀티 모듈 프로젝트 구조에서 발생하는 패키지 경로 중복으로 인한 Entity 중복 문제를
spring.jpa.generate-ddl=false
,spring.jpa.hibernate.ddl-auto=none
,spring.sql.init.mode=always
설정과init.sql
을 사용하여 해결합니다. - 테스트 순서 의존성 관리: 순서에 민감한 통합 테스트 시나리오를 위해 JUnit 5의
@Suite
와@SelectClasses
를 활용하여 클래스 간의 테스트 순서를 보장합니다. - 테스트 결과 가시성 확보: Github Actions에서 테스트 실패 시 PR 작성자에게 알림을 주고, 배포 파이프라인에서 테스트 성공 여부 및 제휴사 코드 변경 여부를 알리는 정책을 수립합니다.
- 자동 데이터 마이그레이션: 제휴사 코드 변경 시 E2E 테스트용 데이터 마이그레이션과 통합 테스트용
init.sql
을 자동으로 수정하고 PR을 생성하는 파이프라인을 구축합니다.git diff
를 사용하여 변경 감지- Kotlin Reflections와
@GenerateSchema
어노테이션을 활용한 스키마 추출 - Jackson 라이브러리로 JSON Schema 생성 및 S3 업로드
- JSON Schema 기반 샘플 데이터 생성 및 기존 데이터 병합
- 생성된 샘플 데이터로 E2E 테스트 데이터 마이그레이션 및
init.sql
업데이트 - JGit 라이브러리를 사용하여 GitHub App 인증 기반 자동 PR 생성
개발 임팩트
- Mock 서버 기반 통합 테스트 자동화를 통해 수동 테스트 의존성을 줄이고 테스트 정확도를 향상시킵니다.
- 데이터 마이그레이션 자동화를 통해 Mock 서버 운영 및 유지보수 비용을 절감하고, 테스트 데이터 관리의 번거로움을 해소합니다.
- CI/CD 파이프라인에 통합하여 개발 생산성과 배포 안정성을 증대시킵니다.
- 새로운 서비스의 Mock 서버 연동 시 발생할 수 있는 생산성 저하 문제를 방지합니다.
커뮤니티 반응
(원문에서 직접적인 커뮤니티 반응 언급은 없으나, 토스의 기술 블로그 특성상 개발자들 사이에서 높은 관심과 피드백을 받을 것으로 예상됩니다.)
📚 관련 자료
Spring Boot
글에서 언급된 Spring Cloud Config, Multi Profile, JPA 설정 등 Spring Boot 기반의 다양한 기술 스택과 연관성이 높습니다. Mock 서버 환경 구성 및 테스트 자동화 전반에 걸쳐 Spring Boot의 기능이 활용됩니다.
관련도: 95%
Docker
글의 핵심 내용 중 하나인 Docker 환경에서의 Mock 서버 구동 및 테스트 실행과 직접적으로 관련됩니다. Docker는 개발 및 테스트 환경의 일관성을 보장하는 중요한 요소입니다.
관련도: 90%
GitHub Actions
CI/CD 파이프라인 구축 및 테스트 자동화, 자동 PR 생성 등 글에서 설명하는 자동화 워크플로우의 중심적인 도구입니다. Github Actions를 활용한 테스트 실행 및 결과 통보 정책과 밀접하게 연관됩니다.
관련도: 85%