마틴 파울러의 엔터프라이즈 애플리케이션 아키텍처 패턴을 읽고 정리한다.
1부 이야기에서는 다양한 개념과 발전 과정을 말한다.
작성 시점은 20년 전으로 당시와 지금의 용어 & 개념이 다를 수 있고, 더 이상 사용 안 하는 것도 있을 수도 있다.
자세한 내용이 궁금하면 읽어보는 걸 권한다.
엔터프라이즈 애플리케이션 아키텍처 패턴(재출간판) - 교보문고
엔터프라이즈 애플리케이션 구축을 위한 객체지향 설계의 원리와 기법 | 이 책은 『엔터프라이즈 애플리케이션 아키텍처 패턴』의 재출간판이다. 『리팩토링』의 저자로도 잘 알려진 마틴 파
www.kyobobook.co.kr
웹 프레젠테이션
웹 브라우저 기반 사용자 인터페이스는 클라이언트 소프트웨어를 설치할 필요가 없고, 공통적인 UI를 제공하며, 사용하기 쉬운 범용적 접근을 제공하는 등 장점이 많다.
웹 앱을 준비하는 작업은 서버 소프트웨어를 구성하는 것부터 시작한다. 일반적으로 서버는 특정 프로그램이 처리할 URL을 지정하는 일종의 구성 파일을 이용한다.
웹 서버에서 프로그램을 구성하는 방식에는 스크립트와 서버 페이지라는 두 가지 주요 형식이 있다.
- 스크립트 : HTTP 호출을 처리하는 함수나 메서드를 포함하는 프로그램. ex) CGI 스크립트와 자바 서블릿
- 서버페이지 : 반환하는 페이지를 HTML로 작성하고 특정 시점에 실행할 코드를 HTML 스크립트릿(scriptlet)으로 삽입. ex) JSP, PHP, ASP
모델 뷰 컨트롤러는 자주 언급되면서 잘못 이해하는 경우가 많다. 원인은 컨트롤러 용어 때문으로 입력 컨트롤러(input controller)라고 이해하면 좋다.
모델 뷰 컨트롤러를 적용하는 중요한 이유는 웹 프레젠테이션에서 모델을 분리하기 때문이다. 분리를 하면 프레젠테이션을 수정하거나 추가하기 쉽고, 테스트도 진행하기 수월해진다.
애플리케이션 컨트롤러 객체라는 중간 계층 사용으로 프레젠테이션과 도메인을 분리한다. 애플리케이션 컨트롤러는 애플리케이션의 흐름을 처리하고 화면을 어떤 순서로 표시할지 결정하는 역할을 한다.
뷰 패턴
뷰 쪽에서는 3가지 패턴(변환 뷰, 템플릿 뷰, 2단계 뷰)을 고려해야 한다.
- 템플릿 뷰 : 페이지의 구조 안에 프레젠테이션을 작성하고 페이지에 표식을 삽입해 동적 컨텐츠를 넣을 위치 지정, 이 패턴을 기반하는 게 서버 페이지 기술, 단점은 복잡한 코드가 될 가능성이 높다.
- 변환 뷰 : 변환 스타일의 프로그램을 사용(ex: XSLT)
- 2단계 뷰 : 사용할 HTML에 대한 결정을 한 곳으로 모은다. 동일한 레이아웃을 사용하는 사이트에 적합하지만 다채로운 디자인은 부적합하다.
1단계 뷰도 존재한다. 1단계 뷰는 애플리케이션 화면당 뷰 컴포넌트 하나를 사용한다.
입력 컨트롤러 패턴
입력 컨트롤러는 두가지 패턴이 있다.
첫번째, 페이지 컨트롤러가 뷰와 입력 컨트롤러의 역할을 결합한 서버페이지 하나인 경우로 페이지마다 컨트롤러를 만든다. (URL마다 생성한다)
두번째, 하나의 컨트롤러로 모든 HTTP 요청을 처리한다. 프런트 컨트롤러는 URL를 분석해 요청을 파악하고 별도의 객체를 생성한다.
'서적 > 엔터프라이즈 애플리케이션 아키텍처 패턴' 카테고리의 다른 글
1부 이야기 - 세션 상태 (0) | 2021.07.28 |
---|---|
1부 이야기 - 동시성 (0) | 2021.07.28 |
1부 이야기 - 관계형 데이터베이스 매핑 (0) | 2021.07.26 |
1부 이야기 - 도메인 논리 구성 (0) | 2021.07.26 |
1부 이야기 - 계층화 (0) | 2021.07.26 |