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

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

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

두줄요약

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

문제 상황

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

원인 분석

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

해결 방법

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

주의할 점

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

무신사 계열사 채용24건

채용 사이트에서 전체 보기

다음 읽기

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

TestContainers로 유저시나리오와 비슷한 통합테스트 만들어 보기

Testcontainers로 Kafka·PostgreSQL·Spring 애플리케이션을 함께 구동해 사용자 시나리오 통합 테스트를 구성했습니다. GitHub Actions 트리거로 배포 이미지 생성 뒤 테스트를 실행해 QA 부담을 줄이는 방식을 소개합니다.

마켓컬리
마켓컬리
백엔드

댓글 0개

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

댓글을 불러오는 중...