본문 바로가기
Review

[도서 리뷰] 소프트웨어 아키텍처 101

by newnu 2022. 3. 31.
반응형

 

Fundamentals of Software Architecture

소프트웨어 아키텍처 101

 

엔지니어링 접근 방식으로 배우는 소프트웨어 아키텍처 기초

 

저자 : 마크 리처즈, 닐 포드

 


CHAPTER 1 서론

_1.1 소프트웨어 아키텍처란?

_1.2 아키텍트에 대한 기대치

_1.3 아키텍처의 교차점 그리고...

_1.4 소프트웨어 아키텍처 법칙

 

 

[PART I 기초]

 

CHAPTER 2 아키텍처 사고

_2.1 아키텍처 대 설계

_2.2 기술 폭

_2.3 트레이드오프 분석

_2.4 비즈니스 동인의 이해

_2.5 아키텍처와 코딩 실무 간 균형 맞추기

 

CHAPTER 3 모듈성

_3.1 정의

_3.2 모듈성 측정

_3.3 모듈에서 컴포넌트로

 

CHAPTER 4 아키텍처 특성 정의

_4.1 아키텍처 특성 (일부) 목록

_4.2 트레이드오프 및 나쁜 것 중에서 제일 나은 아키텍처

 

CHAPTER 5 아키텍처 특성 식별

_5.1 도메인 관심사에서 아키텍처 특성 도출

_5.2 요구사항에서 아키텍처 특성 도출

_5.3 사례 연구: 실리콘 샌드위치

 

CHAPTER 6 아키텍처 특성의 측정 및 거버넌스

_6.1 아키텍처 특성 측정

_6.2 거버넌스와 피트니스 함수

 

CHAPTER 7 아키텍처 특성 범위

_7.1 커플링과 커네이선스

_7.2 아키텍처 퀀텀과 세분도

 

CHAPTER 8 컴포넌트 기반 사고

_8.1 컴포넌트 범위

_8.2 아키텍트 역할

_8.3 개발자 역할

_8.4 컴포넌트 식별 흐름

_8.5 컴포넌트 세분도

_8.6 컴포넌트 설계

_8.7 컴포넌트 발굴 사례 연구: GGG

_8.8 아키텍처 퀀텀 딜레마: 모놀리식이냐, 분산 아키텍처냐

 

 

[PART II 아키텍처 스타일]

 

CHAPTER 9 기초

_9.1 기초 패턴

_9.2 모놀리식 대 분산 아키텍처

 

CHAPTER 10 레이어드 아키텍처 스타일

_10.1 토폴로지

_10.2 레이어 격리

_10.3 레이어 추가

_10.4 기타 고려 사항

_10.5 왜 이 아키텍처 스타일을 사용하는가

_10.6 아키텍처 특성 등급

 

CHAPTER 11 파이프라인 아키텍처 스타일

_11.1 토폴로지

_11.2 예제

_11.3 아키텍처 특성 등급

 

CHAPTER 12 마이크로커널 아키텍처 스타일

_12.1 토폴로지

_12.2 레지스트리

_12.3 계약

_12.4 실제 용례

_12.5 아키텍처 특성 등급

 

CHAPTER 13 서비스 기반 아키텍처 스타일

_13.1 토폴로지

_13.2 토폴로지 변형

_13.3 서비스 설계 및 세분도

_13.4 데이터베이스 분할

_13.5 아키텍처 예시

_13.6 아키텍처 특성 등급

_13.7 언제 이 아키텍처 스타일을 사용하는가

 

CHAPTER 14 이벤트 기반 아키텍처 스타일

_14.1 토폴로지

_14.2 브로커 토폴로지

_14.3 중재자 토폴로지

_14.4 비동기 통신

_14.5 에러 처리

_14.6 데이터 소실 방지

_14.7 브로드캐스팅

_14.8 요청-응답

_14.9 요청 기반이냐, 이벤트 기반이냐

_14.10 하이브리드 이벤트 기반 아키텍처

_14.11 아키텍처 특성 등급

 

CHAPTER 15 공간 기반 아키텍처 스타일

_15.1 토폴로지

_15.2 데이터 충돌

_15.3 클라우드 대 온프레미스 구현

_15.4 복제 캐시 대 분산 캐시

_15.5 니어 캐시

_15.6 구현 예시

_15.7 아키텍처 특성 등급

 

CHAPTER 16 오케스트레이션 기반 서비스 지향 아키텍처 스타일

_16.1 역사와 철학

_16.2 토폴로지

_16.3 택소노미

_16.4 재사용… 그리고 커플링

_16.5 아키텍처 특성 등급

 

CHAPTER 17 마이크로서비스 아키텍처 스타일

_17.1 역사

_17.2 토폴로지

_17.3 분산

_17.4 경계 콘텍스트

_17.5 API 레이어

_17.6 운영 재사용

_17.7 프런트엔드

_17.8 통신

_17.9 아키텍처 특성 등급

_17.10 더 읽을거리

 

CHAPTER 18 최적의 아키텍처 스타일 선정

_18.1 아키텍처 ‘유행’은 계속 변한다

_18.2 결정 기준

_18.3 모놀리스 사례 연구: 실리콘 샌드위치

_18.4 분산 아키텍처 사례 연구: GGG

 

 

[PART III 테크닉과 소프트 스킬]

 

CHAPTER 19 아키텍처 결정

_19.1 아키텍처 결정 안티패턴

_19.2 아키텍처적으로 중요한

_19.3 아키텍처 결정 레코드

 

CHAPTER 20 아키텍처 리스크 분석

_20.1 리스크 매트릭스

_20.2 리스크 평가

_20.3 리스크 스토밍

_20.4 애자일 스토리 리스크 분석

_20.5 리스크 스토밍 예시

 

CHAPTER 21 아키텍처 도식화 및 프레젠테이션

_21.1 도식화

_21.2 프레젠테이션

 

CHAPTER 22 개발팀을 효율적으로

_22.1 팀 경계

_22.2 아키텍트 성향

_22.3 얼마나 제어해야 하나?

_22.4 팀의 이상 징후

_22.5 체크리스트 활용

_22.6 지침 제시

_22.7 마치며

 

CHAPTER 23 협상과 리더십 스킬

_23.1 협상과 조정

_23.2 소프트웨어 아키텍트는 리더다

_23.3 개발팀과의 융합

_23.4 마치며

 

CHAPTER 24 커리어패스 개발

_24.1 20분 규칙

_24.2 개인 레이더 개발

_24.3 소셜 미디어 활용

_24.4 종언

 

Appendix A 자율 평가 문제


REVIEW

이 책은 크게 기초, 아키텍처 스타일, 테크닉과 소프트스킬의 세부분으로 나뉜다. 

 

1. 기초 

시스템 아키텍처는 '아키텍처 특성', '아키텍처 결정', '설계 원칙', '구조' 로 구성된다. 

 

구조 : 시스템이 구현된 아키텍처 스타일의 종류 (마이크로서비스, 레이어드, 마이크로 커널 등)

아키텍처 특성 : 시스템의 성공 조건 (시스템이 올바르게 동작하기 위해서 반드시 필요한 것들)

아키텍처 결정 : 시스템의 제약조건 (시스템 구축에 필요한 규칙들)

설계 원칙 : 가이드라인 (권장하는 방법에 관한 가이드)

 

신입 아키텍트 또는 개발자에서 아키텍트로 커리어를 전환하려고 하는 사람들을 위해   

위와 같이 소프트웨어 아키텍처가 무엇인지, 아키텍처 사고 등 기본과 용어, 개발자와 아키텍트의 차이를 설명하고 있다. 

아키텍처를 구성하고 있는 항목들을 하나하나 쉽게 설명해서 아키텍처 지식이 별로 없는 상태에서도 이해할 수 있었다.

 

2. 아키텍처 스타일

레이어드, 파이프라인, 마이크로 커널, 서비스 기반, 이벤트 기반, 공간 기반, 오케스트레이션 기반, 마이크로 서비스의 8가지 아키텍처 스타일들을 각각 왜, 언제 이 아키텍처를 사용해야 하는지, 아키텍처 스타일의 토폴로지를 그림을 통해서 설명한다.

또한 마지막 챕터에서는 적합한 아키텍처 스타일을 선택하긱 위한 몇가지 기준들과 사례를 보여준다.

 

3. 테크닉과 소프트스킬

아키텍트 결정 문서화, 아키텍트 리스크 분석, 리스크 스토밍, 도식화와 같이

아키텍처 결정 후 소통을 효율적으로 할 수 있도록 기록과 분석을 단계별 중요한 포인트들을 중심으로 설명하고 있다. 

효율적으로 개발팀을 이끌어 가기 위한 테크닉, 협상과 리더십 스킬, 커리어패스 개발등 실제 업무를 하면서 필요한 소프트 스킬을 담고 있다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형