2009년 2월 5일 목요일

POJO란?

POJO라는 말은 풀어쓰면 Plain Old Java Object(평범하고 오래된 자바 객체)라는 말로 일반적인 레귤러(Regular)자바 객체를 가리키는 말이 되겠다.

이 말은 Rebbecca Parson, Josh MacKenzie, Martin Fowler가 2000년 어떤 컨퍼런스에서 비즈니스 로직을 에터티 빈을 사용하는 대신 레귤러 자바 객체로 인코딩하는 것이 얼마나 이로운지를 설명하면서 나온말인데, 처음에 사람들이 이 말을 귀기울여 듣지 않았으나 곰곰히 생각해 보니 사람들이 새로운 용어가 아니라서 그런 듯 해서 POJO라는 그럴듯한 새로운 용어로 부르기 시작했다고 한다.

관련내용은 Martin Fowler의 위키에 가보면 확인 할수 있다.

http://www.martinfowler.com/bliki/POJO.html

                                                                                                                                           

POJO - Plain Old Java Object

- 평범한 java Object,즉 자바개발자가 마음대로 정의 할수 있는 객체라는 뜻이다.
- EJB 컨테이너에 의존 하는 객체 처럼 복잡하지 않고 개발자가 쓰기 편한 간단한 Object를 만들어 쓰자는
  간단한 Object의 개념이다.
- Object를 간단히 수퍼클래스로 둔 보통의 평범의 그자체 순수 자바클래스 라고 봐도 괜찮다.

POJO의 필수요소

- light-weight(possibly) : 가볍게
- fiexible : 유연성
- simple : 간단 명료
- supported by separate opional components such as hiberate or spring

- 즉, Spring, Hiberate, Ibatis 등에서 객체를 가볍게, 간단히 유연하게
   어떤 Object에 대해 추상화 할수있는 객체를 만들어야한다.
(ex. DTD의 쓰임)

                                                                                                                                         

                  
POJO를 이해하려면 POJO라는 단어가 만들어진 역사적 배경을 살펴볼 필요가 있다. POJO는 마틴 파울러가 2000년 가을에 열렸던 어느 컨퍼런스의 발표를 준비하면서 처음 만들어낸 말이다.
 마틴 파울러는 EJB(Enterprise JavaBean)보다는 단순한 자바 오브젝트에 도메인 로직을 넣어 사용하는 것이 여러 가지 장점이 있는데도 왜 사람들이 그 EJB가 아닌 ‘평범한 자바 오브젝트’를 사용하기를 꺼려하는지에 대해 의문을 가졌다. 그리고 그는 단순한 오브젝트에는 EJB와 같은 그럴듯한 이름이 없어서 그 사용을 주저하는 것이라고 결론 내렸다.
 그래서 만든 단어가 POJO라는 용어인 것이다. POJO 기반의 기술을 사용한다고 말하면 왠지 첨단 기술을 사용하는 앞선 개발자인 듯한 인상을 주기 때문이다.
이 POJO라는 용어를 만들어낸 전략은 매우 성공적이었다. EJB의 문제점과 한계를 느낀 많은 개발자들은 새로운 기술처럼 보이는 POJO 프로그래밍이라는 것에 관심을 가지게 되었고, POJO 기반의 프로그래밍 기술이 EJB의 강력한 대안으로 등장하기 시작했다. POJO 기반의 프레임워크, POJO 애플리케이션을 위한 플랫폼 등이 점점 인기를 끌게 되었고, 결국 POJO가 배제하려고 했던 EJB는 POJO 기반의 기술에 밀려 이제 레거시 기술로 사라질 위기에 처했다. 그렇다면 단지 EJB를 사용하지 않으면 모두 POJO라고 할 수 있을까? 그렇지는 않다. POJO 프로그래밍이라는 개념은 단지 ‘EJB가 아닌 자바’ 이상의 특징을 가지고 있는 프로그래밍 모델이다. POJO 기반의 개발은 생각보다 단순하지 않다.
POJO를 좀더 이해하려면 EJB의 장단점을 함께 이해해야 한다. 그것은 POJO 프로그래밍이 다시 EJB 시대 이전으로 돌아가자는 것이 아니고, EJB를 넘어 그보다 더 앞으로 나아가자는 것이기 때문이다



An acronym for: Plain Old Java Object.

The term was coined while Rebecca Parsons, Josh MacKenzie and I were preparing for a talk at a conference in September 2000. In the talk we were pointing out the many benefits of encoding business logic into regular java objects rather than using Entity Beans. We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely.

댓글 없음:

댓글 쓰기