[ backend/테스트 ]
[spring] @DataJpaTest 대신 @SpringBootTest를 사용해야 하는 이유 (feat. 테스트 컨텍스트)
2025-03-09 18:30:49
@DataJpaTest를 사용하는 이유`@DataJpaTest`는 JPA 컴포넌트를 위한 테스트 어노테이션으로, 레포지토리와 엔티티처럼 JPA와 관련된 빈만 로드한다. 기본적으로 인메모리 임베디드 데이터베이스를 사용하며, `@Entity` 클래스를 스캔하고 레포지토리를 구성한다. 각 테스트 메서드는 트랜잭션으로 처리되며, 테스트가 끝난 후에는 자동으로 롤백된다. 이를 통해 테스트 데이터가 데이터베이스에 남지 않고, 데이터 정합성을 유지할 수 있다. 그럼에도 불구하고 @DataJpaTest 대신 @SpringBootTest를 사용해야 하는 이유앞에서 살펴봤듯이 `@DataJpaTest`를 사용하면 JPA 관련 컴포넌트만 로드하기 때문에 전체 어플리케이션을 로드하는 불필요한 오버헤드를 줄일 수 있다. 하지..