목록 보기
리팩토링을 위한 통합 테스트
백엔드

리팩토링을 위한 통합 테스트

무신사
무신사
2024년 7월 30일

두줄요약

무신사 WMS 리팩토링 과정에서 통합 테스트를 활용한 사례를 소개했습니다. Testcontainers와 Database Rider로 기능 보장과 빠른 검증을 함께 잡았습니다.

문제 상황

  • WMS 자체 개발과 빠른 런칭 과정에서 누적된 기술 부채
  • 과도한 책임을 가진 클래스, 높은 결합도, 낮은 가독성, 메모리 이슈
  • 코드 품질 개선을 위한 리팩토링 과정에서 기능 보장을 확인할 테스트 필요

원인 분석

  • 리팩토링이 코드 구조 변경을 동반해 단위 테스트가 구현 세부사항에 과도하게 결합될 위험
  • 단위 테스트는 유지보수성이 낮아지고 리팩토링 내성이 약해짐
  • 넓은 범위의 동작 검증이 필요한 상황

해결 방법

  • UseCase를 구현하는 서비스 계층을 통합 테스트 대상으로 선정
  • Testcontainers로 MySQL 등 실제와 유사한 테스트 환경 구성
  • Database Rider와 Golden Master Testing으로 DB 상태 기반 검증 수행

주의할 점

  • 모든 외부 의존성을 컨테이너로 띄우면 테스트 자원 소모가 큼
  • 관리 의존성만 실제와 유사하게 두고, 외부 API는 Mock으로 대체하는 선택 필요
  • 테스트 환경 구성을 통일해 Context Caching 이점 유지 필요

댓글 0

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

댓글을 불러오는 중...