-
POJO란 도대체 무엇인가?Spring 2020. 4. 22. 11:00728x90반응형
스프링 공부를 하다보면 POJO라는 단어를 자주 목격한다. 그렇다면 POJO란 도대체 무엇인가?
정의
Plain Old Java Object의 약자로 직역을 하자면 평범한 구식 자바 오브젝트이다.
무거운 EJB와 반대로 경량의 자바 객체를 의미한다.
여기서 말하는 EJB란
Enterprise JavaBean의 약자로 자바의 기술 중 하나이다.
IT 시스템이 점점 발전하고 그에 따라서 복잡한 기술이 요구되면서 자바의 기초적인 JDK만으로는 그것을 충족시킬수 없
었다. 그래서 서버 기반의 자바 기술인 J2EE가 등장했지만 Servlet,JSP레벨의 최소한의 서버 프로그래밍 인터페이스만
가지고는 복잡한 애플리케이션을 제작하는것에 한계를 느꼈고 이것을 보안하기 위해 나온 것이 바로 SUN사에서 만든것
이EJB이다. EJB를 사용함으로써 개발자는 비즈니스 로직에만 집중할 수 있게 되었다.
하지만 현실에서는 1% 미만의 애플리케이션을 위해 나머지 99% 애플리케이션도 무거운 기능을 사용해야했다.
또한, EJB의 혜택을 얻기 위해서는 기능이 필요하지도 않은 WAS을 구입해야 했고, 고급 IDE도움 없이는 복잡한 설정에
허우적대야 했다.
결국 EJB와 같은 잘못된 기술을 피하고, 객체지향 원리에 따라 만들어진 자바 언어의 기본에 충실하게 비즈니스 로직을
구현하는 일명 POJO방식으로 돌아와야 한다는 목소리가 높아졌다.(요즘 Jquery가 많이 무거워져 순수 자바스크립트인 바닐라.js로 돌아가는것과 비슷한 양상같다.)
POJO 특징
- 특정 규약에 종속되지 않는다.
- 특정 환경에 종속되지 않는다.
- 객체지향원리에 충실해야 한다.
POJO를 쉽게 이야기하자면? 별도로 종속되지 않는 자바 객체를 통칭한다고 볼 수 있다.
EJB의 경우에는 implemnts,extends를 사용하는 코드들이 많다. 그럴 경우에 빈 하나를 만들기위해 다양한 부모클래스를 참조하여야하고 그렇게 되면, 클래스 간의 의존도가 높아져 나중엔 뭐가 어디서 상속되며 무엇이 있는지 헷갈리기 시작한다.
그래서 POJO는 이러한 복잡한 것을 버리고, 간단한 자바 객체만을 가지고 일을 처리하자는 철학을 가지고 있다.
현재 POJO는 자바빈(JavaBean)으로 사용되고 있다. JavaBean은 기본 생성자와 멤버 필드에 접근할 수 있는 getter/setter 메소르들 가진 단순 자바 오브젝트이다.
POJO를 이용한 디자인이 널리 쓰임에 따라 POJO 기반의 프레임워크들이 탄생하게 되었는데
그중에서 가장 대표적인 것이 바로 스프링이다!
그리고 POJO 프로그래밍을 손쉽게 할수 있도록 제공하는 세가지 기술이 스프링을 하면 꼭 듣는 단어인
IoC /DI
- 스프링의 가장 기본이 되는 기술이자 스프링의 핵심 개발원칙이다.
AOP
- 핵심 관리사를 분리하여 프로그램의 모듈화를 향상시키는 프로그래밍 스타일이다.
-PSA
인터페이스가 다른 다양한 구현을 같은 방식으로 사용하도록 중간에 인터페이스 어댑터 역할을 해주는 레이어를 추가하는 방법이다.
728x90반응형'Spring' 카테고리의 다른 글
javascript xhr // spring // jsonarray Data 전송 (0) 2021.05.04 [스프링(Spring)] 스프링이란 무엇인가!? -1 (0) 2021.02.19 Springframework <form:form> 이란? (0) 2020.04.20 mybatis framework를 알아보자 (0) 2020.04.06 자바 bean ?? 클래스란 (0) 2020.04.03