
엔터프라이즈 애플리케이션 아키텍처 패턴: 엔터프라이즈 애플리케이션 구축을 위한 객체지향 설계의 원리와 기법
- 저자
- Fowler, Martin | 최민석
- 판사항
- 재출간판
- 발행사항
- 파주 : 위키북스, 2015
- 형태사항
- xv, 554 p. : 삽화, 도표 ; 24 cm
- 총서사항
- IT leaders ; 024
소장정보
위치 | 등록번호 | 청구기호 / 출력 | 상태 | 반납예정일 |
---|---|---|---|---|
이용 가능 (1) | ||||
연구외도서 | G100888 | 대출가능 | - |
- 등록번호
- G100888
- 상태/반납예정일
- 대출가능
- -
- 위치/청구기호(출력)
- 연구외도서
책 소개
엔터프라이즈 애플리케이션 개발 분야는 새로운 기반 기술이 등장함에 따라 함께 혜택을 받으며 크게 발전했다. 덕분에 이 분야에도 자바나 .NET과 같은 다중 계층 객체지향 플랫폼이 표준화됐다. 이러한 새로운 도구와 기술은 강력한 애플리케이션을 구축할 수 있는 기반이지만 제대로 구현하기는 어렵다. 엔터프라이즈 애플리케이션을 개발할 때 자주 겪는 문제 중에는 숙련된 객체지향 개발자라면 알고 있어야 할 아키텍처에 대한 경험 부족 때문에 유발되는 것들이 많다.
『엔터프라이즈 애플리케이션 아키텍처 패턴』은 엔터프라이즈 애플리케이션 개발자가 맞닥뜨리는 까다로운 과제를 극복하기 위한 지식을 전수하기 위해 쓰여졌다. 유명한 객체지향 설계자이자 저자인 마틴 파울러는 스몰토크와 코바에서 시작해 현재의 자바와 .NET까지 핵심 기술은 계속 진화하지만 일상적이고 공통적인 문제는 근본적으로 동일한 설계 아이디어를 적용해 해결할 수 있다는 사실을 깨달았다. 그리고 이러한 기본 아이디어를 바탕으로 전문적인 여러 공동 저자 그룹의 도움을 받아 40가지 공통적인 해결책을 패턴으로 만들어냈다. 그리고 이러한 해결책을 어떠한 엔터프라이즈 애플리케이션 플랫폼에도 적용할 수 있게 한 권의 유용한 핸드북으로 정리하는 데 성공했다.
이 책은 사실 두 권의 책을 한 권으로 묶었다고 할 수 있다. 이 책의 앞부분은 엔터프라이즈 애플리케이션 개발에 대한 간단한 자습서 역할을 하며, 독자가 처음부터 순서대로 읽으면서 이 책의 주요 주제를 개략적으로 파악할 수 있게 구성됐다. 그리고 더 많은 비중을 차지하는 뒷부분은 패턴 자체에 대한 아주 자세한 참조서 역할을 한다. 각 패턴에는 사용법과 구현 정보는 물론 자바나 C#으로 작성된 자세한 코드 예제를 함께 실었으며 설명하는 개념을 시각적으로 이해하는 데 도움이 되는 UML 다이어그램도 다양하게 준비했다.
이 책을 통해 엔터프라이즈 애플리케이션을 개발하면서 중요한 설계상의 결정을 내리는 데 필요한 지식과 함께 개발 과정에 사용할 수 있는 입증된 패턴을 체계적으로 이해할 수 있을 것이다.
★ 이 책에서 다루는 내용 ★
◎ 엔터프라이즈 애플리케이션을 여러 계층으로 분할하는 방법
◎ 비즈니스 논리를 구성하는 여러 주요 방식
◎ 객체와 관계형 데이터베이스 간 매핑에 대한 심도 깊은 논의
◎ 모델 뷰 컨트롤러를 통한 웹 프레젠테이션 운영
◎ 여러 트랜잭션에 걸친 데이터의 동시성을 처리하는 방법
◎ 분산 객체 인터페이스 설계
목차
▣ 들어가며
아키텍처
엔터프라이즈 애플리케이션
엔터프라이즈 애플리케이션의 유형
성능에 대한 고려
패턴
패턴의 구조
이러한 패턴의 한계
[01부] 이야기
▣ 01장: 계층화
엔터프라이즈 애플리케이션에서 계층의 발전
세 가지 주요 계층
계층이 실행될 위치 선택
▣ 02장: 도메인
선택
서비스 계층
▣ 03장: 관계형
아키텍처 패턴
동작 문제
데이터 읽기
구조적 매핑 패턴
- 관계 매핑
- 상속
매핑
- 이중 매핑
메타데이터 사용
데이터베이스 연결
기타 주의사항
참고 자료
▣ 04장: 웹 프레젠테이션
뷰 패턴
입력 컨트롤러 패턴
참고 자료
▣ 05장: 동시성
동시성 문제
실행 컨텍스트
격리와 불변성
낙관적 동시성 제어와 비관적 동시성 제어
- 일관성 없는 읽기 예방
- 교착 상태
트랜잭션
- ACID
- 트랜잭션 리소스
- 활동성을 위한 트랜잭션 격리성 저하
- 비즈니스 트랜잭션과 시스템 트랜잭션
오프라인 동시성 제어를 위한 패턴
애플리케이션 서버 동시성
참고 자료
▣ 06장: 세션 상태
상태 비저장의 가치
세션 상태
세션 상태를 저장하는 방법
▣ 07장: 분산 전략
분산 객체의 매력
원격 및 로컬 인터페이스
분산이 필요한 상황
분산 경계를 사용한 작업
분산을 위한 인터페이스
▣ 08장: 종합
도메인 계층으로 시작하기
데이터 원본 계층
- 트랜잭션 스크립트(115)의 데이터 원본
- 테이블 모듈(132)의 데이터 원본
- 도메인 모델(122)의 데이터 원본
프레젠테이션 계층
몇 가지 기술 관련 조언
- 자바와 J2EE
- .NET
- 저장 프로시저
- 웹 서비스
다른 계층화 체계
[02부] 패턴
▣ 09장: 도메인 논리 패턴
트랜잭션 스크립트
- 작동 원리
- 사용 시점
- 수익 인식 문제
- 예제: 수익 인식(자바)
도메인 모델
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 수익 인식(자바)
테이블 모듈
- 작동 원리
- 사용 시점
- 예제: 테이블 모듈을 이용한 수익 인식(C#)
서비스 계층
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 수익 인식(자바)
▣ 10장: 데이터 원본 아키텍처 패턴
테이블 데이터 게이트웨이
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 인물 게이트웨이(C#)
- 예제: ADO.NET 데이터 집합 사용(C#)
행 데이터 게이트웨이
- 작동 원리
- 사용 시점
- 예제: 인물 레코드(자바)
- 예제: 도메인 객체를 위한 데이터 홀더(자바)
활성 레코드
- 작동 원리
- 사용 시점
- 예제: 간단한 인물 클래스(자바)
데이터 매퍼
- 작동 원리
- 사용 시점
- 예제: 간단한 데이터베이스 매퍼(자바)
- 예제: 검색기 분리(자바)
- 예제: 비어 있는 객체 만들기(자바)
▣ 11장: 객체-관계형 동작 패턴
작업 단위
- 작동 원리
- 사용 시점
- 예제: 객체 등록을 사용하는 작업 단위(자바)
식별자 맵
- 작동 원리
- 사용 시점
- 예제: 식별자 맵의 메서드(자바)
지연 로드
- 작동 원리
- 사용 시점
- 예제: 지연 초기화(자바)
- 예제: 가상 프락시(자바)
- 예제: 값 홀더 사용(자바)
- 예제: 고스트 사용(C#)
▣ 12장: 객체-관계형 구조 패턴
식별자 필드
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 정수 키(C#)
- 예제: 키 테이블 사용(자바)
- 예제: 복합 키 사용(자바)
외래 키 매핑
- 작동 원리
- 사용 시점
- 예제: 단일 값 참조(자바)
- 예제: 다중 테이블 검색(자바)
- 예제: 참조의 컬렉션(C#)
연관 테이블 매핑
- 작동 원리
- 사용 시점
- 예제: 직원과 기술(C#)
- 예제: 직접 SQL 사용(자바)
- 예제: 여러 직원을 쿼리 하나로 처리(자바)
의존 매핑
- 작동 원리
- 사용 시점
- 예제: 앨범과 트랙(자바)
포함 값
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 간단한 값 객체(자바)
직렬화 LOB
- 작동 원리
- 사용 시점
- 예제: 부서 계층을 XML로 직렬화(자바)
단일 테이블 상속
- 작동 원리
- 사용 시점
- 예제: 선수 정보를 단일 테이블로 매핑(C#)
- 데이터베이스에서 객체 로드
클래스 테이블 상속
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 선수의 상속 구조 매핑(C#)
구현 테이블 상속
- 작동 원리
- 사용 시점
- 예제: 구현 테이블 상속(C#)
상속 매퍼
- 작동 원리
- 사용 시점
▣ 13장: 객체-관계형 메타데이터 매핑 패턴
메타데이터 매핑
- 작동 원리
- 사용 시점
- 예제: 메타데이터와 리플렉션 사용(자바)
쿼리 객체
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 간단한 쿼리 객체(자바)
리포지토리
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 인물의 의존자 검색(자바)
- 예제: 리포지토리 전략의 교체(자바)
▣ 14장: 웹 프레젠테이션 패턴
모델 뷰 컨트롤러
- 작동 원리
- 사용 시점
페이지 컨트롤러
- 작동 원리
- 사용 시점
- 예제: 서블릿 컨트롤러와 JSP 뷰를 사용한 간단한 표시(자바)
- 예제: JSP를 처리기로 사용(자바)
- 예제: 코드 숨김을 이용한 페이지 처리기(C#)
프런트 컨트롤러
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 간단한 디스플레이(자바)
템플릿 뷰
- 작동 원리
- 사용 시점
- 예제: 별도의 컨트롤러와 함께 JSP를 뷰로 사용(자바)
- 예제: ASP.NET 서버 페이지(C#) 380
변환 뷰
- 작동 원리
- 사용 시점
- 예제: 간단한 변환(자바)
2단계 뷰
- 작동 원리
- 사용 시점
- 예제: 2단계 XSLT(XSLT)
- 예제: JSP와 커스텀 태그(자바)
애플리케이션 컨트롤러
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 상태 모델 애플리케이션 컨트롤러(자바)
▣ 15장: 분산 패턴
원격 파사드
- 작동 원리
- 사용 시점
- 예제: 자바 세션 빈을 원격 파사드로 사용(자바)
- 예제: 웹 서비스(C#)
데이터 전송 객체
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 앨범에 대한 정보 전송(자바)
- 예제: XML을 사용한 직렬화(자바)
▣ 16장: 오프라인 동시성 패턴
낙관적 오프라인 잠금
- 작동 원리
- 사용 시점
- 예제: 도메인 계층과 데이터 매퍼(174)(자바)
비관적 오프라인 잠금
- 작동 원리
- 사용 시점
- 예제: 간단한 잠금 관리자(자바)
굵은 입자 잠금
- 작동 원리
- 사용 시점
- 예제: 공유된 낙관적 오프라인 잠금(441)(자바)
- 예제: 공유된 비관적 오프라인 잠금(452)(자바)
- 예제: 루트 낙관적 오프라인 잠금(441)(자바)
암시적 잠금
- 작동 원리
- 사용 시점
- 예제: 암시적인 비관적 오프라인 잠금(452)(자바)
▣ 17장: 세션 상태 패턴
클라이언트 세션 상태
- 작동 원리
- 사용 시점
서버 세션 상태
- 작동 원리
- 사용 시점
데이터베이스 세션 상태
- 작동 원리
- 사용 시점
▣ 18장: 기본 패턴
게이트웨이
- 작동 원리
- 사용 시점
- 예제: 특정 메시징 서비스에 대한 게이트웨이(자바)
매퍼
- 작동 원리
- 사용 시점
계층 상위 형식
- 작동 원리
- 사용 시점
- 예제: 도메인 객체(자바)
분리 인터페이스
- 작동 원리
- 사용 시점
레지스트리
- 작동 원리
- 사용 시점
- 예제: 싱글턴 레지스트리(자바)
- 예제: 스레드로부터 안전한 레지스트리(자바)
값 객체
- 작동 원리
- 사용 시점
금액
- 작동 원리
- 사용 시점
- 예제: 금액 클래스(자바)
특수 사례
- 작동 원리
- 사용 시점
- 참고 자료
- 예제: 간단한 null 객체(C#)
플러그인
- 작동 원리
- 사용 시점
- 예제: ID 생성기(자바)
서비스 스텁
- 작동 원리
- 사용 시점
- 예제: 소비세 서비스(자바)
레코드 집합
- 작동 원리
- 사용 시점