J2EE
태그 :
- 개념
- SUN JAVA 센터에서는 확장성(scalability), 가용성(availability), 성능(performance), 보안(securability), 신뢰성(reliability), 유연성(flexibility) 등과 같은 QoS(Quality of Service)를 얻기 위해 지속적으로 J2EE 플랫폼을 위한 솔루션을 설계 - J2EE 아키텍처는 J2EE 플랫폼 애플리케이션의 설계 과정 또는 적용 과정에서 발생하게 되는 문제를 문서화하고 해결할 수 있는 최상의 방안을 제시
I. J2EE 디자인 패턴 개요
가. J2EE 디자인 패턴 개념
- SUN JAVA 센터에서는 확장성(scalability), 가용성(availability), 성능(performance), 보안(securability), 신뢰성(reliability), 유연성(flexibility) 등과 같은 QoS(Quality of Service)를 얻기 위해 지속적으로 J2EE 플랫폼을 위한 솔루션을 설계
- J2EE 아키텍처는 J2EE 플랫폼 애플리케이션의 설계 과정 또는 적용 과정에서 발생하게 되는 문제를 문서화하고 해결할 수 있는 최상의 방안을 제시
나. J2EE 디자인 패턴 목적
- EJB, Servlet, JSP, JNDI, API 등과 같은 J2EE 플랫폼에서 제공하는 기술들을 사용할 때 발생하는 문제점들을 해결
- 완전히 새로운 기술을 개발하기 보다는 best practice를 문서화하고 추천
다. J2EE 디자인 패턴 사용 시 장점
- J2EE 디자인 원칙을 자연스럽게 사용하게 됨
- 문서화의 효과와 사용 사례를 받아들이는 효과가 있음
- J2EE에서 제공하는 기술들의 역할을 이해
- 컴포넌트간의 커플링과 의존도를 줄일 수 있음
- 네트워크 트래픽을 최소화 할 수 있음
- 가능할 때마다 네트워크 지연으로 발생하는 비용을 줄일 수 있음
- J2EE 개발자를 위한 공통적인 어휘를 정의하여 개발자들간의 더욱 수월한 커뮤니케이션 가능
라. J2EE 시스템의 레이어
II. J2EE 디자인 패턴 종류
가. 프리젠테이션 티어(Presentation Tier) 패턴
- 클라이언트 티어와 통신하고 View와 Controller 패턴으로 구분
구분 |
설명 |
Intercepting Filter |
HTTP 요청을 가로채서 사전 동작처리 후 이후 진행 여부를 판단 |
Front Controller |
보안, 검증 등 공통된 로직을 한 장소에서 핸들링 |
Context Object |
상태를 여러 애플리케이션에서 공유할 수 있도록 특정 프로토콜에 한정되지 않는 방식으로 캡슐화 |
Application Controller |
액션과 뷰 관리를 중앙집중하고 모듈화 |
View Helper |
프리젠테이션 티어 로직과 관련 없는 로직을 Helper 컴포넌트로 캡슐화 |
Composite View |
최소 단위의 하위 컴포넌트를 집합 뷰로 생성 |
Service to Works |
Front Controller와 View Helper 패턴을 혼합형태로 View 컴포넌트가 디스패처 역할을 하고 비즈니스 처리를 요청 |
Dispatcher View |
Front Controller와 View Helper 패턴을 혼합형태로 View 컴포넌트가 디스패처 역할을 하고 비즈니스 처리를 요청 |
나. 비즈니스 티어(Business Tier) 패턴
- 클라이언트가 간단하면서도 항상 동일한 방법으로 사용할 수 있도록 비즈니스 로직을 조직화하여 제공
구분 |
설명 |
Business Delegate |
비즈니스 서비스 접근을 캡슐화. 프리젠테이션 클라이언트와 비즈니스 서비스간의 커플링을 줄여줌 |
Service Locator |
컴포넌트 룩업과 생성을 위한 오퍼레이션을 하나의 컴포넌트에 정의함으로써 코드 중복을 많이 줄이고 캐쉬 기능을 제공함 |
Session Façade |
복잡한 비즈니스 티어 컴포넌트를 캡슐화하고 원격 클라이언트에게 인터페이스를 제공 |
Application Service |
비즈니스 로직을 Session Façade와 Business Object 사이에 놓기 위한 중심점 제공 |
Business Object |
비즈니스 데이터와 로직을 서로 분리 |
Composite Entity |
로컬 엔티티 빈과 POJO를 이용하여 하나의 Persistent Business Object로 구현 |
Transfer Object |
여러 개의 값을 하나의 오브젝트로 캡슐화 함으로써 리모트 호출 횟수를 줄일 수 있음 |
Transfer Object Assembler |
복합 Transfer Object를 생성 |
Value List Handler |
클라이언트의 요구사항에 따라 쿼리 결과를 관리. Iterator 패턴과 유사 |
다. 인테그레이션 티어(Integration Tier) 패턴
- 비즈니스 티어와 EIS(Enterprise Information System) 사이에서 사용
구분 |
설명 |
Data Access Object |
데이터 액세스 로직을 캡슐화 |
Service Activator |
비즈니스 컴포넌트에게 비동기 방식으로 메시지를 전달하는 방법을 제공 |
Domain Store |
EntityBean을 사용하지 않으면서 비즈니스 오브젝트에게 투명한 퍼시스턴스 메커니즘을 제공 |
Web Service Broker |
비즈니스 서비스를 웹서비스 형태로도 서비스할 때 이를 유연하게 처리할 수 있는 방법을 제공 |