POJO (Plain Old Java Object)

POJO란?

POJO는 Plain Old Java Object의 약자로 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용 될 수 있는 방식으로 설계된 오브젝트를 말한다. 말이 어려운데 그냥 아래의 조건을 따르는 Java 언어의 개념에 충실하게 여러 논리를 구현하는 방법이다.

POJO의 조건

  1. 특정 규약에 종속되지않는다.
  2. 자바 언어와 꼭 필요한 API외에는 자바 객체가 종속되지 말아야한다. EJB@처럼 특정 규약을 따라 만드는 경우에는 특정 클래스를 상속받도록 요구하는데, 이때 단일 상속만 가능한 자바에서의 객체지향적인 설계 기법을 적용하기 어려워지는 문제가 발생하므로, POJO는 특정 규약의 종속되면 안된다.
  3. 특정 환경에 종속되지 않는다.
  4. 특정 기업의 프레임워크나 서버에서만 동작 가능한 코드라면 POJO라고 할 수 없다. POJO는 환경에 동립적이어야한다. 특히 비즈니스 로직을 담고 있는 POJO 클래스는 웹이라는 환경 정보나 웹 기술을 담고 있는 클래스나 인터페이스를 사용해서는 안된다(웹이라는 환경으로 객체를 제한하기 때문이다.).
  5. 객체 지향적 원리에 충실해야한다.

POJO의 사용

스프링 애플리케이션은 POJO를 이용해서 만든 애플리케이션 코드이기에 POJO가 어떻게 관계를 맺고 동작하는지를 정의해놓은 설계 정보로 구분된다.

스프링의 IOC, DI, AOP, PSA는 POJO로 개발할 수 있게 해주는 가능 기술이다. DI는 유연하게 확장가능한 오브젝트를 만들어두고 그 관계는 외부에서 다이내믹하게 설정해준다. 이런 DI의 개념을 스프링은 애플리케이션 전반에 걸쳐 적용한다.

reference


Written by@Gomster
항상 노력하고 나아가는 백엔드 개발자가 되고 싶은 대학생입니다.

GitHub