0. POJO?
Plain Old Java Object
다들 한번쯤 다들 한번쯤 들어본 단어이실 겁니다.POJO
를 있는 그대로 해석해보면, '순수한 오래된 자바 객체' 정도로 해석할 수 있는데요. 이보다 더 자세히 이해하기 위해서 잠시POJO
라는 개념이 등장하게 된 배경을 살펴봅시다.
1. 배경
예전에 많이 사용했던 백엔드 기술 중 EJB라는 기술이 있습니다. 엔터프라이즈급 서버 시스템 개발시 유용한 업무로직이 포함되어있어서 EJB에만 존재하는 클래스를 사용하여 개발된 시스템이 많았다고 하는데요.
하지만 시간이 지나 새로운 기술, 프레임워크들이 등장하며 시스템을 이식해야할 경우가 생겼다고 합니다. 이때, EJB에만 존재하는 클래스를 사용한 부분의 이식의 어려움이 있었고, 이러한 사례들 때문에 POJO라는 개념이 드러났다고 합니다.
2. POJO의 정의
Java 언어 외에 어떠한 제한에도 묶이지 않은
자바 객체
라고 할수 있습니다.
다시말하면 어떤 라이브러리나, 모듈에 의존하지 않는 자바 객체
를 POJO
라고 할 수 있습니다.
대표적으로 Spring Framework, Hibernate와 같은 프레임워크들이 개발자가 서비스로직에 집중하고, POJO
로 쉽게 개발할 수 있도록 지원하고 있습니다. 하지만, 엄밀히 말하면 Spring Framework, Hibernate와 같은 프레임워크를 사용하는것도 사실 POJO
라고는 할 수 없죠.
3. 결론
POJO
로 개발해야한다고 해서 Spring과 Hibernate와 같은 Java생태계의 주축인 기술을 사용하지 않을수는 없죠. 그래서 저는 POJO
= Only Java
라는 의미라고 이해하지는 않고, POJO
= WORA를 크게 해치지 않는 객체
라고 생각합니다.
WORA : Write Onece Run Anyware
제가 잘못 알고있거나, 잘못된 작성한 부분이 있을경우에는 얼마든지 태클 환영입니다.
감사합니다.