2021.08.01
8월의 시작부터 두개의 글을 작성합니다. 이번 주제는 bean과 ioc container 입니다.
먼저 ioc container부터 정리 후, 이어서 bean도 정리하겠습니다.
1. ioc container
앞에서 설명한 spring의 장점 중 DI의 핵심 개념이 바로 IOC입니다.
ioc는 제어의 반전, 제어의 역전을 의미합니다. 기존의 제어를 클라이언트 코드가 가지던 것에서
framework가 제어를 가져, 의존 관계의 방향이 달라지게 되는 것을 말합니다.
설계 목적상 제어 반전의 목적은 다음과 같습니다.
1) 작업을 구현하는 방식과 작업 수행 자체를 분리합니다.
2) 모듈을 제작할 때, 모듈과 외부 프로그램의 결합에 대해 고민할 필요 없이 모듈의 목적에 집중할 수 있습니다.
3) 다른 시스템이 어떻게 동작할지에 대해 고민할 필요 없이, 미리 정해진 협약대로만 동작하게 하면 됩니다.
4) 모듈을 바꾸어도 다른 시스템에 부작용을 일으키지 않습니다.
ioc container는 객체 생성을 책임지고 의존성을 관리하는 container입니다.
모든 의존성을 container를 통해서 받아오게 됩니다.
2. bean
bean이란 spring이 생명주기를 관리하는 객체입니다. 다시 말해 ioc container가 관리하는 자바 객체를 말합니다.
일반적으로 XML 파일에 정의하지만 @component 어노테이션이나 자바 설정파일로 bean을 등록할 수 있습니다.
주요 속성으로는 class( 필수 ), id, scope, property 등이 있습니다.
클래스 내부에서 bean을 사용하게 된다면 new를 통해 객체를 생성할 필요가 없습니다. (객체관리를 spring이 함)
실습해보면서 이게 왜 여기에 쓰이는지 어떤 역할을 하는지 정확히 모르면서 썼었습니다.
후에 개념을 다시 정리하니 각자 떨어져있던 얕은 지식들이 서로 연결되는 느낌이듭니다.
'Spring' 카테고리의 다른 글
spring responsebody, get/post mapping (0) | 2021.08.04 |
---|---|
spring controller, requestmapping, requestparam (0) | 2021.08.03 |
spring component, autowired, Inject, Controller, Repository (0) | 2021.08.02 |
Spring MVC (0) | 2021.08.01 |
spring 공부시작 (0) | 2021.08.01 |