소프트웨어 아키텍처의 개념과 기본 원칙을 담고 있는
소프트웨어 아키텍처 필수 가이드!
소프트웨어는 점점 더 복잡해지고 있으며, 이러한 시스템을 개발하고 운영하는 일은 매우 어렵다. 이 과정에서 소프트웨어 아키텍처는 시스템을 구상하고 구현하며 운영하는 데 중요하고 핵심적인 역할을 한다. 이 책은 소프트웨어 아키텍처가 무엇인지 정의하고, 이를 실제 개발 과정에서 어떻게 활용할 수 있는지 설명한다. 특정 아키텍처 방식만 다루는 것이 아니라, 아키텍처가 제품 개발 과정에서 어떤 역할을 하며, 팀 내 다른 팀과 어떻게 협력해야 하는지도 알려준다. 특히, 시스템이 변화할 때 이를 효과적으로 설계하고 관리하는 방법을 소개하며, 빠르고 좋은 결정을 내리는 것이 프로젝트 성공에 얼마나 중요한지 강조한다. 또한, 개발 과정에서 의사소통과 협업이 왜 중요한지, 그리고 아키텍처 팀을 어떻게 구성하고 운영해야 하는지도 다룬다. 마지막으로, 저자의 경험과 실무적인 조언을 풍부하게 담고 있어 실제 아키텍처 설계와 운영에 매우 유용한 가이드를 제공한다.
1장 소프트웨어 아키텍처
1.1 기본 구조
1.2 시스템
1.3 구성 요소
1.4 구성 요소 간 관계
1.5 환경과의 관계
1.6 설계를 통제하는 원칙
1.7 시스템 진화
1.8 요약
2장 맥락
2.1 콘셉트
2.2 신뢰도
2.3 아키텍처적으로 중요한 요구 사항
2.4 제품 계열
__2.4.1 하나의 제품, 여러 플랫폼
__2.4.2 제품 라인
__2.4.3 제품군
__2.4.4 크로스 플랫폼
2.5 플랫폼 구축
2.6 표준
2.7 요약
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 아무것도 하지 않기
4.7 긴급성과 중요성
4.8 시스템 재문서화
4.9 요약
5장 설계
5.1 아키텍처가 설계 효율을 높이는 방법
5.2 설계가 아키텍처 변화에 미치는 영향
5.3 분해
5.4 조합
5.5 조합과 플랫폼
5.6 점진적 접근
5.7 병렬 처리
5.8 조직 구조
5.9 개방적인 작업
5.10 포기하기
5.11 완료
5.12 요약
6장 의사 결정
6.1 추가 정보는 도움이 되는가?
6.2 그동안 어떤 일이 일어났는가?
6.3 얼마나 많은 의사 결정을 하고 있는가?
6.4 아무것도 하지 않을 경우 비용은 얼마인가?
6.5 변경을 수용할 수 있는가?
6.6 결정을 잘못 내렸을 때 비용은 얼마인가?
6.7 얼마나 더 확신할 수 있는가?
6.8 이 결정은 내 책임인가?
6.9 일관성이 있는가?
6.10 문서화할 수 있는가?
6.11 요약
7장 실무 방식
7.1 백로그
7.2 카탈로그
7.3 템플릿
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 요약
9장 아키텍처 팀
9.1 전문화
9.2 팀 구조
9.3 리더십
9.4 책임
9.5 인재
9.6 다양성
9.7 조직 문화
9.8 모임
9.9 세미나와 서밋
9.10 요약
10장 제품 개발 조직
10.1 개발 방법론에 따른 작업
10.2 제품 관리 팀과 협업
__10.2.1 도와주기
__10.2.2 다양한 결말
__10.2.3 작업 범위의 한계 설정
10.3 UX 팀과 협업
10.4 프로그램 관리 팀과 협업
10.5 엔지니어링 팀과 협업
__10.5.1 끝까지 참여하기
10.6 테스팅 팀과 협업
10.7 운영 팀과 협업
10.8 요약
부록 결론
A.1 비전
A.2 아키텍처 복구
A.3 조직 변화
A.4 변경 프로세스
A.5 맺음말
ㆍ지은이 올리버 골드만
ㆍ옮긴이 최희철
연관 프로그램
독자의견 남기기