2011년 5월 23일 월요일

The Front Controller Pattern

3. The Front Controller Pattern
“Front Controller” 패턴은 공통으로 발생하는 요청 처리를 Controller에 맡기고, 다음 View에 위임한다. 요청 처리를 집중시키면 이 로직이 뷰와 섞이지 않고, 여러 뷰들의 공통역할을 하게 된다. 그러므로 이 로직을 유지보수하고 확장하는 것이 좀더 수월해진다.
“Front Controller” 패턴에서 컨트롤러는 Servlet이나 JSP로 구현된다. 하지만 주로 Servlet으로 구현되는게 일반적이다.
Servlet과 JSP Controller의 차이점
JSP : 일반적으로 요청 처리보다는 출력 형식에 더 가깝다. JSP로 컨트롤러를 만들면 여러가지가 복잡하게 된다.
Servlet : 요청 처리 코드와 HTML이 분리되기 때문에 유지보수하기가 쉬워진다.


구조

Front Controller pattern class diagram



Front Controller sequence diagram


일반적으로 Controller와 Helper 사이에 Command 패턴을 사용한다. Controller의 권한 위임을 Command객체가 받음으로써 위임 프로세스들 간의 결합력을 약하게 한다.

역할
Controller :
요청를 처리하고, 다음 View에 위임하는 시작점
Dispatcher :
View 관리와 내비게이션을 담당
View :
클라이언트에게 필요한 정보를 보여준다.
Helper :
View 와 controller가 작업을 제대로 수행하도록 도와준다.

의도
입력되는 클라이언트의 요청을 처리하는 객체를 단일화하여 그것에게 웹 애플리케이션의 View관리를 집중화 시킨다.

결론
  • 쉽고 이해와 구성이 쉬운 내비게이션 가능 : 내비게이션의 구조를 이해할 때 Controller만 살펴보면되고, 내비게이션을 수정할 때 Controller만 수정하면 된다.
  • View의 쉬운 변경과 재사용 : View는 오직 Controller와 통신하기 때문에 View들 간에는 어떠한 의존 관계도 없다.
  • Front Controller의 복잡성 이동 : 애플리케이션이 거대해질수록 컨트롤러를 유지보수하기 어려워진다.

예제소스
Intercepting Filter Pattern의 예제 소스는 Controller를 Servlet으로 사용한 Font Controller Pattern 과 통일 하므로 여기서 예제 소스는 제시하지 않습니다.

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...