
스프링 공부를 시작하기 앞서 스프링에서 자주 언급되는 IoC/DI, Bean, AOP 개념을 간단하게 정리해보겠습니다!
아래 코드처럼 외부의 객체를 가져와서 사용하는 것입니다.
보통 객체가 필요하면 해당 클래스에서 직접 객체를 생성하지만, IoC는 필요할 때 외부에서 가져와서 사용할 수 있게 해줍니다.
public class A {
private B b;
}
객체 간의 결합도를 줄이고, 유연한 코드를 작성할 수 있게 하며, 유지 보수 하기에 용이합니다.
제어의 역전을 구현하기 위해 사용하는 방법입니다.
public class A {
@Autowired
B b;
}
위 코드에서 @Autowired는 빈을 제공해주는 어노테이션인데, 스프링 컨테이너에서 B 객체를 A 클래스에 주입해주는 것입니다.
IoC와 DI를 사용하면 코드의 재사용성과 모듈성을 향상시킬 수 있습니다.
new 생성자를 통한 생성setter()를 통한 생성스프링 컨테이너가 생성, 관리, 제거하는 객체입니다.
@Component
public class A {
}
클래스에 @Component를 붙이면 클래스가 빈으로 등록되고, 스프링 컨테이너가 관리합니다. 여기서 빈의 이름은 클래스에서 맨 앞 글자를 소문자로 바꾼 것입니다.
빈을 통해 객체의 생명주기 관리를 스프링 컨테이너에 위임하여, 애플리케이션의 설정과 의존성 관리를 더 쉽게 할 수 있습니다.
핵심 관점(핵심 비즈니스 로직)과 부가 관점(DB/로깅 등)으로 나누어 보고, 해당 관점을 기준으로 모듈화하는 것입니다.
부가 로직과 핵심 로직을 분리할 수 있게 해주기 때문에 핵심 로직에만 집중할 수 있으며, 코드 변경 및 확장에도 유연하게 대응할 수 있습니다.
스프링 부트 3 백엔드 개발자 되기(자바 편)