책 소개
요약
소프트웨어 아키텍트뿐만 아니라 소프트웨어 아키텍처 관련 이해관계자 모두 읽어야 할 책이다. 90년대 후반 초판이 나온 이후 25년이 지난 현재 4판이 나올 정도로 소프트웨어 아키텍처 분야의 교과서와 같은 책이다. 4판에서는 클라우드, 모빌리티, 에너지 효율성 등 최신 소프트웨어 기술에 관한 내용이 추가됐다.
이 책에서 다루는 내용
◆ 아키텍처가 기술적 환경, 프로젝트 생애주기, 비즈니스 프로필, 자신만의 실천법에 어떤 식으로 영향을 미치고, 이들로부터 어떤 식으로 영향을 받는지 알아본다.
◆ 아키텍처를 통해 품질을 최적화하기 위해 검증된 패턴, 인터페이스, 실천법을 활용한다.
◆ 모빌리티, 클라우드, 머신러닝, 양자 컴퓨팅을 위한 아키텍처를 설계한다.
◆ 점점 더 중요해지는 에너지 효율성과 안전 같은 품질 속성을 위한 설계 방법을 알아본다.
◆ 아키텍처 관점에서 중요한 영향들을 파악하고 데브옵스와 배포 파이프라인을 활용하고 아키텍처 부채를 관리함으로써 시스템을 확장한다.
◆ 더 많은 가치를 전달하기 위해 조직에서의 아키텍처 역할을 이해한다.
목차
목차
- 1부. 소개
- 1장. 소프트웨어 아키텍처 정의
- 1.1 소프트웨어 아키텍처의 올바른 정의와 오해
- 1.2 아키텍처 구조와 뷰
- 1.3 무엇이 좋은 아키텍처를 만드는가?
- 1.4 요약
- 1.5 참고 문헌
- 1.6 토론 질문
- 2장. 소프트웨어 아키텍처가 중요한 이유
- 2.1 시스템의 품질 속성 억제 또는 보장
- 2.2 변경 사항 추론 및 관리
- 2.3 시스템 품질 예측
- 2.4 이해관계자 간의 의사소통
- 2.5 초기 설계 결정
- 2.6 구현에 대한 제약
- 2.7 조직 구조에 대한 영향
- 2.8 점증적 개발 가능
- 2.9 비용 및 일정 추정
- 2.10 이전 가능한 재사용 모델
- 2.11 독립적으로 개발된 요소들의 통합
- 2.12 설계 선택 사항 제한
- 2.13 훈련 기반
- 2.14 요약
- 2.15 참고 문헌
- 2.16 토론 질문
- 2부. 품질 속성
- 3장. 품질 속성 이해하기
- 3.1 기능성
- 3.2 품질 속성 고려 사항
- 3.3 품질 속성 요구 사항 명세: 품질 속성 시나리오
- 3.4 아키텍처 패턴과 전술을 통한 품질 속성 달성
- 3.5 전술을 활용한 설계
- 3.6 품질 속성 설계 결정 분석: 전술 기반 질문지
- 3.7 요약
- 3.8 참고 문헌
- 3.9 토론 질문
- 4장. 가용성
- 4.1 가용성 일반 시나리오
- 4.2 가용성 전술
- 4.3 가용성 전술 기반 질문지
- 4.4 가용성 패턴
- 4.5 참고 문헌
- 4.6 토론 질문
- 5장. 배포 용이성
- 5.1 지속적인 배포
- 5.2 배포 용이성
- 5.3 배포 용이성 일반 시나리오
- 5.4 배포 용이성 전술
- 5.5 배포 용이성 전술 기반 질문지
- 5.6 배포 용이성 패턴
- 5.7 참고 문헌
- 5.8 토론 질문
- 6장. 에너지 효율성
- 6.1 에너지 효율성 일반 시나리오
- 6.2 에너지 효율성 전술
- 6.3 에너지 효율성 전술 기반 질문지
- 6.4 패턴
- 6.5 참고 문헌
- 6.6 토론 질문
- 7장. 통합 용이성
- 7.1 아키텍처의 통합 용이성 평가
- 7.2 통합 용이성 일반 시나리오
- 7.3 통합 용이성 전술
- 7.4 통합 용이성 전술 기반 질문지
- 7.5 패턴
- 7.6 참고 문헌
- 7.7 토론 질문
- 8장. 변경 용이성
- 8.1 변경 용이성 일반 시나리오
- 8.2 변경 용이성 전술
- 8.3 변경 용이성 전술 기반 질문지
- 8.4 패턴
- 8.5 참고 문헌
- 8.6 토론 질문
- 9장. 성능
- 9.1 성능 일반 시나리오
- 9.2 성능 전술
- 9.3 성능 전술 기반 질문지
- 9.4 성능 패턴
- 9.5 참고 문헌
- 9.6 토론 질문
- 10장. 안전성
- 10.1 안전성 일반 시나리오
- 10.2 안전성 전술
- 10.3 안전성 전술 기반 질문지
- 10.4 안전성 패턴
- 10.5 참고 문헌
- 10.6 토론 질문
- 11장. 보안
- 11.1 보안 일반 시나리오
- 11.2 보안 전술
- 11.3 보안 전술 기반 질문지
- 11.4 보안 패턴
- 11.5 참고 문헌
- 11.6 토론 질문
- 12장. 테스트 용이성
- 12.1 테스트 용이성 일반 시나리오
- 12.2 테스트 용이성 전술
- 12.3 테스트 용이성 전술 기반 질문지
- 12.4 테스트 용이성 패턴
- 12.5 참고 문헌
- 12.6 토론 질문
- 13장. 사용성
- 13.1 사용성 일반 시나리오
- 13.2 사용성 전술
- 13.3 사용성 전술 기반 질문지
- 13.4 사용성 패턴
- 13.5 참고 문헌
- 13.6 토론 질문
- 14장. 기타 품질 속성
- 14.1 기타 품질 속성 종류
- 14.2 품질 속성 표준 리스트 사용 여부
- 14.3 새로운 품질 속성을 다루는 방법
- 14.4 참고 문헌
- 14.5 토론 질문
- 3부. 아키텍처 해결책
- 15장. 소프트웨어 인터페이스
- 15.1 인터페이스 개념
- 15.2 인터페이스 설계
- 15.3 인터페이스 문서화
- 15.4 요약
- 15.5 참고 문헌
- 15.6 토론 질문
- 16장. 가상화
- 16.1 공유 리소스
- 16.2 가상 머신
- 16.3 가상 머신 이미지
- 16.4 컨테이너
- 16.5 컨테이너와 가상 머신
- 16.6 컨테이너 이식성
- 16.7 팟
- 16.8 서버리스 아키텍처
- 16.9 요약
- 16.10 참고 문헌
- 16.11 토론 질문
- 17장. 클라우드 및 분산 컴퓨팅
- 17.1 클라우드 기본 지식
- 17.2 클라우드에서의 고장
- 17.3 성능과 가용성을 향상시키기 위한 다중 인스턴스 사용
- 17.4 요약
- 17.5 참고 문헌
- 17.6 토론 질문
- 18장. 모바일 시스템
- 18.1 에너지
- 18.2 네트워크 연결성
- 18.3 센서와 액추에이터
- 18.4 리소스
- 18.5 생애주기
- 18.6 요약
- 18.7 참고 문헌
- 18.8 토론 질문
- 4부. 확장 가능한 아키텍처 실천법
- 19장. 아키텍처 관점에서 중요한 요구 사항들
- 19.1 요구 사항 문서로부터 ASR 수집
- 19.2 이해관계자 인터뷰를 통한 ASR 수집
- 19.3 비즈니스 목표 이해를 통한 ASR 수집
- 19.4 유틸리티 트리와 ASR
- 19.5 언제나 발생하는 변경
- 19.6 요약
- 19.7 참고 문헌
- 19.8 토론 질문
- 20장. 아키텍처 설계
- 20.1 속성 중심 설계
- 20.2 속성 중심 설계의 구성 단계
- 20.3 단계 4: 설계 개념 선택에 관한 추가 내용
- 20.4 단계 5: 구조 생성에 관한 추가 내용
- 20.5 단계 6: 설계 중에 예비 문서 생성에 관한 추가 내용
- 20.6 단계 7: 현재 설계에 대한 분석 수행과 반복 목표 및 설계 목적 달성 리뷰에 대한 추가 내용
- 20.7 요약
- 20.8 참고 문헌
- 20.9 토론 질문
- 21장. 아키텍처 평가
- 21.1 위험 감소를 위한 평가
- 21.2 무엇이 핵심 평가 활동인가?
- 21.3 평가 주체
- 21.4 상황적 요인들
- 21.5 아키텍처 절충점 분석 방법
- 21.6 경량 아키텍처 평가
- 21.7 요약
- 21.8 참고 문헌
- 21.9 토론 질문
- 22장. 아키텍처 문서
- 22.1 아키텍처 문서의 사용 용도와 청중
- 22.2 표기법
- 22.3 뷰
- 22.4 뷰 결합
- 22.5 행동 문서화
- 22.6 뷰 외의 항목들
- 22.7 근거 문서화
- 22.8 아키텍처 이해관계자들
- 22.9 실질적인 고려 사항
- 22.10 요약
- 22.11 참고 문헌
- 22.12 토론 질문
- 23장. 아키텍처 부채 관리
- 23.1 아키텍처 부채 문제가 있는지 여부 결정
- 23.2 핫스팟 발견
- 23.3 아키텍처 부채 사례
- 23.4 자동화
- 23.5 요약
- 23.6 참고 문헌
- 23.7 토론 질문
- 5장. 아키텍처와 조직
- 24장. 프로젝트에서 아키텍트의 역할
- 24.1 아키텍트와 프로젝트 관리자
- 24.2 점증적인 아키텍처와 이해관계자들
- 24.3 아키텍처와 애자일 개발
- 24.4 아키텍처와 분산 개발
- 24.5 요약
- 24.6 참고 문헌
- 24.7 토론 질문
- 25장. 아키텍처 역량
- 25.1 개인 역량: 아키텍트의 업무와 기술, 지식
- 25.2 소프트웨어 아키텍처 조직의 역량
- 25.3 더 나은 아키텍트 되기
- 25.4 요약
- 25.5 참고 문헌
- 25.6 토론 질문
- 6부. 결론
- 26장. 미래 예측: 양자 컴퓨팅
- 26.1 큐비트
- 26.2 양자 순간 이동
- 26.3 양자 컴퓨팅과 암호화
- 26.4 기타 알고리즘
- 26.5 잠재적인 적용 분야
- 26.6 결론
도서 오류 신고
정오표
정오표
[ p.81 : 1행 ]
산출물이
->
대상물이
[ p.81 : 3행 ]
정산 운영
->
정상 운영
[ p.115 : 7행 ]
변경 용이성
->
배포 용이성
[ p.194 : 2행 ]
도작하는
->
도착하는
[ p.200 : 8행 ]
캐싱(aching)
->
캐싱(caching)