Page 16 -
P. 16

●     보안(security) – J2EE는 롤-기반(role-based) 보안 모델을 자체 제공합니다.
                      ●    트랜잭션(transaction) – 트랜잭션 기능이 내장되어 있습니다.

                      ●     J2SE 언어 특성 – J2SE는 구문이 쉽고 가비지 컬렉션(garbage collection)을 대신하는 멋쟁이 객
                        체 지향 프로그래밍 언어입니다.


                   하지만 J2EE는 완벽하지 못했습니다. XML 설정을 남발하는 복잡한 구조 탓에 개발 환경은 문제
                   투성이로 점철되었죠.




                   1.3.2 엔터프라이즈 자바 패턴의 출현


                   J2EE 특유의 프로그래밍 모델은 너무 복잡해서 많은 프로젝트가 난국에 빠졌습니다. J2EE로 개
                   발하다 보니 JNDI 룩업(lookup) 코드, XML 설정 파일, JDBC 리소스를 얻고 해제하는 try/catch

                   블록 등의 “연결(plumbing)” 코드가 애플리케이션을 채우기 시작했지요. 또 이런 코드를 개발/유지
                   보수하는 일이 리소스 누수를 비롯한 수많은 버그와 성능 이슈의 요인으로 밝혀졌습니다. EJB 컴
                   포넌트는 비즈니스 로직의 구현 복잡도를 낮추려고 개발된 모델인데 끝내 그 목표를 달성하지 못

                   했죠. 너무 복잡한 데다가 과용하는 일도 다반사였습니다.
                   2000년 자바원 콘퍼런스에서 J2EE가 첫선을 보인 몇 년 뒤 디팍 알루어(Deepak Alur), 존 크루피

                   (John Crupi), 댄 막스(Dan Malks)는 “J2EE 플랫폼을 위한 패턴 프로토타이핑(Prototyping Patterns for the
                   J2EE Platform)”을 주제로 강연을 하면서 J2EE 애플리케이션 설계 시 흔히 발생하는 문제점에 관한
                   패턴을 몇 가지 소개합니다. 그리고 이듬해, 이들은 <코어 J2EE 패턴>이라는 책을 출간합니다.
                   이 책에는 이미 잘 알려진 15개 패턴 외에도 새로운 J2EE 디자인 패턴 6개(프레젠테이션 레이어

                   의 컨텍스트 객체와 애플리케이션 컨트롤러(Context Object and Application Controller for the Presentation
                   tier), 비즈니스 티어의 애플리케이션 서비스와 비즈니스 객체(Application Service and Business Object for
                   the Business tier), 통합 티어의 도메인 저장소와 웹 서비스 브로커(Domain Store and Web Service Broker
                   for the Integration tier) 등)가 추가됐습니다.

                   이 6개 패턴 중에는 “고전” GoF 패턴에서 출발한 것도 있지만, J2EE의 결점을 해소한 새로운 패
                   턴도 있습니다. 그다음 해 아파치 카멜(Apache Camel) 등 몇몇 프로젝트와 프레임워크가 나오면서

                   엔터프라이즈 개발자가 한결 일하기 편해졌고 로드 존슨(Rod Johnson)*은 한발 더 나아가 J2EE와




                   *  로드 존슨(Rod Johnson, @springrod)은 스프링 프레임워크를 창시한 호주 출신 컴퓨터 전문가로 스프링소스의 공동 설립자이기도 합니다
                     (위키피디아 로드 존슨, https://goo.gl/zehbjh).

             030





         java_06.indd   30                                                                       2017-02-28   �� 3:00:51
   11   12   13   14   15   16   17   18   19   20   21