신용대출 찾기 서비스 제휴사 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 생성까지 자동화할 수 있습니다.
비슷한 학습 자료
쉼 없이 도는 테스트, 사람이 어디까지 돌봐야 할까요? - 토스닥터(Toss Doctor)
강연신/안재은/한가영 · 토스 기술 블로그
세금 환급 자동화 : AI-driven UI 테스트 자동화 일지
정수호 · 토스 기술 블로그
신용대출 찾기 서비스 제휴사 mock 서버 개발기 #1
류경린 · 토스 기술 블로그
nginx 설정 없이 우아하게 서비스 점검하기 (下)
이창섭 · 컬리 기술 블로그
TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기
딜리버리프로덕트 김태훈 · 컬리 기술 블로그
DevOps 엔지니어의 Redis Test 분투기 - Part 1
이규원 · 컬리 기술 블로그