더북(TheBook)

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와 결별하고 스프링 프레임워크(Spring Framework)를 세상에 내놓습니다. 스프링은 곧 대세로 굳혀지며 열렬한 인기를 등에 업고 자바 EE가 근본적으로 새로운 프로그래밍 모델로 혁신하는 데에 상당한 영향을 주었습니다. 이 패턴들은 아직도 대부분 많이 쓰고 있지만, 간결해진 자바 EE 프로그래밍 모델 덕분에 더 이상 필요하지 않은 패턴도 있습니다.

 

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

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.