..

POJO(Plain Old Java Object): 객체지향의 본질로 돌아가기

POJO란 무엇인가?

POJO (Plain Old Java Object)는 말 그대로 “오래된 방식의 단순한 자바 객체”를 의미합니다. 어떤 특정한 자바 모델이나 프레임워크, 인터페이스를 따르지 않는 아주 평범한 자바 클래스입니다.

왜 이런 용어가 생겼을까? (탄생 배경)

스프링이 등장하기 전, 자바 생태계를 장악했던 EJB(Enterprise JavaBeans)는 개발자들에게 지옥과 같은 복잡함을 선사했습니다.

  • 강한 종속성: 프레임워크가 제공하는 특정 클래스를 반드시 상속(extends)받거나 인터페이스를 구현(implements)해야만 동작했습니다.
  • 객체지향의 상실: 비즈니스 로직을 짜는 것보다 프레임워크의 규칙을 맞추는 데 더 많은 에너지를 쏟아야 했고, 이 과정에서 다형성이나 상속 같은 객체지향의 본질적인 장점들이 퇴색되었습니다.

이에 마틴 파울러(Martin Fowler)와 같은 거장들이 “우리는 그저 평범한 자바 객체를 원한다”며 제안한 개념이 바로 POJO입니다.

POJO의 진정한 가치

  1. 가독성과 유지보수성: 군더더기 없는 순수 코드로 작성되므로 가독성이 높고 관리가 쉽습니다.
  2. 테스트 용이성: 특정 환경(서버, 프레임워크)이 없어도 단위 테스트(Unit Test)를 손쉽게 수행할 수 있습니다.
  3. 유연성: 특정 라이브러리에 묶이지 않으므로, 나중에 기술 스택이 바뀌더라도 비즈니스 로직만큼은 재사용할 수 있습니다.

POJO는 단순한 용어가 아닌, “기술에 종속되지 않고 비즈니스 가치(Logic)를 가장 소중히 여기겠다”는 개발자의 태도이자 철학입니다.