[SPRING] POJO는 뭘까 -lake의 개발 노트

손원진·2023년 1월 16일
0

[SPRING]

목록 보기
1/15


POJO


POJO의 유래

SPRING을 사용하기 이전, JAVA EE와 같은 중량 프레임워크에 사용으로, 해당 프레임 워크에 종속적인 중량객체(무거운 객체)에 반발하여 생긴 개념이다.

설명

POJO를 풀어서 설명하면 Plain Old Java Object로 순수한 오래된 자바 객체를 의미한다. EJB(Enterpise Java Business)가 다중 분산환경 system에서 한참 유명세를 떨치고 있던 2000년 9월쯤, 어느 컨퍼런스를 준비하던 matinFlower는 생각했다. "그래 ejb가 좋은 건 알겠어 근데, Entity bean을 구성하는 과정에서 너무 복잡해, 유지보수도 어렵고, 비즈니스 로직이 침해되잖아" 그래서 일반 object에 domain정보만 실어서 구현하는 것이 좋다고 생각해 pojo를 만든 것이다.

POJO의 사용

그런 POJO의 방식을 잘 구현한 것이 SPRING FRAMEWORK이다. Spring은 제어의 역전(IoC Inversion Of Controller)컨테이너 안에서 pojo를 구성 및 관리한다. JAVA EE 프레임워크를 사용하는 것에 비해 구현하거나 상속Implements나 extends를 할 필요가 없고 라이브러리를 지원하기에 용이하며 객체또한 가볍다.
코드예제
public class pojo {
  private String name;
  private int age;
  
  public String getName() {
  	return name;
  }
  public String getAge() {
  	return age;
  }
  public void setName(String name) {
  	this.name = name;
  }
  public void setAge(int age) {
  	this.age = age;
  }
}

EJB등에서 사용하는 Java Bean이 아닌 Getter와 Setter로 구성된 가장 기본적인 형태의 자바를 대표적인 POJO기반에 자바라고 할 수 있다.
getter, setter는 lombok에 의해서 구현되니 특정기술에 종속적인게 아닌가?
-아니다, lombok이 없어도 getter,setter는 구현이 가능하며, 클래스 코드로 컴파일시 lombok의 어노테이션은 pojo에 해당하는 pure java code로 변환된다.

POJO기반에 코드인지 확인하는 두가지 기준

1.객체 지향적으로 설계되었는가?
  • 반복적인 템플릿 코드와 테스트하기 힘든 구조, 확장 및 재활용의 어려움이 남아있다면 EJB의 문제점을 안고 있는 것입니다.

  • 2. 테스트가 쉬운가?
  • 잘 만들어진 POJO어플리케이션은 자동화된 테스트 코드 작성이 편리합니다. 코드작성이 편리하면 더 꼼꼼하게 만들게 되고, 코드 검증과 품질 향상에 유리하게 되죠
  • 잘 만든 테스트 코드가 코드베이스에 있다면 리펙토링할 여유가 생겨 POJO코드를 좀 더 나은 설계구조로 변경할 수 있습니다.




  • 출처

    https://dev-coco.tistory.com/82

    https://needjarvis.tistory.com/585
    https://velog.io/@galaxy/Spring%EC%9D%98-%EA%B8%B0%EB%B3%B8-%ED%8A%B9%EC%A7%95-POJO

    profile
    매일 한 걸음

    0개의 댓글