
Plain Old Java Object의 약자로, 특별한 규칙이나 프레임워크에 종속되지 않은 순수한 자바 객체를 의미한다.
POJO에 대한 개념은 복잡한 EJB에 대한 반발로 시작되었고, Java 개발의 방향을 바꿨을 정도로 큰 영향을 미쳤다.
당시에는 비즈니스 로직을 작성하려면 Enterprise JavaBeans (EJB)을 써야했다.
하지만 EJB를 구현하려면 인터페이스, XML 설정, JNDI 등록, 컨테이너 종속 등 복잡한 절차가 필요했다.
또한, 테스트도 어렵고, 개발 생산성이 매우 떨어졌다.
2002년, Martin Fowler와 Rebecca Parsons가 POJO라는 개념을 언급하면서 개발자들 사이에서 주목을 받게 됐다.
프레임워크에 의존하지 않는 순수한 객체로도 충분하다는 주장이였다.
객체는 프레임워크가 아니라 개발자가 주도적으로 설계해야 한다.
public class MyPojo {
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;
}
}
1. 특정 규약에 종속되지 않는다
→꼭 필요한 API 외에는 종속되지 않아야 함
→단일 속성 원칙으로 객체 지향적인 설계 기법을 적용하기 어려워지는 문제 발생하게 됨
2. 특정 환경에 종속되지 않는다
3. 객체 지향 설계가 적용 되어야 한다
1. 깔끔한 코드
2. 자동화된 테스트에 매우 유리
3. 객체지향적인 설계를 자유롭게 적용할 수 있다.