@Profile, @ActiveProfiles

hnk1022·2025년 2월 16일

@Profile 정의

: 특정 프로파일(profile)이 활성화되었을 때만 해당 빈(Bean)이 등록되도록 설정하는 데 사용

  • 환경별(개발, 테스트, 운영) 설정 분리
    예를 들어, local, dev, prod 환경마다 서로 다른 데이터베이스 설정을 적용 가능

  • 불필요한 빈 로딩 방지
    특정 환경에서만 필요한 빈을 등록하여 불필요한 리소스 사용 방지

  • 테스트 환경 분리
    테스트 실행 시 test 프로파일을 활성화하여 운영 데이터와 격리

@ActiveProfile 정의

: 테스트 클래스에서 테스트 실행 시 특정 프로파일을 활성화할 때 사용됨.

  • Test 클래스에서는 @ActiveProfiles, @SpringBootTest, @ExtendWith(SpringExtension.class), @Transactional, @Slf4j 사용

  • Test 클래스에서는 특정 @Test 메서드에 대하여 @Rollback(false)를 통해, 테스트 결과가 @Transactioanl 에너테이션을 통해 자동 롤백되지 않고, 실제 반영을 할 수도 있다. (단, 매우 한 번 실행하면 실제 결과가 반영되기 때문에 극도로 주의하여 사용해야한다. 특히 운영과 관련된 경우 극도의 주의를 기울여야 한다. )

profile
코딩 공부장

0개의 댓글