- [ backend/프레임워크 ][spring] 설정 분리 (@SpringBootTest, @Profile, @ActiveProfiles, @TestPropertySource, @TestConfiguration)2024-06-18 23:57:21@SpringBootTest`@SpringBootTest`는 스프링 부트 어플리케이션의 통합 테스트를 위한 어노테이션이다. 전체 어플리케이션 컨텍스트를 로드하여 실제 어플리케이션과 동일한 환경에서 테스트를 진행할 수 있다.`@BootstrapWith(SpringBootTestContextBootstrapper.class)`은 테스트 컨텍스트를 부트스트랩하고 어플리케이션 컨텍스트를 로드한다.`SpringBootTestContextBootstrapper` : `TestContextBootStrapper`를 상속하여 테스트 환경을 설정한다.컨텍스트 로더로 `SpringBootContextLoader`를 사용한다.`@SpringBootApplication`을 사용하여 어플리케이션 컨텍스트를 초기화한다.스프링 부..
- [ backend/프레임워크 ][spring] 스프링 컨테이너 & 빈 (IoC/DI/라이프사이클/빈 정의/빈 스코프)2024-06-15 19:15:32스프링 컨테이너스프링 컨테이너는 스프링 프레임워크의 핵심으로, 어플리케이션 객체 (Bean) 을 관리한다. 즉, 스프링 컨테이너는 개발자를 대신하여 객체를 관리한다.어플리케이션 실행 시 필요한 객체 생성객체 간의 의존성 설정 및 주입객체의 생명 주기 관리스프링 컨테이너는 스프링 IoC 컨테이너, DI 컨테이너로 불리기도 한다. 빈에 대해 살펴보기 전에 IoC, DI, 컨테이너 라이프사이클에 대해 알아보자. IoC; Inversion of ControlIoC는 객체의 제어를 코드 외부에 맡기는 것을 의미한다. 다시 말해 코드 외부 컨테이너나 프레임워크가 객체를 관리하도록 한다. 의존성을 외부에서 주입받기 때문에 객체 간의 결합도가 낮아지며, 구현에 종속되지 않아 구현체를 쉽게 교체하고 확장할 수 있어 유연..