오늘은 스프링을 이해하기 위해서 중요한 요소들인 POJO, IoC Container, DI, AOP들에 대해서 알아볼려고 한다.
POJO
- Plain Old Java Object의 약자로서 가장 예전에 순수한 자바 객체를 말하는 것이다. 예로들면 자바 객체에는 상속 같은 것을 사용하여서 결합도를 높일 수 있는데 매우 복잡해진다. 그래서 최대한 간단하게 객체를 만듬으로서 결합도를 낮추고 자유성을 높이기 위해서 Spring에서 사용한다.
- Spring에서 POJO예시: VO
IoC Container
- 객체의 생성부터 소멸까지 전체적인 생명주기를 컨테이너가 대신 관리해준다.
작동 순서
1) IoC Container에 Java POJO를 보낸다. (VO같은 것)
2) IoC Container에 Metadata를 보낸다.
3) 실행하기 위한 준비를 마친다.
DI
- IoC Container에서 관리되는 객체를 필요한 곳에 주입시켜주는 것을 DI라고 한다.
AOP
- Aspect Oriented Programming으로 양상 지향적인 프로그래밍이다. 코드 중 따로 나누지 않는다면 여러개의 비슷한 기능을 하는 method들이 만들어질 가능성이 있다. 이러한 것들을 깔끔하게 떼어내고 분리하고자 하는 것이 바로 AOP이다.