Top

소프트웨어 아키텍처 설계 [애자일이 적용된 ADD 3.0 아키텍처 설계 프로세스 및 통신, 금융, 빅데이터 도메인 적용 사례]

  • 원서명Designing Software Architectures: A Practical Approach (ISBN 9780134390789)
  • 지은이움베르토 세르반테스(Humberto Cervantes), 릭 카즈만(Rick Kazman)
  • 옮긴이전병선 (IT 아키텍트/컨설턴트)
  • ISBN : 9788960779822
  • 30,000원
  • 2017년 02월 24일 펴냄
  • 페이퍼백 | 312쪽 | 188*250mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

요약

소프트웨어 아키텍처 이론과 실제 3판의 ADD 방법론의 3.0 버전을 제시한다. 애자일 프로젝트에서 활용할 수 있는 아키텍처 설계 프로세스 및 참조 아키텍처와 아키텍처 패턴, 디자인 패턴, 애플리케이션 프레임워크를 활용할 수 있는 아키텍처 설계 프로세스를 제시한다. 또한 통신, 금융, 빅데이터 등 핵심 도메인에서의 적용 사례를 제시한다.

이 책에서 다루는 내용

■ 아키텍처 설계가 포함하고 있는 것과 전체 소프트웨어 개발 라이프사이클에서 아키텍처 설계에 적합한 부분 이해
■ 핵심 설계 개념과 원칙, 프로세스 마스터
■ ADD 방법론 단계를 수행하는 방법 이해
■ 사전 영업 프로세스, 경량 아키텍처 검토를 위한 설계를 포함한 설계와 분석 확장
■ 분석과 설계 사이의 중요한 관계 인식 및 최적화
■ 재사용할 수 있는 증명된 설계 근원을 활용하고, 특정한 문제와 컨텍스트 적용
■ 클라우드나 모바일, 빅데이터 같은 새로운 도메인에서 설계 문제 해결

이 책의 대상 독자

이 책의 대상 독자는 소프트웨어 아키텍처 설계에 관심 있는 모든 사람들이다. 특히 설계 작업을 수행해야 하지만, 현재 임시 방편으로 수행하고 있는 실무자들에게 유용할 것이라고 생각한다. 이미 수립된 방법론을 다뤄본 경험이 있는 실무자도 몇 가지 아이디어를 찾을 수 있을 것이다. 예를 들어 칸반 보드를 사용하여 설계 진행 상황을 추적하는 것이라든지, 전술 기반 설문서를 사용하여 설계를 분석하는 방법, 초기 산정을 위해 설계 방법론을 사용하는 방법 등이다.

이 책의 구성

1장, ‘개요’에서는 소프트웨어 아키텍처와 속성 주도 방법의 개요를 간단히 설명한다.
2장, ‘아키텍처 설계’에서는 설계 프로세스의 주요(우리가 아키텍처 요인이라고 부르는 것)와 증명된 솔루션을 사용해 이들 요인을 충족시킬 수 있도록 하는 설계 개념과 함께, 아키텍처 설계를 좀 더 자세하게 논의한다.
3장, ‘아키텍처 설계 프로세스’에서는 ADD 방법론을 자세하게 제시한다. 각 방법론 단계와 함께 단계를 적절하게 수행하는 데 사용할 수 있는 다양한 기법을 논의한다.
4장, ‘사례 연구: FCAPS 시스템’에서는 첫 번째 사례 연구로서, 신규 개발 시스템의 개발을 예로 든다. 이 사례 연구에서 3장에 설명한 주요 개념을 설계 프로세스에 사용하는 방법을 보여주기 위해 노력했으며, 이 사례 연구가 본질상 좀 더 “학문적”이라고 생각한다(그렇다고 하더라도 실제 시스템에서 도출했다).
5장, ‘사례 연구: 빅데이터 시스템’에서는 두 번째 사례 연구를 제시한다. 이 사례 연구는 현업 소프트웨어 아키텍트와 함께 작성되었으며, 마찬가지로 본질적으로 좀 더 기술적이고 상세하다. ADD가 많은 기술을 포함하는 빅데이터 시스템 설계에서 사용되는 방법에 관한 핵심 세부 사항을 보여줄 것이다. 이 사례는 우리가 ’특수한’ 도메인으로 간주하는 시스템 개발의 예시를 보여주며, 4장에서 사용된 전통적인 도메인과는 반대된다.
6장, ‘사례 연구: 뱅킹 시스템’에서는 일반적인 레거시(또는 기존) 시스템의 확장 설계에서 ADD의 사용 예를 보여주는 짧은 사례 연구다. 이 예는 아키텍처 설계가 시스템의 첫 번째 버전이 개발될 때 한번만 수행되는 것이 아니라, 개발 프로세스의 다른 순간에도 수행될 수 있는 활동이라는 것을 보여준다.
7장, ‘다른 설계 방법론’에서는 다른 설계 방법론을 제시한다. 우리의 ADD 개정에서 설계 프로세스를 연구했던 다른 저자의 개념을 채택했으며, 여기에서 이들 작업에 대한 경의의 표시로서, 그리고 이들 방법론과 ADD를 비교하기 위해 이들의 접근 방법을 요약했다.
8장, ‘설계 프로세스에서의 분석’에서는 분석을 깊이 있게 논의한다. 이 책의 주제가 설계일지라도, 분석은 설계의 일부로서 자연스럽게 수행되기 때문에 설계 프로세스 동안 또는 설계의 일부가 완료된 후에 사용될 수 있는 기법을 설명했다. 특히, 설계 프로세스에서 내린 결정을 시간 효율적이며 단순한 방식으로 이해할 수 있게 하기 위해 전술 기반 설문서의 사용을 도입했다.
9장, ‘조직에서의 아키텍처 설계 프로세스’에서는 조직 수준에서 설계 프로세스를 적합하게 하는 방법을 설명한다. 예를 들어, 프로젝트 초기에 아키텍처 설계의 일부분을 수행하는 것이 산정 목적에 유용하다. 또한, 다른 소프트웨어 개발 접근 방법과 ADD가 어떻게 연관될 수 있는지를 보여준다.
10장, ‘마무리’에서는 이 책의 결론을 제시한다.

저자/역자 소개

지은이의 말

이 책에서는 체계적이고 예측할 수 있으며 반복적이고, 비용효율적으로 소프트웨어 아키텍처를 설계하는 방법을 설명할 것이다.
이 책은 어떤 전문적인 소프트웨어 엔지니어도 사용할 수 있는 실무적인 아키텍처 설계 방법론을 소개하고, 설계 지식을 재사용할 수 있는 조각을 지원하는 구조적인 방법론을 제공하며, 이 방법론을 사용하는 방법을 보여주는 풍부한 사례를 포함한다.
실제 예를 사용하여 증명된 속성 주도 설계(ADD) 방법론의 강력하고 새로운 3.0 버전을 마스터하게 될 것이며, 이것을 사용하여 변경 용이성, 사용 편의성, 가용성과 같은 품질 속성을 포함하는 핵심 요인과 함께 기능 요구와 아키텍처 관심사를 해결하는 방법을 배우게 될 것이다.

지은이 소개

움베르토 세르반테스(Humberto Cervantes)

멕시코 시티에 있는 이스타팔라파 수도권 자치 대학(Universidad Autonoma Metropolitana Iztapalapa)의 교수다. 주요 연구 분야는 소프트웨어 아키텍처, 특별한 사례 프로세스를 도와주는 방법론과 도구 개발이다.
소프트웨어 분야에서 이들 방법론과 도구의 채택을 촉진시키는 데 적극적으로 활동하고 있다. 2006년 이후 소프트웨어 아키텍처와 관련된 주제로 소프트웨어 개발 회사의 컨설턴트로 일했다. 여러 연구 논문과 유명한 기사를 썼으며, 소프트웨어 아키텍처에 관한 스페인어로 쓴 몇 권의 책을 공동 집필했다.
프랑스 그르노블(Grenoble)에 있는 조셉 푸리에 대학(Universite Joseph Fourier)에서 석사와 박사 학위를 취득했고, SEI로부터 Software Architecture Professional 및 ATAM Evaluator 인증서를 받았다.
가족, 친구와 함께 시간을 보내고 운동과 여행을 좋아한다.

릭 카즈만(Rick Kazman)

하와이 대학교(University of Hawaii)의 교수이고, 카네기 멜론(Carnegie Mellon) 대학의 소프트웨어 엔지니어링 연구소(Software Engineering Institute) 연구원이다. 연구 분야는 소프트웨어 아키텍처, 설계 및 분석 도구, 소프트웨어 시각화, 소프트웨어 엔지니어링 경제학이다. SAAMSoftware Architecture Analysis Method, ATAMArchitecture Tradeoff Analysis Method, CBAMCost-Benefit Analysis Method과 Dali와 Titan 도구를 포함한 여러 영향력 있는 아키텍처 분석 방법론과 도구를 생성했다.
워털루 대학교(University of Waterloo)에서 문학사(영문학/음악학)와 컴퓨터 과학 학사를, 요크(York) 대학에서 문학 석사(영문학), 그리고 카네기 멜론 대학에서 컴퓨터 언어학 박사 학위를 취득했다. 그가 소프트웨어 엔지니어링 연구원이 될 줄은 아무도 몰랐다. 아키텍팅이나 아키텍처에 관한 책을 쓸 때가 아니면 사이클을 타고, 피아노를 연주하며, 태권도와 주짓수를 하거나 하와이와 피츠버그 사이를 날아다닌다.

옮긴이의 말

30년 가까운 소프트웨어 개발 경험 속에서 갖고 있는 하나의 신념은 ‘아키텍처가 튼튼한 시스템이 결국엔 성공한다’는 것이다. 아키텍처가 튼튼한 시스템은 결합성이 적고 응집력이 강한 시스템이다. 아키텍처가 튼튼하게 설계된 시스템을 구현하면 결코 실패하지 않으며, 적어도 문제를 최소화할 수 있다. 또한 업무 로직이 변경되는 경우라도 쉽게 대응할 수 있어 생명력이 긴 소프트웨어 시스템을 만들어낼 수 있다. 이러한 신념은 이 책의 2판을 읽고 나서 더욱 커졌다. 그 이후로 내가 집필한 『CBD, What & How』(와우북스, 2008)와 『SOA, What & How』(와우북스, 2008)에서 각각 제시한 CBD와 SOA 방법론은 모두 튼튼한 아키텍처 설계를 강조하고 있다.
이 책은 2판에 비해 더 체계적인 내용을 담고 있다. 핵심 개념인 품질 속성에 대해 좀 더 상세하게 설명하고 있으며, 소프트웨어 개발 라이프사이클에서 아키텍처의 역할과 해야 할 일에 대해 단계적으로 설명한다. 특히 애자일 접근 방법에서 아키텍처의 역할을 설명한 장은 애자일 방식을 따르는 사람들이 반드시 이해해야 할 좋은 내용을 담고 있다.
개발자들을 위해 이 책을 해설하는 가칭 『개발자를 위한 소프트웨어 아키텍처 해설』을 집필하고 있던 중에 출판사로부터 이 책의 번역을 의뢰 받았다. 이 책의 번역본이 빨리 출간되었으면 하는 바람을 갖고 있던 터라 흔쾌히 수락하고 번역에 착수했다. 이 책의 번역이 어쩌면 내 인생에서 가장 힘들고 보람된 작업이 아니었나 싶다. 이미 이 책을 읽으면서 정리해둔 것이 있어서 가능한 일이긴 했지만, 그래도 평균적으로 하루 20쪽 이상을 번역하는 작업은 그렇게 녹록한 일이 아니었다. 하지만 덕분에 이 책을 처음부터 끝까지 빠짐없이 읽을 수 있었기에 더할 나위 없이 보람된 작업이었다.
이미 여러 책을 집필하고 번역했기 때문에 책을 쓰고 번역하는 일이 낯설지 않았지만, 그래도 이 책을 번역하면서 어려움이 많았다. 사실 이 책이 소프트웨어 엔지니어링을 공부하는 사람들에게는 교과서와 같은 책이어서, 실무뿐만 아니라 학문적으로도 손색이 없도록 번역해야 한다는 부담감이 있었다. 그럼에도 불구하고 이 책의 번역이 실무자를 향해 있음은 부인할 수 없다. 이 책의 번역 용어는 가능한 한 실무를 반영해 선택했으며, 옮긴이 주석은 이 책을 읽는 데 이해하기 쉽도록 도움을 주는 정도로만 한정했다. 실무 개발자들에게 좀 더 쉬운 해설을 제공하기 위해 향후 『개발자를 위한 소프트웨어 아키텍처 해설』 책을 집필할 계획이다.

옮긴이 소개

전병선 (IT 아키텍트/컨설턴트)

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

목차

목차
  • 1장. 개요
    • 1.1 동기
    • 1.2 소프트웨어 아키텍처
    • 1.3 아키텍트 역할
    • 1.4 간략한 ADD 역사
    • 1.5 요약
    • 1.6 더 읽을거리

  • 2장. 아키텍처 설계
    • 2.1 설계 일반
    • 2.2 소프트웨어 아키텍처에서의 설계
    • 2.3 왜 아키텍처 설계가 중요한가?
    • 2.4 아키텍처 요인
    • 2.5 설계 개념: 구조 생성을 위한 빌딩 블록
    • 2.6 아키텍처 설계 결정
    • 2.7 요약
    • 2.8 더 읽을거리

  • 3장. 아키텍처 설계 프로세스
    • 3.1 원칙적인 방법론의 필요성
    • 3.2 속성 주도 설계 3.0
    • 3.3 시스템 유형에 따른 설계 로드맵
    • 3.4 설계 개념 식별과 선택
    • 3.5 구조 생성
    • 3.6 인터페이스 정의
    • 3.7 설계 동안 예비 문서화 생성
    • 3.8 설계 진행 추적
    • 3.9 요약
    • 3.10 더 읽을거리

  • 4장. 사례 연구: FCAPS 시스템
    • 4.1 비즈니스 케이스
    • 4.2 시스템 요구
    • 4.3 설계 프로세스
    • 4.4 요약
    • 4.5 더 읽을거리

  • 5장. 사례 연구: 빅데이터 시스템
    • 5.1 비즈니스 케이스
    • 5.2 시스템 요구
    • 5.3 설계 프로세스
    • 5.4 요약
    • 5.5 더 읽을거리

  • 6장. 사례 연구: 뱅킹 시스템
    • 6.1 비즈니스 케이스
    • 6.2 기존 아키텍처 문서
    • 6.3 설계 프로세스
    • 6.4 요약
    • 6.5 더 읽을거리

  • 7장. 다른 설계 방법론
    • 7.1 소프트웨어 아키텍처 설계 일반 모델
    • 7.2 아키텍처 중심적 설계 방법론
    • 7.3 RUP 아키텍처 활동
    • 7.4 소프트웨어 아키텍팅 프로세스
    • 7.5 아키텍처와 설계 기법
    • 7.6 시점과 관점 방법론
    • 7.7 요약
    • 7.8 더 읽을거리

  • 8장. 설계 프로세스에서의 분석
    • 8.1 분석과 설계
    • 8.2 왜 분석하는가?
    • 8.3 분석 기법
    • 8.4 전술 기반 분석
    • 8.5 투영 질문
    • 8.6 시나리오 기반 설계 검토
    • 8.7 아키텍처 서술 언어
    • 8.8 요약
    • 8.9 더 읽을거리

  • 9장. 조직에서의 아키텍처 설계 프로세스
    • 9.1 아키텍처 설계와 개발 라이프사이클
    • 9.2 조직 관점
    • 9.3 요약
    • 9.4 더 읽을거리

  • 10장. 마무리
    • 10.1 방법론의 필요성에 대하여
    • 10.2 다음 단계
    • 10.3 더 읽을거리

  • 부록 A. 설계 개념 카탈로그
    • A.1 참조 아키텍처
    • A.2 배포 패턴
    • A.3 아키텍처 설계 패턴
    • A.4 전술
    • A.5 외부에서 개발된 컴포넌트
    • A.6 요약
    • A.7 더 읽을거리

  • 부록 B. 전술 기반 설문서
    • B.1 설문서 사용
    • B.2 가용성
    • B.3 상호운영성
    • B.4 변경용이성
    • B.5 성능
    • B.6 보안
    • B.7 테스트 용이성
    • B.8 사용편의성
    • B.9 데브옵스
    • B.10 더 읽을거리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안