Plain Old Java Object, 오래된 방식의 간단한 자바 오브젝트라는 의미이다.
말 그대로 단순한 의미인 POJO는 왜 탄생하게 되었을까?
개발 초기에 생산성을 위해 다양한 프레임워크들이 만들어졌다. 프레임워크 사용으로 인해 생산성은 향상되었지만, 점점 프레임워크에 종속된 객체들을 사용하게 되었다.
개발 언어와 프레임워크의 주객이 전도되는 현상이 발생하였고, 이에 다시 특정 프레임워크나 모델에 종속되지 않은 순수한 자바 객체라는 POJO라는 개념이 나오게 되었다.
우리는 사람들이 자기네 시스템에 보통의 객체를 사용하는 것을 왜 그렇게 반대하는지 궁금하였는데, 간단한 객체는 폼 나는 명칭이 없기 때문에 그랬던 것이라고 결론지었다. 그래서 적당한 이름을 하나 만들어 붙였더니, 아 글쎄, 다들 좋아하더라고. -마틴 파울러-
POJO는 순수한 자바 객체라는 의미이다.
서블릿을 사용하기위해서는 미리 정의된 클래스를 확장해서 구현해야 한다. 이는 POJO가 아니다.
예시)
public class ServletExample extends HttpServlet {
...
}
확장이나 상속이 없는 순수한 객체이다. 기능을 사용하기 위해 강제로 구현한 객체가 아니라면 POJO이다.
예시)
class MyObject {
...
}
POJO는 Java Bean과 자주 비교된다. Java Bean은 몇 가지 규칙이 더해진 POJO이다.
private으로 선언하며 getter와 setter를 가지고 있어야 한다.예시)
class MyBean implements Serializable {
private int numberValue;
private String stringValue;
public MyBean(){
}
public getNumberValue(){
return this.numberValue;
}
public setNumberValue(int numberValue){
this.numberValue = numberValue;
}
...
}
https://ko.wikipedia.org/wiki/Plain_Old_Java_Object
https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF
https://limmmee.tistory.com/8
https://www.baeldung.com/java-pojo-class