헤드 퍼스트 소프트웨어 아키텍처 (소프트웨어 아키텍처 사고를 위한 학습 가이드! | 효과적인 시스템 설계를 위한 사고법)

헤드 퍼스트 소프트웨어 아키텍처 (소프트웨어 아키텍처 사고를 위한 학습 가이드! | 효과적인 시스템 설계를 위한 사고법)

$37.00
Description
소프트웨어 아키텍처의 핵심 원리를 배우는 입문서!
소프트웨어 아키텍처는 단순한 설계 기술이 아니라 시스템의 성공을 좌우하는 핵심 사고 방식이다. 이 책은 건축과 아키텍처의 비유에서 출발해 아키텍처 특성, 의사결정, 컴포넌트, 아키텍처 스타일까지 단계적으로 풀어내며, 복잡한 개념을 독자가 직접 이해하고 적용할 수 있도록 돕는다.
레이어드 아키텍처, 모듈러 모놀리스, 마이크로서비스, 이벤트 기반 아키텍처 등 다양한 스타일을 실제 사례와 함께 비교하며, 각 방식의 장점과 한계를 균형 있게 제시한다. 또한 [난&팝], [트립이지], [고잉 그린] 같은 스토리 기반 프로젝트를 통해 독자가 실제 아키텍트로 참여하듯 학습할 수 있게 구성했다. 단순히 이론을 나열하는 것이 아니라, ‘왜 이런 결정을 내려야 하는가’를 끊임없이 묻고 답하게 함으로써 아키텍처적 사고를 훈련한다.
이 책은 코드를 작성하는 개발자에서 시스템을 설계하는 아키텍트까지, 모든 소프트웨어 엔지니어가 한 단계 성장할 수 있는 지도를 제공한다. 기술을 외우는 책이 아니라, 더 나은 시스템을 만들기 위한 질문과 선택의 과정을 안내하는 책이다.
저자

라주간디외공저

(RajuGandhi)
라주는아키텍트이자컨설턴트,저자,교사로전세계의컨퍼런스에서정기적으로초청받는연사입니다.그는매사를간단하게유지해야한다고믿으며,항상‘어떻게’보다는‘왜’를이해하고설명하는접근방식을취합니다.

목차

Chapter00들어가며|이책을읽는방법

_이책의독자
_이책이이렇게된이유
_이책의구성
_여러분의두뇌를정복하는방법
_일러두기
_테크니컬리뷰어
_감사의글

Chapter01소프트웨어아키텍처쉽게이해하기|시작하기
_건축계획과소프트웨어아키텍처
_소프트웨어아키텍처차원들
_차원들의퍼즐맞추기
_첫번째차원:아키텍처특성
_두번째차원:아키텍처결정
_세번째차원:논리적컴포넌트
_네번째차원:아키텍처스타일
_설계관점
_아키텍처관점
_아키텍처와설계사이
_여러분이내린결정은스펙트럼에서어디에위치하나요?
_전략적vs.전술적
_높은수준vs.낮은수준의노력
_중대한vs.덜중대한트레이드오프
_모두합하기
_해냈습니다!

Chapter02아키텍처특성|네역량을알라
_래프터유발하기
_아키텍처특성은무엇인가요?
_아키텍처특성정의하기
_아키텍처특성은비도메인설계고려사항을명시한다
_아키텍처특성은아키텍처구조에영향을준다
_오버엔지니어링을막기위해아키텍처특성을제한한다
_명시적과암묵적기능을고려하세요
_’~성’의국제동물원
_프로세스아키텍처특성
_구조적아키텍처특성
_운영아키텍처특성
_아키텍처공통특성
_문제도메인에서아키텍처특성찾기
_환경인식을통해아키텍처특성도출하기
_전체적인도메인지식을활용하여아키텍처특성도출하기
_복합아키텍처특성
_우선순위는맥락을따릅니다
_해석에빠지다
_아키텍처특성과논리적컴포넌트
_도메인고려사항과아키텍처특성사이에서균형잡기
_아키텍처특성의개수제한하기

Chapter03소프트웨어아키텍처의두가지법칙|모든것은트레이드오프다
_스니커즈앱으로시작합니다
_지금까지무엇을알았나요?
_하위서비스와통신하기
_트레이드오프분석하기
_트레이드오프분석:큐
_트레이드오프분석:토픽
_소프트웨어아키텍처의제1법칙
_항상트레이드오프로돌아옵니다
_아키텍처결정하기
_아키텍처를결정하는다른요소는무엇인가요?
_소프트웨어아키텍처의제2법칙
_아키텍처결정기록(ADR)
_ADR작성하기:올바른제목선택하기
_ADR작성하기:여러분의상태는?
_ADR작성하기:맥락설정하기
_ADR작성하기:결정전달하기
_ADR작성하기:결과고려하기
_ADR작성하기:거버넌스보장하기
_ADR작성하기:노트로마무리하기
_ADR의이점
_[투매니스니커즈]는성공했다

Chapter04논리적컴포넌트|구성요소
_논리적컴포넌트다시보기
_모험적인경매가온라인으로진행됩니다
_논리적아키텍처vs.물리적아키텍처
_논리적아키텍처만들기
_1단계:초기핵심컴포넌트식별하기
_워크플로우접근법
_액터/액션접근법
_엔티티함정
_2단계:요구사항을컴포넌트에할당하기
_3단계:역할과책임분석하기
_응집력유지하기
_4단계:아키텍처특성분석하기
_입찰수집컴포넌트
_컴포넌트결합
_내부결합
_외부결합
_결합도측정
_강하게결합된시스템
_디미터의법칙적용하기
_균형잡기
_컴포넌트에대한마무리

Chapter05아키텍처스타일|분류와철학
_아키텍처스타일은정말다양합니다
_아키텍처스타일의세계
_기술관점vs.도메인관점
_배포모델:모놀리식vs.분산
_모놀리식배포모델:장점
_모놀리식배포모델:단점
_분산배포모델:장점
_분산배포모델:단점
_이제마무리입니다!

Chapter06레이어드아키텍처|관심사분리하기
_[난&팝]:신생레스토랑요구사항정리하기
_『헤드퍼스트디자인패턴(개정판)』다시읽기
_MVC레이어화
_레이어링하기
_레이어를코드로변환하기
_도메인,컴포넌트와레이어들
_레이어드아키텍처를선택하는이유
_레이어,현실세계를만나다:물리적아키텍처
_물리적아키텍처의트레이드오프
_도메인변경에대한마지막주의사항
_레이어드아키텍처의슈퍼파워
_레이어드아키텍처의크립토나이트
_레이어드아키텍처등급표
_마무리하기

Chapter07모듈러모놀리스|도메인중심으로생각하기
_모듈러모놀리스?
_도메인변경의어려움
_왜모듈러모놀리스인가요?
_코드를보여주세요!
_모듈을모듈러하게
_모듈성을데이터베이스까지확장하기
_조인을주의하기
_모듈러모놀리스의슈퍼파워
_모듈러모놀리스의크립토나이트
_모듈러모놀리스등급표
_[난&팝]에서피자를배달합니다!

Chapter08마이크로커널아키텍처|맞춤형으로제작하기
_[고잉그린]의혜택
_마이크로커널아키텍처의두부분
_‘마이크로커널-성’의스펙트럼
_기기평가서비스코어
_캡슐화된플러그인vs.분산된플러그인
_플러그인통신
_플러그인계약
_[고잉그린]이친환경을실천하다
_마이크로커널의슈퍼파워
_마이크로커널의크립토나이트
_마이크로커널등급표
_마무리하기

Chapter09직접해보기|[트립이지]여행앱
_여행을더쉽게만들기
_[트립이지]사용자워크플로우
_아키텍처계획하기
_아키텍트의로드맵
_1단계:아키텍처특성식별하기
_2단계:논리적컴포넌트식별하기
_3단계:아키텍처스타일선택하기
_4단계:여러분의결정을문서화하기
_5단계:아키텍처다이어그램그리기
_옳은답도틀린답도없습니다

Chapter10마이크로서비스아키텍처|조금씩단계별로
_몸은괜찮으세요?
_마이크로서비스란?
_이건나만의데이터입니다
_마이크로서비스에서‘마이크로’는얼마나작은걸까요?
_세분화분해인자
_왜마이크로서비스를더작게만들어야할까요?
_세분화결합인자
_왜마이크로서비스를더크게만들어야할까요?
_모두균형에관한것입니다
_기능공유하기
_공유서비스로코드재사용하기
_공유라이브러리로코드재사용하기
_워크플로우관리하기
_오케스트레이션:마이크로서비스지휘하기
_코레오그래피:춤을춥시다
_마이크로서비스아키텍처의슈퍼파워
_마이크로서비스아키텍처의크립토나이트
_마이크로서비스등급표
_마무리하기

Chapter11이벤트기반아키텍처|비동기모험
_너무느려요
_속도높이기
_[데어나일]은어느때보다빠르게흐릅니다
_이벤트란무엇인가요?
_이벤트vs.메시지
_시작이벤트와파생이벤트
_누구듣고있나요?
_비동기통신
_파이어앤드포겟
_비동기가최고예요
_동기방식이최고예요
_데이터베이스구성
_모놀리식데이터베이스
_도메인분할데이터베이스
_서비스별데이터베이스
_EDAvs.마이크로서비스
_하이브리드:이벤트기반마이크로서비스
_이벤트기반아키텍처의슈퍼파워
_이벤트기반아키텍처의크립토나이트
_이벤트기반아키텍처등급표
_모두모으기
_마무리하기

Chapter12직접해보기|지식테스트
_메이크더그레이드를환영합니다
_학생시험워크플로우
_아키텍처계획하기
_아키텍처의로드맵
_1단계:아키텍처특성식별하기
_2단계:논리적컴포넌트식별하기
_3단계:아키텍처스타일선택하기
_4단계:여러분의결정을문서화하기
_5단계:아키텍처다이어그램그리기
_옳은답도틀린답도없습니다

부록A:미처다루지못한것들|다루지못한여섯가지주요주제
#1코딩아키텍트
#2아키텍트에대한기대
#3아키텍처의소프트스킬
#4다이어그램기법
#5지식의깊이vs.넓이
#6카타로아키텍처연습하기
카타를수행하는방법

출판사 서평

아키텍처적사고를훈련하는실전가이드
소프트웨어아키텍처는종종추상적이고멀게느껴지지만,실제로는모든시스템개발의토대가됩니다.이책은복잡한개념을단순화해설명하면서도,실무자가반드시알아야할핵심을놓치지않았습니다.
특히건축설계와의비유를통해아키텍처사고방식을쉽게이해할수있도록했고,다양한아키텍처스타일을실제프로젝트스토리와연결해학습자가몰입할수있는구조로풀어냈습니다.아키텍처특성정의,트레이드오프분석,아키텍처결정기록(ADR)등실무에서당장활용할수있는방법론을체계적으로다루는점은이책의큰강점입니다.
이책은초보개발자에게는아키텍처의큰그림을그릴수있는나침반이되고,경험많은엔지니어에게는자신의의사결정과정을점검하고확장할수있는참고서가될것입니다.