## IOC container
ioc container 란??
보통 컨테이너란 생명주기를 관리, 인스턴스들에게 기능을 제공해 줍니다.
IOC container에서 객체를 생성, 관리, 의존성을 관리해 줍니다.
인스턴스 생성 부터 소멸까지 관리합니다
**인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줍니다.**
**객체관리 주체가 프레임워크(Container)가 되기 때문에 개발자는 로직에 집중할 수 있는 장점이 있습니다.**
- IoC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리한다.
- POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다.
- 개발자들이 직접 POJO를 생성할 수 있지만 컨테이너에게 맡긴다.
- 개발자는 비즈니스 로직에 집중할 수 있다.
- 객체 생성 코드가 없으므로 TDD가 용이하다.
> **POJO(Plain Old Java Object)란?** 주로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 Java Object를 지칭한다.
> Java Bean 객체가 대표적이다.
> 간단하게 getter / setter를 생각하면 될 것 같다.
## **IoC의 분류**
### **DL(Dependency Lookup) 과 DI (Dependency Injection)**
- **DL** : 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lockup하는 것
- **DI** : 각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것
- Setter Injection (수정자 주입)
- Constructor Injection (생성자 주입)
- Method Injection (필드 주입)
RestTemplete 이란?
Spring 3.0 부터 지원하는 Spring의 HTTP 통신 템플릿
· HTTP 요청 후 JSON, XML, String 과 같은 응답을 받을 수 있는 템플릿
· Blocking I/O 기반의 동기방식을 사용하는 템플릿
· RESTful 형식에 맞추어진 템플릿
· Header, Content-Tpye등을 설정하여 외부 API 호출
· Server to Server 통신에 사용
IOC / DI, AOP, PSA
@RequiredArgsConstructor
@Getter
가 있어야 messageConverter 가 가능합니다.
.ok = staus 와 같다
java throw, throws
throws의 경우에는 try catch로 처리해 주어야 합니다.
JPA, hibernate
java 와 같은 객체 지향 언어의 메모리 사용은 code 영역, static 영역, stack 영역, heap 영역이 있다.
'spring' 카테고리의 다른 글
[모각코] 자바가 확장한 객체 지향 (0) | 2024.03.29 |
---|---|
[ 모각코 ] 소프트웨어 아키텍쳐 (1) | 2024.03.22 |
[모각코] oop for spring (1) | 2024.03.08 |