스크랩

구간

소프트웨어 아키텍처 문서화 [2판]

원제 : Documenting Software Architectures: Views and Beyond
시리즈 : 에이콘 소프트웨어 아키텍처 시리즈 [21]

폴 클레멘츠, 펠릭스 바흐만, 렌 베스 외 저 | 전병선 역 | 에이콘출판 | 2016년 07월

미리보기 북트리

정가
$90.00
판매가
$65.61 (27%↓) 최저가 보상
적립금
$1.31 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

이책의 구판 정보

소프트웨어 아키텍처 문서화 폴 클레멘츠 외 저 | 에이콘 | 2013년 09월 [품절]

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960778870 / 648쪽 189 x 251 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

출판사 서평 ★ 이 책의 대상 독자 ★ 이 책에는 3가지 독자 유형이 있다. 1. 소프트웨어 프로젝트의 아키텍처 문서를 생성하는 책임을 맡은 소프트웨어 아키텍트: 이들에 대해서는 “나의 아키텍처에 수집할 정보?는 무엇이며, 시기적절한 형식으로 명확하고 유용하게 의사소통하는데 사용할 수 있는 표기법과 기법은 무엇인가?”에 대한 질문에 대답할 것이다. 2. 아키텍트 또는 아키텍처 팀에게 받은 문서를 소화하고 사용해야 하는 아키텍처 이해당사자: 소프트웨어 아키텍트는 자신의 문서의 안내서로, 이 책을 제공해 특정한 절을 통해 문서 구조의 ... ★ 이 책의 대상 독자 ★ 이 책에는 3가지 독자 유형이 있다. 1. 소프트웨어 프로젝트의 아키텍처 문서를 생성하는 책임을 맡은 소프트웨어 아키텍트: 이들에 대해서는 “나의 아키텍처에 수집할 정보는 무엇이며, 시기적절한 형식으로 명확하고 유용하게 의사소통하는데 사용할 수 있는 표기법과 기법은 무엇인가?”에 대한 질문에 대답할 것이다. 2. 아키텍트 또는 아키텍처 팀에게 받은 문서를 소화하고 사용해야 하는 아키텍처 이해당사자: 소프트웨어 아키텍트는 자신의 문서의 안내서로, 이 책을 제공해 특정한 절을 통해 문서 구조의 원칙, 표기법, 개념 또는 관례를 설명할 수 있다. 3. 소프트웨어 아키텍처에 관한 개요적인 개념을 배우고자 하는 사람: 소프트웨어 아키텍처(따라서 문서화)의 목적과 사용을 수립함으로써, 그리고 아키텍처의 생성과 의사소통에 중요한 기본적인 개념 집합을 수립함으로써, 이 책은 이 주제의 개요로서의 역할을 한다. 우리는 소프트웨어 엔지니어링의 개념에 대한 기본적인 사항을 알고 있다고 가정한다. 대부분의 경우에서 아키텍처 뷰와 아키텍처 스타일, 인터페이스와 같이 여러분이 알고 있는 기본 개념을 더 선명하고 명확하게 할 것이다. ★ 2판에 새로 추가된 것★ ■ 몇 가지 새로운 아키텍처 스타일이 주류로 들어왔으며, 이 판은 이들을 문서화하는 것에 대해 이야기한다. 여기에는 서비스지향 아키텍처와 다중 티어 아키텍처, 관점지향 시스템을 위한 아키텍처가 포함된다. 또한 설치와 제품 환경뿐만 아니라 소프트웨어 시스템 데이터 모델의 아키텍처 수준 문서화를 중요한 스타일로 다룬다. ■ 이 판은 포괄적인 문서화보다는 작동하는 소프트웨어에 더 큰 가치를 두는 애자일 선언문과 일관적인 충고를 지향하는 애자일에 근거를 두고 작업했다. ■ 최고의 산업 관행을 반영해 더 근거 있고 체계적인 문서화를 다뤘다. 또한, 이해당사자가 의도한 대로 되어 있는지 아키텍처 문서를 검토하는 새로운 장을 추가했다. ■ 제시된 아키텍처 문서화의 템플릿은 그동안의 사용과 피드백을 반영해 향상되었다. 또한, 좀 더 유연하며, 다른 옵션으로 문서를 배열할 수 있게 했다. ■ 문서화된 소프트웨어 아키텍처의 포괄적인 예를 새로운 것으로 대체했다. 오늘날 산업의 주류 아키텍처는 웹 기반의 서비스지향 시스템이다. 이 책을 더 얇게 하고, 시간이 지나감에 따라 예제를 유지할 수 있게 하기 위해 예제를 온라인에 두었다. 그리고 많은 온라인 예제도 대체되거나 변경되었다. ■ 초판이 출간된 이래 UML은 2.0 이상의 버전으로 업그레이드되었다. 이것은 다양한 아키텍처 구조, 특히 컴포넌트와 커넥터를 좀 더 직접적으로 문서화할 수 있는 새로운 가능성을 열어주었다. 필요한 곳에 새로운 구조를 반영해 그림을 변경했다. ■ 이 판은 아키텍처를 문서화하는 데 유용한 UML과 AADL, SysML 등 3가지 중요한 언어와 표기법을 요약한 간결한 부록을 포함하고 있다. 각 부록은 해당 언어의 간단한 참조 가이드를 제공한다. ■ 마지막으로 이 판에는 초판이 출간된 이래 그동안 우리가 뷰와 그 너머와 함께 얻은 경험이 반영되었다. 이 경험은 문서화된 아키텍처를 생성하고, 다른 사람이 그렇게 하도록 도와주는 데서 온 것이다. 또한 다른 조직의 소프트웨어 아키텍처를 평가할 때와 같이 실제로 아키텍처 문서를 사용하는 데서 왔다. 마지막으로 이 책을 기반으로 하는 이틀간의 실무 과정에 참여한 수천명 이상의 참가자와 상호작용한 결과를 반영하였다. 소프트웨어 아키텍처를 실습하는 이들의 상호작용은 우리의 충고를 좀 더 규범적이고 선명하게 하며, 아키텍트가 매일 만나게 되는 문제와 상황을 반영하게 만들었다.

저자 소개

  • 저자 : 폴 클레멘츠, 펠릭스 바흐만, 렌 베스 외
저자 폴 클레멘츠(Paul Clements)은 카네기멜론 SEI(Software Engineering Institute) 기술진의 선임 연구원이다.

역자 소개

30년 실무 개발 경험을 바탕으로 CBD, SOA, BPM 분야의 아키텍처 설계와 컨설팅을 수행하고 있으며, 20권 이상의 저서를 출간한 베스트셀러 저자다. 최근에는 다시 개발자로서 직접 실무 개발에 참여하고 있으며 닷넷(.NET)과 자바 개발 기술을 리딩하고 있다. 또한 유튜브 전병선 IT 아카데미에서 개발 기술과 아키텍처 설계에 관련된 여러 강의 동영상을 제공하고 있다.
IT 기술 분야의 저자로서 1993년부터 C, C++, 비주얼 C++, 객체지향, UML, CBD, SOA 분야의 베스트셀러 IT 서적을 20권 이상 저술했으며, 폭넓은 독자층을 갖고 있다. 94년 이후 전문 IT 기술 강사로서 정보기술연구소, 다우데이터시스템, 소프트뱅크코리아, 데브피아, 웹타임, 삼성SDS 멀티캠퍼스에서 강의했으며, 96, 97년에는 마이크로소프트의 초대 리저널 디렉터로서 DevDays, TechEd, PDC 등의 여러 컨퍼런스에서 강연했다.
금융, 제조, 조선, 통신, 정부 연구기관 등 다양한 도메인 분야에서 아키텍트이자 PM으로 참여했다. 삼성전자 홈 네트워크 솔루션 아키텍처 구축, STX 조선 생산계획 시스템, 대우조선 DIPS시스템, 삼성생명 비전속 영업 관리 시스템 등 CBD 또는 리얼타임과 임베디드(Real-Time & Embedded)를 기반으로 하는 다양한 프로젝트를 컨설팅했다.
또한 SOA 전문가로서 거버넌트 2.0, KRNet 2010 등 각종 SOA 세미나와 강연회를 가졌으며, 조달청 차세대 통합 국가전자조달시스템 구축 사업 서비스 모델링과 KTN-STEPSOA 진단 컨설팅을 했으며, KT의 NeOSS 시스템 구축, 암웨이의 AUS 시스템, 대우조선의 SOA 기반 종합 계획 EA 프로젝트 등의 SOA 관련 프로젝트들을 수행했다.

머리말

★ 지은이의 말 ★

이 책의 목적은 다음 질문에 대답하는 것이다.
“다른 사람이 성공적으로 사용할 수 있고, 유지보수하며, 시스템을 구축하는 데 사용할 수 있는 아키텍처를 어떻게 문서화하는가?”
이 책의 독자는 아키텍처 문서의 생산과 소비에 관련된 모든 사람들이다. 이 책의 목표는 아키텍처에 관한 어떤 정보가 수집해야 할 중요한 것인지를 결정하고, 그것을 수집하는 데 필요한 지침과 표기법, 예제를 제공하는 것이다. 우리는 이 책이 아키텍처를 구성하는 다양한 종류의 정보에 대한 실무 중심의 가이드가 되도록 했다. 또한, 어떤 정보가 문서화되어야 하는지를 결정하며, (UML을 비롯한 다양한 표기법의 예제와 함께) 다른 사람들이 아키텍처에 기반한 작업, 즉 구현과 분석, 복구를 수행하는 데 사용할 수 있도록 작성할 때 그 정보를 서술하는 방법을 보여주는 실제적인 가이드를 제공한다. 또한 다른 사람들이 사용할 수 있는 포괄적인 아키텍처 문서를 생성하는 방법을 보여준다.
대부분의 책에서 특정한 표기법(보통 UML)을 사용하는 방법을 설명하지만, 우리는 아키텍트가 정말로 필요한 것은 아키텍처와 이해당사자가 가장 우선하는 가이드며, 언어는 그것을 지원하는 부수적인 것이라고 믿는다. 그것이 이 책에서 제공하고자 하는 것이다.

★ 옮긴이의 말 ★

30년간의 소프트웨어 개발 경험 속에서 갖고 있는 하나의 신념은 ‘아키텍처가 튼튼한 시스템이 결국엔 성공한다.’는 것이다. 아키텍처가 튼튼한 시스템은 결합성이 적고 응집력이 강한 시스템이다. 이처럼 튼튼하게 아키텍처가 설계된 시스템을 구현하는 것은 결코 실패하지 않으며, 적어도 문제를 최소화할 수 있다. 업무 로직이 변경되는 경우라도 쉽게 대응할 수 있어 생명력이 긴 소프트웨어 시스템을 만들어낼 수 있다. 이러한 신념을 바탕으로 집필한 『CBD, What & How』(와우북스, 2008)와 『SOA, What & How』(와우북스, 2008)에서 각각 제시한 CBD와 SOA 방법론은 모두 튼튼한 아키텍처 설계를 강조하고 있다. 소프트웨어 아키텍처를 문서화하는 것은 아키텍트나 개발자들에게 어려운 작업일 수 있다. 그러나 소프트웨어 아키텍처를 올바르게 문서화하는 일은 다양한 관점을 갖고 있는 모든 이해당사자가 시스템의 소프트웨어에 대해 같은 이해를 공유하게 한다는 점에서 아주 중요하다.
이 책은 초판의 연장선상에 있으면서도 문서화 체계를 변화시켰다. 뷰 타입과 스타일, 뷰로 구분하던 것을 스타일과 뷰로 간결하게 바꾼 것이다. 이것은 『(개정3판)소프트웨어 아키텍처 이론과 실제』(에이콘, 2015)를 반영한 결과다. 이 책에서 설명한 소프트웨어 아키텍처 문서화 방법론의 이름은 뷰와 그 너머(View and Beyond)다. 특별히 이번 판은 근래에 많이 적용하고 있는 애자일 개발 프로젝트에서의 아키텍처 문서화 방법도 함께 설명하고 있다. 이 책에서 뷰와 그 너머 방법론과 애자일 철학은 중심점에서 완전히 일치한다고 단정한다. 즉, 정보가 필요 없다면 문서화하지 않는다는 것이다. 많은 애자일 프로젝트에서 소프트웨어 아키텍처 문서화를 무시하는 경향이 있지만, 이 책을 읽고 여러분은 애자일 프로젝트에서도 소프트웨어 아키텍처 문서화가 필요하다는 것을 깨닫게 될 것이다. 특별히 이번 판에서는 UML을 사용해 소프트웨어 아키텍처의 다양한 뷰를 표현하는 방법도 포함하고 있으며, 웹 기반의 서비스지향 시스템을 문서화하는 예제도 제공한다.

목차

목차
프롤로그: 소프트웨어 아키텍처와 문서화
__P.1 소프트웨어 아키텍처의 간단한 개요
____P.1.1 개요
____P.1.2 아키텍처와 품질 속성
____용어 설명: 소프트웨어 아키텍처란?
____관점: 아키텍처와 설계의? 차이점
__P.2 아키텍처 문서화의 간단한 개요
____P.2.1 왜 소프트웨어 아키텍처를 문서화하는가?
____용어 설명: 명세, 표현, 서술, 문서화
____P.2.2 아키텍처 문서화의 사용과 독자
____P.2.3 아키텍처 문서화와 품질 속성
____P.2.4 아키텍처 문서화의 경제성
____P.2.5 뷰와 그 너머 방법론
____P.2.6 애자일 환경에서의 뷰와 그 너머
____P.2.7 문서화보다 빨리 변경되는 아키텍처의 문서화
__P.3 아키텍처 뷰
____용어 설명: 아키텍처 뷰의 간단한 역사
__P.4 아키텍처 스타일
____P.4.1 스타일의 3가지 분류
____용어 설명: 모듈과 컴포넌트
____용어 설명: ‘아키텍처 스타일’과 ‘아키텍처 패턴’
__P.5 좋은 문서화를 위한 7가지 규칙
____관점: 모든 사람이 ‘그냥 아는’ 표기법을 조심하라
____관점: 화살표의 의미
__P.6 요약 체크리스트
__P.7 생각해볼 문제
__P.8 더 읽을거리
I부 소프트웨어 아키텍처 스타일의 컬렉션
__I.1 스타일의 세 가지 카테고리
__I.2 스타일 지침: 스타일을 설명하기 위한 표준 구성
__I.3 문서화할 요소 및 관계 속성 선택
__I.4 아키텍처 뷰 표기법
__I.5 사례
1장 모듈 뷰
__1.1 개요
__1.2 모듈 뷰의 요소와 관계, 속성
____1.2.1 요소
____1.2.2 관계
____1.2.3 속성
__1.3 모듈 뷰 사용
__1.4 모듈 뷰 표기법
____1.4.1 비형식적 표기법
____1.4.2 UML
____1.4.3 DSM
____1.4.4 ERD
__1.5 다른 뷰와의 관계
__1.6 요약 체크리스트
__1.7 생각해볼 문제
__1.8 더 읽을거리
2장 몇 가지 모듈 스타일
__2.1 분할 스타일
____2.1.1 개요
____2.1.2 요소, 관계, 속성
____2.1.3 분할 스타일 사용
____2.1.4 분할 스타일 표기법
____2.1.5 다른 스타일과의 관계
____2.1.6 분할 스타일 사례
____용어 설명: 서브 시스템
__2.2 사용 스타일
____2.2.1 개요
____2.2.2 요소, 관계, 속성
____2.2.3 사용 스타일 사용
____2.2.4 사용 스타일 표기법
____2.2.5 다른 스타일과의 관계
____2.2.6 사용 스타일 사례
____용어 설명: 사용하다(uses)
__2.3 일반화 스타일
____2.3.1 개요
____2.3.2 요소, 관계 속성
____2.3.3 일반화 스타일 사용
____2.3.4 일반화 스타일 표기법
____2.3.5 다른 스타일과의 관계
____2.3.6 일반화 스타일 사례
__2.4 레이어 스타일
____2.4.1 개요
____2.4.2 요소, 관계, 속성
____2.4.3 레이어 스타일 사용
____2.4.4 레이어 스타일 표기법
____2.4.5 다른 스타일과의 관계
____2.4.6 레이어 스타일 사례
____용어 설명: 가상 머신
____관점: 상위 레이어 호출
____관점: 레이어 아키텍처를 유지하기 위한 DSM 사용
__2.5 관점 스타일
____2.5.1 개요
____2.5.2 요소, 관계, 속성
____2.5.3 관점 스타일 사용
____2.5.4 관점 스타일 표기법
____2.5.5 다른 스타일과의 관계
____2.5.6 관점 스타일 사례
____용어 설명: 관점지향 프로그래밍
__2.6 데이터 모델
____2.6.1 개요
____2.6.2 요소, 관계, 속성
____2.6.3 데이터 모델 사용
____2.6.4 데이터 모델 스타일 표기법
____2.6.5 다른 스타일과의 관계
____2.6.6 사례
____용어 설명: 엔티티
__2.7 요약 체크리스트
__2.8 생각해볼 문제
__2.9 더 읽을거리
3장 컴포넌트-커넥터 뷰
__3.1 개요
__3.2 C&C 뷰의 요소, 관계, 속성
____3.2.1 요소
____3.2.2 컴포넌트-커넥터 타입과 인스턴스
____3.2.3 관계
____3.2.4 속성
____관점: 복잡한 커넥터가 필요할까?
__3.3 C&C 뷰 사용
____관점: 커넥터 추상화 선택
__3.4 C&C 뷰 표기법
____3.4.1 비형식적 표기법
____3.4.2 형식적 표기법
____3.4.3 준형식적 표기법
____관점: 데이터 흐름과 제어 흐름 모델
__3.5 다른 뷰와의 관계
__3.6 요약 체크리스트
__3.7 생각해볼 문제
__3.8 더 읽을거리
4장 몇 가지 컴포넌트-커넥터 스타일
__4.1 C&C 스타일 개요
__4.2 데이터 흐름 스타일
____4.2.1 파이프-필터 스타일
__4.3 호출-반환 스타일
____4.3.1 클라이언트-서버 스타일
____4.3.2 P2P 스타일
____4.3.3 서비스지향 아키텍처 스타일
__4.4 이벤트 기반 스타일
____4.4.1 출판-구독 스타일
__4.5 레파지토리 스타일
____4.5.1 공유 데이터 스타일
__4.6 C&C 스타일 횡단 관심사
____4.6.1 프로세스-커뮤니케이션
____4.6.2 티어
____4.6.3 동적 생성과 소멸
__4.7 요약 체크리스트
__4.8 생각해볼 문제
__4.9 더 읽을거리
5장 할당 뷰와 몇 가지 할당 스타일
__5.1 개요
__5.2 배포 스타일
____5.2.1 개요
____5.2.2 요소, 관계, 속성
____5.2.3 배포 스타일 사용
____5.2.4 배포 스타일 표기법
____5.2.5 다른 스타일과의 관계
__5.3 설치 스타일
____5.3.1 개요
____5.3.2 요소, 관계, 속성
____5.3.3 설치 스타일 사용
____5.3.4 설치 스타일 표기법
____5.3.5 다른 스타일과의 관계
__5.4 작업 배정 스타일
____5.4.1 개요
____5.4.2 요소, 관계, 속성
____5.4.3 작업 배정 스타일 사용
____5.4.4 작업 배정 스타일 표기법
____5.4.5 다른 스타일과의 관계
____관점: 작업 배정 뷰가 왜 아키텍처적인가?
__5.5 기타 할당 스타일
____관점: 조정 뷰
__5.6 요약 체크리스트
__5.7 생각해볼 문제
__5.8 더 읽을거리
II부 구조를 넘어서: 문서화 완료
6장 기초를 넘어서
__6.1 정제
____6.1.1 분할 정제
____6.1.2 구현 정제
____6.1.3 설계 스펙트럼
__6.1.4 스타일 특수화
__6.2 서술적 완결성
__6.3 컨텍스트 다이어그램 문서화
____6.3.1 뷰 용어를 사용한 컨텍스트 다이어그램 생성
____6.3.2 컨텍스트 다이어그램 내용
____6.3.3 컨텍스트 다이어그램과 다른 지원 문서화
____6.3.4 컨텍스트 다이어그램 표기법
__6.4 가변점 문서화
____6.4.1 가변점
____6.4.2 가변 메커니즘
____용어 설명: 제품 라인 아키텍처
____6.4.3 역동성과 동적 아키텍처
____6.4.4 가변점 문서화
__6.5 아키텍처 결정 문서화
____6.5.1 아키텍처 결정 문서화 이유
____6.5.2 아키텍처 결정 문서화 템플릿
____6.5.3 대안 문서화
____6.5.4 어떤 결정을 문서화할 것인가?
____관점: “이것을 하려면 많은 노력이 들겠지만, 함께 찾아보면 방법이 있습니다.”
____6.5.5 아키텍처 결정 문서화 보상
____관점: 아키텍처 문서화로부터 의사 결정으로서의 아키텍팅까지
____관점: 아키텍처 결정의 온톨로지
__6.6 뷰 결합
____6.6.1 뷰 사이의 연관 타입
____6.6.2 결합 뷰
____6.6.3 뷰를 결합할 때
____6.6.4 결합 뷰의 예

top