Testcontainers

Testcontainers

모델 서비스나 벡터 스토어를 테스트 환경에서 컨테이너로 잠깐 띄워서 붙이고 싶다면 Testcontainers를 씁니다. Spring AI는 Testcontainers로 실행 중인 모델 서비스나 벡터 스토어에 연결을 자동으로 구성해 주는 Spring Boot 자동 구성을 제공해요. 테스트가 끝나면 컨테이너도 함께 정리되니까, 로컬 개발 환경을 오염시키지 않고 가볍게 검증할 수 있습니다.

출처: 공식문서

시작하기

연결을 활성화하려면 Maven pom.xml에 아래 의존성을 추가합니다.

<dependency>
   <groupId>org.springframework.ai</groupId>
   <artifactId>spring-ai-spring-boot-testcontainers</artifactId>
</dependency>

Gradle build.gradle을 쓴다면 이렇게 하면 돼요.

dependencies {
    implementation 'org.springframework.ai:spring-ai-spring-boot-testcontainers'
}

TIP: 빌드 파일에 Spring AI BOM을 추가하는 방법은 Dependency Management 섹션을 참고하세요.

Service Connections

spring-ai-spring-boot-testcontainers 모듈이 제공하는 서비스 연결 팩토리는 다음과 같습니다. 각 항목은 컨테이너 타입으로 매칭돼요.

Connection Details 매칭 조건
AwsOpenSearchConnectionDetails 타입이 LocalStackContainer인 컨테이너
ChromaConnectionDetails 타입이 ChromaDBContainer인 컨테이너
McpSseClientConnectionDetails 타입이 DockerMcpGatewayContainer인 컨테이너
MilvusServiceClientConnectionDetails 타입이 MilvusContainer인 컨테이너
OllamaConnectionDetails 타입이 OllamaContainer인 컨테이너
OpenSearchConnectionDetails 타입이 OpenSearchContainer인 컨테이너
QdrantConnectionDetails 타입이 QdrantContainer인 컨테이너
TypesenseConnectionDetails 타입이 TypesenseContainer인 컨테이너
WeaviateConnectionDetails 타입이 WeaviateContainer인 컨테이너

이 밖에도 spring boot 모듈 spring-boot-testcontainers가 더 많은 서비스 연결을 제공합니다. 전체 목록은 Testcontainers Service Connections 문서 페이지를 참고하세요.

더 알아보기

  • Docker Compose — 로컬 개발에 컨테이너를 띄우는 방법
  • Testing — Spring AI 애플리케이션 테스트