![[코드가 환경을 모르는 구조 6/7] 컨테이너는 왜 폭발하는가](https://cdn.sanity.io/images/v31psllp/production/84f3d9c344480bec28c26726a1ef04c0407b32cd-1684x1030.png)
1
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
이 게시물은 Testcontainers로 인한 컨테이너 폭발 문제와 Gradle BuildService를 통한 빌드 수준 싱글턴 해법을 다룹니다.
문제
- Spring TestContext의 컨텍스트 키 분리와 @MockBean/@DirtiesContext 등으로 dirty context 발생, 컨테이너가 암묵적으로 복제되는 현상
- 멀티모듈 환경에서 컨테이너 수가 곱셈적으로 증가하여 Docker 데몬과 CI 자원 포화, 전체 빌드 시간 증가
해법
- Gradle BuildService를 이용해 빌드 범위 싱글턴으로 Testcontainer 한 대를 공유
- 모듈별로 논리적 데이터베이스(스키마) 프로비저닝, Liquibase로 스키마 초기화하여 격리 보장
- 로컬에서 컨테이너 재사용으로 속도 회복, CI 환경의 제약은 스냅샷 캐시 등으로 보완 예정


