POJO
Spring은 POJO 프로그래밍을 지향하는 프레임워크이다.
다른 환경이나 기술에 종속적이지 않도록 하기 위해 Spring에서는 IOC/DI, AOP, PSA 세가지 기술을 지원한다.
Plain Old Java Object
"오래된 방식의 순수한 자바 오브젝트"
- 자바 언어 사양 외에 어떠한 제한에도 묶이지 않은 자바 오브젝트
위키백과; 인용된 말이 제법 웃김
💡POJO: 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트.
POJO 프로그래밍: POJO에 애플리케이션 핵심로직과 기능을 담아 설계하고 개발하는 방법
POJO의 규칙
1. 특정 규약에 종속되지 않는다.
- 자바와 꼭 필요한 API외에는 종속되지 않아야 한다.
- 특정 기술을 사용하기 위해서 대부분 제시하는 특정 클래스를 상속하도록 요구한다. 그러나 자바의 경우 단일 상속 제한이 있기 때문에 해당 클래스는 객체 지향적인 설계 기법을 적용하기 어려워지는 문제가 발생한다.
2. 특정 환경에 종속적이지 않는다.
- 환경에 독립적이어야 하며 POJO 클래스는 웹이라는 환경 정보나 웹 기술을 담고 있는 클래스나 인터페이스를 사용해서는 안된다.
3. 객체 지향적 원리에 충실해야 한다.
- 객체 지향적 원리 : 상속, 캡슐화, 다형성, 추상화
- 상속과 다형성을 적용한 클래스가 아닌 조건문으로 가득 찬 클래스의 오브젝트는 POJO라고 부르기 힘들다.
POJO의 장점