POJO

오태호·2021년 11월 18일
1
post-thumbnail

POJO

POJO란

POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다.
  • Plain Old Java Object의 약자입니다.
  • 일반적으로 선언 및 생성하여 사용하는 클래스를 말합니다.
  • 미리 정의된 클래스나 인터페이스, 어노테이션 등을 포함한다면 POJO라고 할 수 없습니다.
  • 특정 기술에 종속되어 동작하지 않는 자바 객체를 말하는 것이라고 할 수 있습니다.
  • POJO가 아닌 클래스의 예시
    • Servlet
    • Filter
    • Listener

POJO 특징

  1. 특정 규약에 종속되지 않습니다.
    • 특정 Library나 Module에서 정의된 class를 상속받아서 구현하지 않습니다.
    • 외부의 의존성을 두지 않고, 순수한 Java로 구성이 됩니다.
    • 객체지향적인 설계 기법을 적용하기 어려워집니다.
    • 다른 환경으로의 이전이 어려워집니다.
  2. 특정 환경에 종속되지 않습니다.
    • 예를 들어 웹환경에 종속되는 HTTPServletRequest나 HTTPSession과 관련된 API를 직접 이용해서는 안됩니다.
    • annotation 기반으로 설정하는 부분 역시 POJO라고 볼 수 없습니다.
    • 다른 환경에서 사용하기 어려워집니다.
    • 웹 서버에 올리지 않고 독립적으로 테스트를 하기가 어려워집니다.

POJO의 장점

  • 객체지향적 설계를 할 수 있습니다.
  • 테스트 하기 좋습니다.(자동화 테스트에 유리합니다)
  • 코드가 간결해집니다.(로우레벨의 코드와 비즈니스 로직의 코드가 분리되어 있습니다)

POJO를 지향하는 이유

POJO 프로그래밍을 하는 이유는 Java는 객체지향언어이기에 객체지향적인 특징을 살려 로직에 따른 개발이 가능하도록 하기 때문입니다. 특정한 환경에 종속되어서 의존하게 되는 Java 코드는 가독성이 떨어지고 유지보수에 어려움이 생깁니다. 그리고, 특정 로직의 클래스를 상속받게 되면 확장성이 부족하다는 단점 또한 있을 수 있습니다. 이렇게 진행한다면, 객체지향 설계의 장점이 사라지게 됩니다.
profile
자바, 웹 개발을 열심히 공부하고 있습니다!

0개의 댓글