| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Service Worker
- nosql
- 스프링부트 단점
- C# CS
- 프론트엔드
- jvm구성요소
- Blazor Web App
- 기술면접
- CS
- 스프링 스프링부트 차이점 공통점
- spring spring boot 차이점 공통점
- prosys opc-ua
- OPC-UA
- C# Blazor
- 스프링부트 장점
- UaExpert download
- java란?
- cs기술면접
- 스프링부트의 장단점
- Redundant Array of Independent
- UaExpert다운로드
- Blazor WebAssembly
- opc-ua 다운로드
- C#이론
- 서버저장방식
- OPC-UA Download
- java란 무엇인가
- 컴퓨터과학
- REST API
- Prosys Opc-ua 다운로드
- Today
- Total
담비의 개발블로그
[Spring Boot]IoC 컨테이너란? 본문
Inversion of Control
"Inversion of Control"은 직역하면 "제어 역전"이다.
객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다. 조금 더 쉽게 말하자면 프로그램 제어의 주체를 개발자가 아닌 외부 프레임워크나 컨테이너에 넘기는 것이다.
IoC의 장점
- 코드의 의존성을 외부에서 주입함으로써 컴포넌트 간의 결합도가 낮아지고, 이를 통해 컴포넌트를 쉽게 교체하거나 재사용 할 수 있다. (컴포넌트 : 스프링 컨테이너에서 관리되는 일반적인 빈을 의미한다. 어노테이션 안에 @component가 있다.)
- 객체의 의존성을 외부에서 주입받기 때문에, 모의 객체(mock objects)를 사용하여 단위 테스트를 쉽게 작성할 수 있다.
- 코드가 모듈화되어 있어 수정이 용이하고, 특정 컴포넌트를 변경하더라도 다른 부분에 미치는 영향을 최소화할 수 있어 유지보수성이 향상된다.
(모듈화 : 코드의 구조와 조직을 개선하기 위해 하나의 파일에 모든 코드를 작성하지 않고, 여러 파일과 패키지로 나누어 관리하는 것을 의미한다. 스프링부트에서는 service파일, DTO파일, Repository파일 등으로 나누는 것을 예시로 들 수 있다.)
컨테이너란?
애플리케이션에서 객체의 생성, 관리, 의존성 주입, 생명주기 관리 등을 책임지는 핵심 컴포넌트이다. 컨테이너는 빈(Bean)이라고 불리는 객체들을 관리하며, 이 빈들은 스프링 애플리케이션의 핵심 기능을 구성한다.
https://dambi1224.tistory.com/49
Annotation이란?
어노테이션(Annotation)- 사전적인 의미는 주석을 의미한다. 하지만 코딩할땐 다른의미로 쓰인다.- 코드 사이에 주석처럼 쓰이고, 특별한 의미와 기능을 수행하도록 하는 기술이다.- 자바 코드에 메
dambi1224.tistory.com
IoC컨테이너란?
프레임워크의 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 IoC컨테이너이다.
인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다.
객체관리 주체가 프레임워크(Container)가 되기 때문에 개발자는 로직에 집중할 수 있는 장점이 있다.
구글에서 개발한 IoC 컨테이너 : Google Guice
스프링 IoC 컨테이너 : BeanFactory, ApplicationContext
내용을 정리하자면 IoC는 소프트웨어 엔지니어링에서 객체의 생성과 객체 간의 의존성을 관리하는 디자인 패턴이다. 그리고 IoC컨테이너는 IoC를 구현하는 데 사용되는 프레임워크 또는 라이브러리이다.
스프링 IoC 컨테이너
BeanFactory: 스프링의 가장 기본적인 IoC 컨테이너로, 단순한 빈 생성 및 관리를 수행ㅎ다.
ApplicationContext: BeanFactory를 확장한 인터페이스로, 보다 많은 기능을 제공한다. AOP, 이벤트 시스템, 메시지 리소스 처리 등을 지원한다.
'언어&프레임워크 > Spring&Spring Boot' 카테고리의 다른 글
| [Spring Boot]구글 리캡차 사용법 (1) | 2024.08.19 |
|---|---|
| [Spring Boot]JUnit이란? (0) | 2024.07.24 |
| [Spring Boot]@Transactional에 대해 알아보자! (0) | 2024.07.15 |
| [Spring Boot] 프로젝트 구성방법 (0) | 2024.07.02 |
| [Spring Boot] Bean이란? (0) | 2024.06.22 |
