Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- html #css #부트스트랩 #웹사이트 #개발 #초보 #til #내일배움캠프 #스파르타코딩클럽
- java
- sql #내일배움캠프 #스파르타코딩클럽
- sql #부트캠프 #내일배움캠프 #웹관리자 #도전 #학습
- java #문법
Archives
- Today
- Total
Hyeok의 웹 개발 블로그
<2025.03.31> IOC / DI 본문
📌IOC (제어의 역전 , Inversion Of Control)
- 객체의 생성 및 생명주기 관리를 개발자가 직접 하는 것이 아니라 컨테이너가 담당
- 객체 간의 결합도를 낮춰 유연한 코드가 된다.

📌DI (의존성 주입, Dependency Injection)
- Spring이 객체 간의 의존성을 자동으로 주입해주는 것을 의미
- 한 객체가 다른 객체를 사용할 때, 해당 객체를 직접 생성하지 않고 Spring이 주입해주는 방식
- IOC를 구현하는 방식 중 하나

💡 개발자가 직접 관리하는 코드

- 객체 간의 강한 결합을 유발한다.
- 새로운 Service나 Repository가 생긴다면 클라이언트측 코드에 영향이 생긴다.
💡 Spring Container 가 관리 (IOC, DI)

- 구현 코드가 변경되어도 클라이언트의 코드에는 영향이 없다.
- 다른 구현체를 구현하여 Bean으로 등록하면 자유롭게 변경이 가능하다.
- 위 예시 코드는 @Repository 로 등록된 빈이 중복되어 충돌이 발생한다.
- 의존성 주입(DI), 제어의 역전(IOC)을 통해 객체 간의 결합도를 낮추고 유연한 설계가 가능해진다.
🚩 마무리
- IOC는 객체의 제어권을 개발자가 아닌 Spring 컨테이너에게 넘기는 개념으로, Spring이 객체 생성과 관리를 담당
- DI는 Spring이 객체 간의 의존성을 자동으로 주입해주는 기법
- 의존 관계 주입은 객체 간의 결합도를 낮추고 코드의 유연성과 테스트 가능성을 높여준다.
'TIL > Spring' 카테고리의 다른 글
| <2025.04.17> Formatter (0) | 2025.04.17 |
|---|---|
| <2025.04.15> HttpMessageConverter (2) | 2025.04.15 |
| <2025.03.28> 객체 지향 설계 (SOLID 원칙) (0) | 2025.03.28 |
| <2025.03.21> MVC 패턴 (0) | 2025.03.21 |
| <2025.03.20> Spring 입문 2주차 (0) | 2025.03.20 |