POJO의 full name은 Plain Old Java Object 이다.
순수한 자바 객체 -> 특정 기능을 구현하기 위해 특정 프레임워크나 API의 클래스를 상속하거나 인터페이스를 구현하지 않는 순수한 자바 객체
핵심)
특정 프레임워크나 API에 의존하지 않음
자바 표준 라이브러리 사용
// 예: 특정 프레임워크가 제공하는 클래스 상속
public class MyCustomServlet extends HttpServlet {
// 서블릿 컨테이너에서 동작하는 서블릿 클래스
}
// 예: Runnable 인터페이스 구현
public class MyTask implements Runnable {
@Override
public void run() {
// 작업 내용
}
}
유연성 : 순수 자바코드기 때문에 어느 프레임워크든 호환 가능
테스트 용이성 : 외부 종속성이 적어 단위 테스트 쉽게 가능
유지보수성 : 자바코드니 명확한 구조로 되어있어 유지보수 용이
핵심) pojo와 spring 기능 (애너테이션) 이용 -> 빈으로 등록 -> 유연한 설계
말로 풀어서
핵심은 pojo라는 순수자바객체에 스프링환경에서 제공하는 기능을 합쳐서 빈으로 등록해서 언제든찌 꺼내서 쓰겠다
vo -> pojo의 한 예 (전송 목적)
순수 자바코드에 aspect 애너테이션 적용함으로써 이제 로그 뽑아낼 수 있다. 이것도 pojo + aspect
pojo + controller
Servlet: 서블릿은 전통적인 Java EE(Web) 기술 스택에 종속적이며, 특정 API와 스펙을 따라야 한다.