728x90
스프링 IOC(제어의 역전)
스프링의 IOC(Inversion of Control, 제어의 역전)는 객체의 생성부터 생명주기 관리까지 스프링 컨테이너가 처리하며, 개발자는 비즈니스 로직에 집중할 수 있도록 합니다.
IOC의 개념
- IOC는 객체의 생성과 의존성 관리를 개발자가 아닌 스프링 프레임워크가 담당합니다. 이로 인해 개발자는 구현 객체를 변경하거나 관리할 필요 없이 객체 사용에만 집중할 수 있습니다.
IOC의 예제
전통적인 방식의 코드: 사용자가 직접 객체를 생성하며 의존성을 관리합니다.
public class TraditionalCar {
private Engine engine;
public TraditionalCar() {
engine = new Engine(); // 객체 직접 생성
}
public void start() {
engine.turnOn();
}
}
IOC를 적용한 코드: IOC 컨테이너(스프링)가 객체의 생성과 의존성 주입을 담당합니다.
@Component
public class SpringCar {
private Engine engine;
@Autowired
public SpringCar(Engine engine) { // 생성자 주입 방식
this.engine = engine;
}
public void start() {
engine.turnOn();
}
}
상위 코드에서 @Component는 스프링 컨테이너가 관리할 객체임을 의미하며, @Autowired는 의존성을 자동으로 주입하도록 합니다. 여기서 Engine 클래스의 객체는 스프링에 의해 생성되고 관리됩니다.
IOC는 스프링에서 중요한 특징 중 하나로서, 애플리케이션의 코드를 깔끔하고 유지보수하기 쉽도록 만들어 줍니다.
'웹개발 > spring && springboot' 카테고리의 다른 글
Spring framework 한글깨짐 해결방안 (0) | 2024.03.01 |
---|---|
스프링에서 자주 사용하는 어노테이션들... (0) | 2024.02.28 |
스프링의 Dependency Injection(DI) (0) | 2024.02.28 |
스프링과 메이븐(maven) (0) | 2024.02.28 |
스프링 AOP의 정의 (0) | 2024.02.23 |