스프링 핵심 개념 1
: IoC(제어의 역전)와 DI(의존성주입)
스프링의 모든 기능은 Ioc(제어의 역전)와 DI(의존성 주입)에 기반을 두고 있습니다. 스프링이라는 프레임워크가 돌아가는 핵심 원리를 이해하기위해 Ioc와 DI에 대해 각각 자세히 알아보고 걔념정리를 하는 시간을 가지겠습니다.

✅ IoC (Inversion of Control)
: Ioc(Inversion of Control)은 '제어의 역전' 이라는 뜻으로, 객체를 개발자가 직접 생성/제어하는 것이 아니라,
외부에서 관리하는 객체를 가져와 사용하는것을 의미한다.
즉, 제어의 흐름이 역전되어 코드 실행의 흐름을 개발자가 아닌, 프레임워크와 컨테이너가 제어하게 되는것을 뜻한다.
스프링은 스프링 컨테이너가 객체를 관리/제공하는 역할을 한다.
예를 들어, 클래스 A에서 B 객체를 쓰고 싶은 경우ㅡ 스프링 컨테이너에서 객체를 주입받아 사용하는 것이다.
✅ DI (Dependency Injection)
: DI(의존성주입)은 IoC(제어의 역전)를 구현하기 위해 사용하는 방법이다. DI는 어떤 클래스가 다른 클래스에 의존한다는 뜻이다.
주로 생성자를 통해 의존성을 주입하는 생성자 주입(Constructor Injection)이나 메서드를 통해 의존성을 주입하는 메서드 주입(Method Injection) 등의 형태로 구현.
1. 생성자 주입 예시
@Service
public class UserService {
private UserRepository userRepository;
@Autowired // 이 부분이 생성자 주입을 나타냅니다.
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
2. 메서드 주입 예시
@Service
public class PaymentService {
private PaymentGateway paymentGateway;
@Autowired // 이 부분이 메서드 주입을 나타냅니다.
public void setPaymentGateway(PaymentGateway paymentGateway) {
this.paymentGateway = paymentGateway;
}
public void processPayment() {
// paymentGateway를 사용하여 결제 처리
}
}
🌈 오늘 배운것 요약 정리 🌈
IoC를 구현하기위해 DI를 사용한다. Ioc는 추상적인 개념이고, DI는 제어의 역전이라는 개념을 구현하기위해 실제 사용하는 코드 작성법이다.
출처: 스프링 부트 3 백엔드 개발자 되기: 자바 편
https://product.kyobobook.co.kr/detail/S000201766024
스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고
스프링 부트 3 백엔드 개발자 되기: 자바 편 | ★ 자바 백엔드 개발자가 되고 싶다면 ★ 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려면 시작이 중요합니다. 그래서 이 책은
product.kyobobook.co.kr