Posts [Java] POJO
Post
Cancel

[Java] POJO

POJO란?

  • Plain Old Java Object
  • 비침투성
  • EJB 시절에는 Controller, Service 등을 만들려면 특정 인터페이스를 implements 또는 클래스를 extends해야 됐다. 그래서 당시에는 EJB에 매우 의존적이었다. 또한 Controller, Service 등을 사용하기 위해 상속을 해야 한다는 관점에서 객체지향적인 특징을 잃어버렸다. 이미 상속을 했으므로 더 이상 상속을 할 수 없기 때문이다.
  • POJO는 EJB에 종속적이지 않으면서, 객체지향적인 특징을 살린 오브젝트이다. 이는 구현 또는 상속을 하지 않고, 조합 또는 인터페이스 타입으로 프로그래밍하는 것을 의미한다. 결국, 클래스가 특정 인터페이스의 구현체나 특정 클래스의 구체 클래스가 되면 안된다.


Spring은 POJO야?

  • Spring은 POJO 기반의 프레임워크이다.
  • EJB에서 제공하는 엔터프라이즈 기술과 서비스, 그리고 POJO를 이용한 애플리케이션이 가지는 특성과 장점을 그대로 활용할 수 있게 도와준다.
  • @Service와 같은 어노테이션이 붙은 클래스들은 POJO가 맞다. 다른 어노테이션 기반의 프레임워크로 대체한다고 가정하면, 해당 어노테이션만 변경하고, 코드 레벨에서는 변경이 일어나지 않기 때문이다.
  • @Entity는 일부 제약사항(매개변수가 없는 생성자, id 등)이 요구되어 POJO가 아니다.


References

This post is licensed under CC BY 4.0 by the author.

[Database] DB Replication 데이터 정합성 문제 (DB Replication Data Consistency Issue)

[우아한테크코스] 팀 프로젝트가 나에게 남긴 것