POJO 란

phantom0308
3 min readJun 16, 2021

--

Pojo…..plain old java object,

JAVA를 공부하거나 JAVA 개발자들은 POJO에 대해서 익히 알고 있지만, 정확히 그 내용에 대해서 알지 못하는 경우가 많다.

Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다.

이 내용을 쉽게 설명 하자면,

특정 자바 모델이나 기능, 프레임워크에 종속적이지 않은 Java Object

특정 기술과 환경에 종속되어 의존하게 된 자바 코드는 가독성이 떨어져 유지보수에 어려움이 생기며, 특정 기술의 클래스를 상속받거나, 직접 의존하게 되어 확장성이 매우 떨어지는 단점이 있다. 이 말은 자바가 객체지향 설계의 장점들을 잃어버리게 된 것과도 같은 말이며, 이런 이유로, POJO라는 개념이 등장하고, 본래 자바의 장점을 살리는 ‘오래된’ 방식의 ‘순수한’ 자바객체를 지칭하게 되었다.

흔히 클래스에 EXTENDS, IMPLEMENTS 를 사용하는 코드들은 클래스 간 의존도가 생기기 때문에, 인터페이스 수정, 클래스 수정 시 종속되어있는 클래스들에 영향이 간다. 이는 POJO의 개념을 벗어는 행위이다.

클래스 확장
public class Foo extends javax.servlet.http.HttpServlet { …
인터페이스 구현
public class Bar implements javax.ejb.EntityBean { ...
어노테이션 정의
@javax.persistence.Entity public class Baz { ...
[참고] 위키백과https://ko.wikipedia.org/wiki/Plain_Old_Java_Object

아래 예제 코드와 같이 CLASS 중 GETTER/SETTER 로만 구성된 코드들을 POJO라고 생각하면 된다.

public class Pojo {  private int name;  private int value;  public int getName() {   return name;  }  public int getValue() {   return value;  }  public void setName(int name) {    this.name = name;  }  public void setValue(int value) {    this.value = value;  }}

POJO는 코드의 간결함과 테스트코드 작성 용이, 객체 지향적 설계 이용에 장점을 가지고 있다.

--

--

No responses yet