[코드가 환경을 모르는 구조 6/7] 컨테이너는 왜 폭발하는가
1
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

이 게시물은 Testcontainers로 인한 컨테이너 폭발 문제와 Gradle BuildService를 통한 빌드 수준 싱글턴 해법을 다룹니다.

문제

  • Spring TestContext의 컨텍스트 키 분리와 @MockBean/@DirtiesContext 등으로 dirty context 발생, 컨테이너가 암묵적으로 복제되는 현상
  • 멀티모듈 환경에서 컨테이너 수가 곱셈적으로 증가하여 Docker 데몬과 CI 자원 포화, 전체 빌드 시간 증가

해법

  • Gradle BuildService를 이용해 빌드 범위 싱글턴으로 Testcontainer 한 대를 공유
  • 모듈별로 논리적 데이터베이스(스키마) 프로비저닝, Liquibase로 스키마 초기화하여 격리 보장
  • 로컬에서 컨테이너 재사용으로 속도 회복, CI 환경의 제약은 스냅샷 캐시 등으로 보완 예정

연관 게시글