반응형
Spring 세미나를 다녀도 또는 이런저런 전공책을 뒤지다가도 POJO라는 용어를 많이 부딛치게 된다. 과연 이용어가 뭘까? 한버 알아보도록 하자.

[1] POJO 의 정의
POJO 의 약어를 풀어서 설명하면 , Plain Old Java Object 즉, 평범하고 오래된 자바 객체 라는뜻이다. 이말의 의미를 이해하기위해서는 과거로 올라가보자,
EJB가 다중 분산환경 System에서 한참 유명세를 떨치고 있던  2000년 9월쯤, 어느 컨퍼런스를 준비중던 Martin Fowler 라는 사람은 생각했다. EJB가 왜 좋은지는 알것 같지만 , Entity Bean을 구성하는 과정에서 소요되는 복잡성 및 비지니스로직이 침해되는 것 보다 일반 Java Object에 Domain에 대한 정보만 실어서 구현하는 것이 더 좋다는 생각을 하게되어 POJO란 용어를 만들게 되었다. 즉, EJB가 아닌 "평범한 자바 오브젝트"를 이용해서 개발을 해보자는 취지였던 것이다.

EJB 라는 용어를 보면 왠지 별거 아닌데도 머 있어 보이는 듯한 느낌이든다. "일반자바" 라는 말은 좀 없어 보인다 . 그렇기 때문에 사람들에게 "평범한 자바 오브젝트"를 이용해서 좀더 단순화된 개발을 하자는 의미에서 그럴듯한 이름의 POJO란 용어를 사용하였다.

[2] POJO를 알려면?
"POJO 방식을 이용했다~~" 라고 삼성SDS의 모 여직원이 그렇게 말하더라~ 얼마전에 있었던 일이다. 흠... 뭔말일까 고민했지만, 별거아니다 단순 자바로직을 통해 구현했다는 말인것을 이제는 이해한다. 단적으로 EJB가 아닌건 다 ~~ POJO다? 라는 명제가 맞을까 ? 아니다. 하지만 EJB의 반해서 나온 개념이기 때문에 EJB관련되어서 경험해본 사람은 좀더이해하기 쉬울것이다. EJB의 ENTITY BEAN -> ~~ -> 지금의 HIBERNATE 가 나오게 된 배경 역사를 알게 된다면, 좀더 높은 이해력을 지닐수 있지 않을까 생각이 든다.

[3] POJO 방식을 이용하여 개발된 Framework 는?
대표적인것이 Spring이다. EJB의 장점을 살리면서, Enterprise 급과 Server 두루두루 사용 가능하도록 도와주는 프레임워크이기 때문이다. 또한 ORM 으로 유명한 Hibernate이다. ORM를 사용하는 Field는 아직까지 경험해 보진 못했다. 이론으로 만 경험해 봤을뿐이다. 좋긴 하지만, 아직까지 우리나라 DB는 정규화과정이 제대로 되어있는 곳이 몇군데 없을 뿐만 아니라, DB Schema수정이 빈번히이루어 지고 있기 때문에 mybatis(ibatis 3.0 이후 이름바뀜) 와 같은 SQL Framework이 좀더 두각을 보이고 있다.

[4] 내생각
POJO방식으로 EJB를 모두 다 커버가능할까? 물론 "기가막히고 코가 막히는 일이다." EJB3가 나온지금, 아직까지 강력한 기능을 모두 커버할 수 없지만 , Transfer 과정이라던가 Entity , Session 등 추상메소드를 강제로 구현해야하는 짜증나는 부분들만 POJO방식을 지원하면 좀더 깔끔해 지지 않을까 생각이 든다.

2007년 쯤인가~ 3학년수업때 EJB를 들어놓았던게 POJO를 이해하는데 한층 더 다가갈 수 있는 원인인것 같다.

                                                                          - 2010년 11월 05일 랑이씀 -
반응형

'Program > JAVA' 카테고리의 다른 글

Java에서 사용되는 정규식 종류 및 소개  (0) 2012.01.25
[ Vector와 ArrayList의 차이점]  (2) 2010.11.22
Abstract Class란?  (0) 2010.09.16
JAVA에서 HashCode 값이 유일한가.?  (0) 2010.03.17
Spring 설정 방법 - UPDATE중  (0) 2010.02.09

+ Recent posts