Search results for 'Composite View'

프리젠테이션(Presentation) 티어 패턴 - Composite View

2007/05/26 22:59
1. 고려해야 할 사항
  • 뷰는 사용자와 수행될 기능에 따라 다이나믹하게 구성될 수 있어야 함.
  • 템플릿을 구성하고 있는 일부분의 변경이 자주 발생. 그러나, 전체 템플릿의 구조는 고정된 구조를 가지고 있음. 예를 들어, 헤더는 항상 화면 위에 위치하면서 광고를 보여주는 경우가 많음.
  • 레이아웃이 변경될 경우 이것을 관리하는 것은 더 어렵고, 서브 뷰가 직접 전체 화면에 포함되어 하드코딩되어 있고, 여러 뷰에서 중복되어 사용되고 있을 경우, 서브 뷰 변경시 이 코드를 관리하는 것은 더 어려움.
  • 컨텐츠 변경시 페이지가 캐싱되어 있기 때문에 변경된 새로운 페이지가 서비스되도록 하기 위해서는 서버를 재시작 하거나, 아니면 변경된 페이지가 디시 로딩되도록 해야 함.

2. 해결방안
  • Composite View 페이지는 ViewFragment 페이지와 다른 Composite View 페이지를 포함하고 있음.
  • CompositeView 페이지는 페이지의 레이아웃을 정의.

3. 해결방안 - 구조
사용자 삽입 이미지


4. 해결방안 - 시퀀스
사용자 삽입 이미지


5. 구현전략
  • Early-Binding Resource
    <%@include %> 다이렉티브는 JSP가 서블릿으로 변환되는 시점에 서브뷰가 포함됨. 이 전략은 보통 퍼포먼스가 좋고 포함되는 페이지가 자주 변경되지 않는 경우에 효율적.  예를 들어, 한 달에 한번 변경되는 머리글과 바닫글을 가지고 있을 경우, 이 전략을 사용하면 좋음.
  • Late-Binding Resource
    <jsp:include> 액션 태그를 사용해 구현 할 수 있음. 이 액션 태그는 런타임 서브 뷰를 포함시킴. 이 전략은 수행 속도 측면에서 "Early-Binding Resource"보다 늦지만, 서브 뷰가 자주 업데이트 될 경우 유용한 전략. 또한, 사용자 요청을 기반으로 서브 뷰들이 포함되어야 하는 경우, 이 전략이 "Early-Binding Resource" 보다 훨씬 더 유용함.
  • Custom Tag View Management
    뷰는 자바빈즈 콤포넌트를 이용해 포함되게 됨.
  • Transformer View Management
    뷰는 XSL Transformer를 이용해 관리됨.

6. 예제 및 코드
사용자 삽입 이미지


7. 결과
  • 장점
    템플릿을 한 장소에서 변경시킬 수 잇기 때문에 유지보수가 쉬워짐.
    템플릿은 사용자 요청을 기반으로 서브 뷰들을 다이나믹하게 포함할 수 있음.
  • 단점
    템플릿이 적절하게 구성되지 않을 경우 잘못된 컨텐츠가 생성될 수 있음.
    런타임에 서브 뷰를 포함할 경우 퍼포먼스가 늦어질 수 있음.

8, 관련패턴
  • Composite
  • View Helper
이올린에 북마크하기

happyness Programming/J2EE Patterns ,

2007/05/26 22:59 2007/05/26 22:59
[로그인][오픈아이디란?]