loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 이규원
  • 자바
  • JUnit
  • 스터디
  • 스프링
  • nextstep
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • 넥스트스탭
  • 추상화
  • DDD 세레나데
  • 인프라공방
  • 백기선
  • 현실세상의 TDD
  • Patterns of Enterprise Application Architecture
  • 마틴 파울러
  • 장인정신
  • TDD
  • 테스트 주도 개발
  • java
  • 김영한
  • 객체지향
  • Test Driven Development
  • ATDD
  • 조영호
  • 인프런
  • study
  • fastcampus
  • 소프트웨어 장인
  • 오브젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

1부 이야기 - 웹 프레젠테이션
서적/엔터프라이즈 애플리케이션 아키텍처 패턴

1부 이야기 - 웹 프레젠테이션

2021. 7. 26. 21:28

마틴 파울러의 엔터프라이즈 애플리케이션 아키텍처 패턴을 읽고 정리한다.

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
    '서적/엔터프라이즈 애플리케이션 아키텍처 패턴' 카테고리의 다른 글
    • 1부 이야기 - 세션 상태
    • 1부 이야기 - 동시성
    • 1부 이야기 - 관계형 데이터베이스 매핑
    • 1부 이야기 - 도메인 논리 구성
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바