: 특정 프로파일(profile)이 활성화되었을 때만 해당 빈(Bean)이 등록되도록 설정하는 데 사용
환경별(개발, 테스트, 운영) 설정 분리
예를 들어, local, dev, prod 환경마다 서로 다른 데이터베이스 설정을 적용 가능
불필요한 빈 로딩 방지
특정 환경에서만 필요한 빈을 등록하여 불필요한 리소스 사용 방지
테스트 환경 분리
테스트 실행 시 test 프로파일을 활성화하여 운영 데이터와 격리
: 테스트 클래스에서 테스트 실행 시 특정 프로파일을 활성화할 때 사용됨.
Test 클래스에서는 @ActiveProfiles, @SpringBootTest, @ExtendWith(SpringExtension.class), @Transactional, @Slf4j 사용
Test 클래스에서는 특정 @Test 메서드에 대하여 @Rollback(false)를 통해, 테스트 결과가 @Transactioanl 에너테이션을 통해 자동 롤백되지 않고, 실제 반영을 할 수도 있다. (단, 매우 한 번 실행하면 실제 결과가 반영되기 때문에 극도로 주의하여 사용해야한다. 특히 운영과 관련된 경우 극도의 주의를 기울여야 한다. )