POJO(Plain Old Java Object)
POJO 프로그래밍 기본적인 규칙
Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.
특정 환경에 종속적이지 않아야 한다.
객체 지향적 원리에 충실
POJO 프로그래밍이 필요한 이유
POJO라는 것은 Spring Framework의 3가지 특징, IoC/DI, AOP, PSA를 통해서 달성할 수 있다
IoC(Inversion of Control)
DI(Dependency Injection)
Interface 이용
DI의 필요성 / 구현
필요성 : 클래스 내부에서 생성하는 특정 의존성 객체를 잠시 바꿔야 할 때, 그 의존성 객체를 쓴 모든 Class를 수정해야 함
예시 : 아직 구현되지 않은 Service를 같은 데이터만 주는 Stub으로 임시구현, 그리고 이후 Service를 구현하고 코드를 수정한다면?
구현 : 인터페이스(Interface)를 사용 ( 추상화(일반화) 된 클래스에 의존, Dependency Inversion Principle )
주입 방법
기존 방식과 IoC 적용 후 차이
기존 방식
IoC 적용 후
스프링이 실행될때 모든 의존성 객체를 다 만들어주고 필요한곳에 주입시켜 줌 (Bean은 싱글턴 패턴을 가짐)
AOP(Aspect Oriented Programming)
관심 사항 종류
AOP의 필요성
AOP의 장점
PSA 기본 개념
PSA(Portable Service Abstraction)
PSA 필요성