POJO
- POJO란 Plain Old Java Object의 약자로, 이를 직역하면 순수한 오래된 자바 객체이다. Java로 생성하는 순수한 객체를 뜻한다.
- POJO는 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고, 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 의미한다.
POJO 프로그래밍
- 순수 자바 객체만을 사용한다고 해서 POJO 프로그래밍이라고 볼 수는 없다. 기본 규칙들을 지켜야 한다.
- Java나 Java의 스펙에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.
- 아래 코드는 getter와 setter만 가지고 있는 코드의 예제이다.
- 아래 코드는 Java에서 제공하는 기능만 사용하기 때문에 해당 클래스는 Java 언어 이외의 특정한 기술에 종속되어 있지 않는 순수한 객체이기 때문에 POJO라고 부를 수 있다.
public class User {
private String userName;
private String id;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
- 특정 환경에 종속적이지 않아야 한다.
- POJO 클래스는 웹 기반의 환경 정보나 웹 기술을 담고 있는 클래스 또는 인터페이스를 사용하면 안된다.
- 이러한 이유는 웹 이외의 클라이언트는 해당 기능을 요청할 수 없기 때문이다.
- Tomcat이 지원하는 API를 직접 가져다가 사용한다고 가정하자.
- 시스템의 요구 사항이 변경되어 톰캣에서 Zetty라는 다른 서블릿 컨테이너를 사용하게 되면 Zetty로 수정해야 한다.
- 따라서, Java 이외의 다른 기술에 얽매이지 않으며, 특정 환경에 종속적이지 않아야 POJO 프로그래밍이라고 할 수 있다.
POJO를 사용해야 하는 이유
- 특정 환경이나 기술에 종속적이지 않으면 재사용이 가능하고, 확장 가능한 유연한 코드를 작성 가능
참고 자료