[스프링] IoC/DI + Bean + AOP 개념 정리

모선·2024년 4월 8일

spring

목록 보기
2/5

스프링 공부를 시작하기 앞서 스프링에서 자주 언급되는 IoC/DI, Bean, AOP 개념을 간단하게 정리해보겠습니다!

IoC(Inversion of Control) : 제어의 역전

아래 코드처럼 외부의 객체를 가져와서 사용하는 것입니다.
보통 객체가 필요하면 해당 클래스에서 직접 객체를 생성하지만, IoC는 필요할 때 외부에서 가져와서 사용할 수 있게 해줍니다.

public class A {
	private B b;
}

객체 간의 결합도를 줄이고, 유연한 코드를 작성할 수 있게 하며, 유지 보수 하기에 용이합니다.

DI(Dependency Injection) : 의존성 주입

제어의 역전을 구현하기 위해 사용하는 방법입니다.

public class A {
	@Autowired
	B b;
}

위 코드에서 @Autowired는 빈을 제공해주는 어노테이션인데, 스프링 컨테이너에서 B 객체를 A 클래스에 주입해주는 것입니다.

IoC와 DI를 사용하면 코드의 재사용성과 모듈성을 향상시킬 수 있습니다.

의존성 주입 방법

  1. new 생성자를 통한 생성
  2. setter()를 통한 생성

Bean

스프링 컨테이너가 생성, 관리, 제거하는 객체입니다.

@Component
public class A {
}

클래스에 @Component를 붙이면 클래스가 빈으로 등록되고, 스프링 컨테이너가 관리합니다. 여기서 빈의 이름은 클래스에서 맨 앞 글자를 소문자로 바꾼 것입니다.

빈을 통해 객체의 생명주기 관리를 스프링 컨테이너에 위임하여, 애플리케이션의 설정과 의존성 관리를 더 쉽게 할 수 있습니다.

AOP(Aspect Oriented Programming) : 관점 지향 프로그래밍

핵심 관점(핵심 비즈니스 로직)과 부가 관점(DB/로깅 등)으로 나누어 보고, 해당 관점을 기준으로 모듈화하는 것입니다.

부가 로직과 핵심 로직을 분리할 수 있게 해주기 때문에 핵심 로직에만 집중할 수 있으며, 코드 변경 및 확장에도 유연하게 대응할 수 있습니다.

Reference

스프링 부트 3 백엔드 개발자 되기(자바 편)

스프링의 핵심 원리: IOC와 DI 이해하기

[Spring] DI, IoC 정리

profile
https://hy5sun.tistory.com/ << 이사중

0개의 댓글