본문으로 이동
신용대출 찾기 서비스 제휴사 Mock 서버 개발기 #2
문서

신용대출 찾기 서비스 제휴사 Mock 서버 개발기 #2

류경린 · 토스 · 토스 기술 블로그

원본 보기

소개

대출 연동 테스트의 안정성과 효율성을 극대화하는 mock 서버 개발기의 후속 내용을 공유합니다.

AI 핵심 요약

E2E 테스트가 자동화되지 않은 상황에서 제휴사 코드 변경을 사람이 매번 검증해야 하는 부담을 줄이기 위해, Docker 기반 Mock 서버 통합 테스트를 GitHub Actions에 연결했습니다. 기존 Local·Alpha 환경을 유지하면서 테스트 인프라 설정만 덮어쓰도록 mockServerTest 멀티 프로파일을 구성했고, JPA 테이블 충돌은 ddl-auto를 비활성화하고 init.sql로 필요한 테이블만 생성해 해결했습니다. 또 JUnit @Suite로 선행 퍼널 데이터를 재사용하고, Kotlin Reflections와 Jackson JSON Schema로 DTO 변경을 감지해 샘플 데이터와 init.sql을 갱신한 뒤 JGit·GitHub App으로 PR을 생성하도록 자동화했습니다. 완전한 E2E 테스트를 바로 도입하기 어려운 제약 속에서도 설정 분리와 데이터 자동화로 테스트 누락과 유지보수 부담을 줄일 수 있다는 점을 보여줍니다.

  • Spring Cloud Config의 기존 환경을 보존하면서 테스트 전용 설정만 바꾸려면 별도 Profile을 만들고 필요한 프로퍼티를 병합할 수 있습니다.
  • 멀티 모듈에서 Entity 패키지가 겹치면 DataSource별 스캔 범위가 섞일 수 있으므로, ddl-auto를 끄고 필요한 테이블만 SQL로 초기화하는 방법이 있습니다.
  • 선행 퍼널의 실행 비용이 큰 테스트에서는 JUnit @Suite로 클래스 실행 순서를 지정해 공통 준비 과정을 재사용할 수 있습니다.
  • JSON Schema에 새 DTO 필드를 반영할 때 기존 테스트 데이터 값을 우선 보존하면 데이터 마이그레이션으로 인한 변경을 줄일 수 있습니다.
  • GitHub App 토큰과 JGit을 이용하면 코드 변경 감지부터 데이터 갱신, 브랜치 푸시와 PR 생성까지 자동화할 수 있습니다.