04장 웹 프레젠테이션
2023. 2. 16. 20:11ㆍArchitecture/Enterprise Application Architecture
스크립트
- CGI 스크립트
- (웹 페이지 내용을 만드는) 외부 프로그램과 통신하는 방법을 정의.
- 서버와 응용 프로그램간에 데이터를 주고 받기위한 방법 혹은 규약을 일컫음.
- 단점으로는, 사용자가 한 번의 요청을 할 때마다 웹서버가 프로세스를 하나씩 만드는 데 대용량의 DB를 다루고 수많은 사용자가 사용하는 사이트라면 문제점이 발생한다.
- 이를 해결하기 위해 많은 규약들이 등장하게 되었는데 Java에서 Servlet 이라는 기술을 발표했다.
모델 뷰 컨트롤러
- 입력 컨트롤러는 요청을 받고 요청에서 정보를 꺼낸다.
- 비즈니스 논리를 적절한 모델 객체로 전달한다.
- 모델 객체는 데이터 원본 객체와 통신하고 요청에 명시된 모든 작업을 수행한 다음 응답에 필요한 정보를 수집한다.
- 작업이 완료되면 입력 컨트롤러로 제어를 반환한다.
- 입력 컨트롤러는 결과를 조사하고 응답을 표시하는 데 필요한 뷰를 결정한다.
- 입력 컨트롤러는 응답 데이터와 함께 제어를 뷰로 전달한다.
- 입력 컨트롤러에서 뷰로 전달하는 과정이 항상 직접 호출을 통하는 것은 아니며, 입력 컨트롤러와 뷰 간에 공유되는 HTTP 세션 객체에 저장되는 데이터를 통하는 경우도 있다.
모델 뷰 컨트롤러를 적용하는 이유
- 모델을 웹 프레젠테이션으로부터 완전히 분리하기 위해서이다.
- 프레젠테이션을 수정하는 것은 물론 나중에 다른 프레젠테이션을 추가하기도 쉬워진다.
- 처리를 별도의 트랜잭션 스크립트나 도메인 모델 객체에서 수행하면 테스트하기도 수월하다.
애플리케이션 컨트롤러
- 애플리케이션의 흐름을 처리하고 어떤 화면을 어떤 순서로 표시할지 결정하는 역할을 한다.
- 여러 사용자 인터페이스 설계에서는 프레젠테이션 객체를 도메인 객체로부터 분리하기 위해 애플리케이션 컨트롤러 객체라는 중간 계층을 사용한다.
- 애플리케이션 컨트롤러는 애플리케이션의 흐름을 처리하고 어떤 화면을 어떤 순서로 표시할지 결정하는 역할을 한다.
- 이 계층은 프레젠테이션 계층의 일부로 보일 수도 있지만 프레젠테이션과 도메인 계층을 조정하는 별도의 계층으로 생각할 수 있다.
- 애플리케이션 컨트롤러는 모든 프레젠테이션과 독립적으로 만들 수 있으며 프레젠테이션 간에 재사용할 수 있다.
- 모든 시스템에 애플리케이션 컨트롤러가 필요한 것은 아니다.
- 애플리케이션 컨틀로러는 시스템 화면 순서와 화면 간 이동과 관련된 논리가 많은 경우에 유용하다.
- 페이지와 도메인의 작업 간에 간단한 매핑이 없는 경우에도 유용하다.
- 화면을 순서에 관계없이 볼 수 있는 시스템이라면 애플리케이션 컨트롤러가 크게 필요하지 않을 수 있다.
뷰 패턴
- 변환 뷰, 템플릿 뷰, 2단계 뷰라는 세 가지 패턴을 고려해야 한다.
- 먼저 변환 뷰나 템플릿 뷰 중 어떤 것을 사용할지 결정한 다음, 이 패턴에서 1단계 뷰 또는 2단계 뷰 중 어떤 것을 사용할지 결정해야 한다.
템플릿 뷰
- 페이지의 구조 안에 프레젠테이션을 작성하고 페이지에 표식을 삽입해 동적 컨텐츠를 넣은 위치를 지정할 수 있다. (ex. ASP, JSP, PHP)
- 이 기술은 상당히 강력하고 유연하지만, 관리하기 어려운 복잡한 코드로 이어질 가능성이 높다.
- 서버 페이지 기술을 사용하는 경우에 도우미 객체를 활용하는 등의 방법으로 페이지 구조에서 프로그래밍 논리를 철저하게 배제하도록 노력해야 한다.
변환 뷰
- 변환 스타일의 프로그램을 사용한다. (ex. XSLT)
- 사용할 도메인 데이터가 XML 형식이거나 이 형식으로 쉽게 변환할 수 잇을 때 아주 효과적이다.
- 입력 컨트롤러는 XSLT 스타일시트를 선택하고 모델에서 얻은 XML에 이를 적용한다.
- XSLT
- XSL Transformations를 의미하며, XML 문서를 다른 구조의 문서로 변환시키기 위한 언어.
- W3C 표준 권고안으로, XSL에서 가장 중요한 언어.
- 변환과정에서 XSLT는 XPath를 이용하여 XML 문서에서 필요한 정보를 찾는 역할을 함.
1단계 뷰
- 1단계 뷰는 일반적으로 애플리케이션 화면당 뷰 컴포넌트 하나를 사용한다.
- 뷰는 도메인에서 데이터를 받고 이를 HTML로 렌더링한다.
- 서로 비슷한 논리적 화면이 뷰를 공유하는 경우는 있지만 이 경우에도 화면당 뷰 하나가 사용된다고 간주한다.
2단계 뷰
- 1단계 뷰의 과정을 도메인 데이터로부터 논리적 화면을 생성한 다음 이를 HTML로 렌더링하는 두 단계로 나눈다.
- 첫째 단계 뷰는 각 화면마다 하나씩 있지만 두 번째 단계 뷰는 전체 애플리케이션에 하나만 있다.
- 사용할 HTML에 대한 결정을 한 곳으로 모들 수 있다는 장점이 있다.
- 한 객체만 변경하면 사이트의 모든 화면을 변경할 수 있으므로 HTML 전체를 쉽게 변경할 수 있다.
핵심용어정리
- 모델 뷰 컨트롤러 패턴
- 사용자 인터페이스 상호작용을 세 가지 독립적인 역할로 분할한다.
- 트랜잭션 스크립트
- 비즈니스 논리를 프로시저별로 구성해 각 프로시저가 프레젠테이션의 단일 요청을 처리하게 된다.
- 도메인 모델
- 동작과 데이터를 모두 포함하는 도메인의 객체 모델.
- 애플리케이션 컨트롤러
- 화면 이동과 애플리케이션의 흐름을 처리하는 중심 지점
- 변환 뷰
- 도메인 데이터 요소를 요소별로 변환하고 HTML 변환하는 뷰
- 템플릿 뷰
- HTML 페이지에 표시자를 삽입해 정보를 HTML 렌더링한다.
- 2단계 뷰
- 도메인 데이터를 먼저 일종의 논리적 페이지로 변환한 다음 이를 다시 HTML로 변환하는 2단계 과정을 통해 변환한다.
참고자료
영풍문고 - 서점다운 서점
서울 제외지역 외 궁동, 방배동, 역삼동, 삼각산동, 상일동, 강일동, 개화동, 과해동, 오쇠동, 오곡동, 오류동, 장지동, 현저동, 공덕동, 대방동, 충정로1가, 관철동, 여의도동, 양평동1가, 신정3동,
www.ypbooks.co.kr
http://www.tcpschool.com/xml/xml_xslt_intro
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
https://scshim.tistory.com/272
[JSP] Model 1 아키텍처와 Model 2 아키텍처, MVC 패턴
학습 목표 · Model 1 아키텍처 · Model 2 아키텍처 · MVC 패턴 - MVC 패턴과 모델 2 구조의 매핑 - MVC의 컨트롤러: 서블릿 - MVC의 뷰: JSP - MVC의 모델 - 커맨드(Command) 패턴 기반의 코드 - 설정 파일에 커맨
scshim.tistory.com
'Architecture > Enterprise Application Architecture' 카테고리의 다른 글
06장 세션 상태 (0) | 2023.02.16 |
---|---|
05장 동시성 (0) | 2023.02.16 |
03장 관계형 데이터베이스 매핑 (0) | 2023.02.09 |
02장 도메인 논리 구성 (0) | 2023.02.09 |
01장 계층화 (0) | 2023.02.09 |