Home 소프트웨어 아키텍처 101 - 책 소개
Post
Cancel

소프트웨어 아키텍처 101 - 책 소개

표지

cover

책 소개

막막했던 아키텍처가 쉬워지는 실무 지침서

소프트웨어 아키텍트는 전 세계 연봉 10위 안에 드는 직업이지만, 지금까지 ‘개발자가 아키텍트’로 전향하는 데 실질적으로 도움이 될 만한 지침이 없었다. 이 책은 소프트웨어 아키텍처의 다양한 부분을 포괄적으로 개괄한다. 장차 아키텍트가 될 사람과 현직 아키텍트 모두 이 책을 통해 아키텍처 특성, 아키텍처 패턴, 컴포넌트 결정, 아키텍처 도식화 및 프레젠테이션, 진화적 아키텍처 등 다양한 주제를 살펴볼 수 있다.

마크 리처즈와 닐 포드는 수년간 전문적으로 소프트웨어 아키텍처를 강의한 잔뼈가 굵은 실무자로서 이 책에 모든 기술 스택에 고루 적용되는 아키텍처 원칙을 담았다. 이 책으로 지난 10년 동안 이룩한 모든 혁신과 현대적인 관점에서 바라본 소프트웨어 아키텍처를 배우길 바란다.

주요 내용

  • 아키텍처 패턴: 수많은 아키텍처 결정을 내리는 기술적인 근간
  • 컴포넌트: 식별, 커플링, 응집, 분할, 세분도
  • 소프트 스킬: 효과적인 팀 관리, 회의, 협상, 프레젠테이션 등
  • 현대성: 지난 수년 동안 근본적으로 변화한 엔지니어링 프랙티스와 운영 방식
  • 엔지니어링으로서의 아키텍처: 소프트웨어 아키텍처를 더욱 탄탄하게 만들어주는 반복 가능한 결과, 메트릭, 구체적인 평가

추천사

당신이 경험 많은 아키텍트든, 이제 새로 시작한 아키텍트든, 이 책은 여러분을 더 나은 아키텍트로 만들어줄 겁니다. 제가 커리어를 시작할 즈음에 이런 책이 나왔다면 얼마나 좋았을까요! - 너새니얼 슈타, VMWare 아키텍트

이 책은 소프트웨어 아키텍처를 섭렵할 수 있도록 충실하게 안내하는 가이드북이 될 것입니다. - 레베카 J. 파슨스, 쏘우트웍스 최고 기술 책임자(CTO)

책 정보

원서

  • 제목
    • Fundamentals of Software Architecture: An Engineering Approach
  • 지은이
    • 마크 리처즈(Mark Richards), 닐 포드(Neal Ford)
  • 출판사
    • O’Reilly Media
  • 출간일
    • March 3, 2020

번역서

  • 제목
    • 소프트웨어 아키텍처 101: 엔지니어링 접근 방식으로 배우는 소프트웨어 아키텍처 기초
  • 옮긴이
    • 이일웅
  • 출판사
    • 한빛미디어
  • 출간일
    • 2021년 11월 01일
  • 쪽수
    • 472쪽

목차

  • 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 자율 평가 문제
This post is licensed under CC BY 4.0 by the author.

리팩터링 2판 - 책 소개

Scavenger