POJO 란
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는 코드의 간결함과 테스트코드 작성 용이, 객체 지향적 설계 이용에 장점을 가지고 있다.