메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기
정가 29,600원
판매가
29,600원
총 결제 금액 29,600원
dropdown arrow
  • 소장/대여 옵션 선택
  • 소장
  • 365일
    30% 할인
  • 180일
    40% 할인
  • 90일
    50% 할인
  • 30일
    60% 할인

마이한빛 > MY 콘텐츠에서 웹뷰어로 바로 이용가능한 상품이며 배송되지 않습니다.

대여 가능

전자책

종이책

헤드 퍼스트 소프트웨어 아키텍처

효과적인 시스템 설계를 위한 사고법

  • 저자라주 간디 , 마크 리처드 , 닐 포드
  • 번역유동환 , 최영수
  • 출간2025-09-22
  • 페이지488 쪽
  • eISBN9791169219853
  • 물류코드11985
  • 난이도
    초급 초중급 중급 중고급 고급
4.9점 (13명)
좋아요 : 6

소프트웨어 아키텍처의 핵심 원리를 배우는 입문서!


소프트웨어 아키텍처는 단순한 설계 기술이 아니라 시스템의 성공을  좌우하는 핵심 사고 방식이다. 이 책은 건축과 아키텍처의 비유에서 출발해 아키텍처 특성, 의사결정, 컴포넌트, 아키텍처 스타일까지 단계적으로 풀어내며, 복잡한 개념을 독자가 직접 이해하고 적용할 수 있도록 돕는다.
 

레이어드 아키텍처, 모듈러 모놀리스, 마이크로서비스, 이벤트 기반 아키텍처 등 다양한 스타일을 실제 사례와 함께 비교하며, 각 방식의 장점과 한계를 균형 있게 제시한다. 또한 [난&팝], [트립이지], [고잉 그린] 같은 스토리 기반 프로젝트를 통해 독자가 실제 아키텍트로 참여하듯 학습할 수 있게 구성했다. 단순히 이론을 나열하는 것이 아니라, ‘왜 이런 결정을 내려야 하는가’를 끊임없이 묻고 답하게 함으로써 아키텍처적 사고를 훈련한다.
 

이 책은 코드를 작성하는 개발자에서 시스템을 설계하는 아키텍트까지, 모든 소프트웨어 엔지니어가 한 단계 성장할 수 있는 지도를 제공한다. 기술을 외우는 책이 아니라, 더 나은 시스템을 만들기 위한 질문과 선택의 과정을 안내하는 책이다.

 

라주 간디 저자

라주 간디

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

마크 리처드 저자

마크 리처드

마크는 경험이 풍부한 실무 소프트웨어 아키텍트이자, 개발자가 소프트웨어 아키텍트가 되는 여정을 돕는 무료 웹사이트 ‘DeveloperToArchitect.com’ 의 창립자입니다. 그는 1983년부터 소프트웨어 산업에 종사해 왔으며, 애플리케이션, 통합 및 엔터프라이즈 아키텍처에 대한 상당한 경험과 전문성을 보유하고 있습니다.

닐 포드 저자

닐 포드

닐은 종단 간 소프트웨어 개발과 배포를 전문으로하는 글로벌 IT 컨설팅 회사 ‘ThoughtWorks’의 이사이자 소프트웨어 아키텍트, 밈 랭글러(meme wrangler)입니다. 또한 그는 많은 애플리케이션, 기사, 비디오 프레젠테이션의 설계자이자 개발자입니다.
유동환 역자

유동환

책 쓰는 프로그래머로 연세대학교 정보대학원에서 경영정보학을 전공한 후 LG전자에서 안드로이드 앱을 개발했습니다. 자바 카페와 한국자바개발자협의회(JCO)에서 초기 멤버로 수년간 활동했습니다.

 

최영수 역자

최영수

LG전자 webOS 웹 엔진 아키텍트로 활동하며 BlinkOn 등 국제 무대에서 Chromium 관련 발표를 진행했습니다.

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

아키텍처적 사고를 훈련하는 실전 가이드
 

소프트웨어 아키텍처는 종종 추상적이고 멀게 느껴지지만, 실제로는 모든 시스템 개발의 토대가 됩니다. 이 책은 복잡한 개념을 단순화해 설명하면서도, 실무자가 반드시 알아야 할 핵심을 놓치지 않았습니다.
 

특히 건축 설계와의 비유를 통해 아키텍처 사고방식을 쉽게 이해할 수 있도록 했고, 다양한 아키텍처 스타일을 실제 프로젝트 스토리와 연결해 학습자가 몰입할 수 있는 구조로 풀어냈습니다. 아키텍처 특성 정의, 트레이드오프 분석, 아키텍처 결정 기록(ADR) 등 실무에서 당장 활용할 수 있는 방법론을 체계적으로 다루는 점은 이 책의 큰 강점입니다.
 

이 책은 초보 개발자에게는 아키텍처의 큰 그림을 그릴 수 있는 나침반이 되고, 경험 많은 엔지니어에게는 자신의 의사결정 과정을 점검하고 확장할 수 있는 참고서가 될 것입니다.

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


헤드퍼스트 소프트웨어 아키텍처 / 라주 간디, 마크 리처드, 닐 포드 지음 / 한빛미디어

 

검색엔진과 LLM을 활용하면 무서울 것이 없는 세상이다.

소프트웨어 아키텍트에 대한 내용도 마찬가지.

인터넷에 이미 있는 내용, 책으로 사서 보면 뭐하나? 

...

싶은 사람들이라면 주목!

 

1️⃣ 미친 몰입감

표현이 과해 보이나? 적어도 이 책에는 그렇게 표현해도 충분하다. 근래 읽었던 책 중에 가장 큰 충격을 받았다. 왜냐하면, 여태 내가 생각했던 기술 서적의 틀을 완전히 벗어났기 때문이다. 나는 형식에 맞춰 통일된 형태로 정보를 전달해야, 독자가 이를 구조화하여 원활하게 받아들일 수 있을 것으로 생각해왔다. 그러나 책의 서론 '이 책을 읽는 방법'에서는 색다른 관점을 제시한다.
독자의 학습을 위한 것이라면 '무엇이든' 하겠다고.

 

다음 페이지에는 이 책의 특징이 명시되어 있다. 다양한 특징이 있지만, 내가 인상 깊게 본 것은 책에 삽화가 정말 많다는 것. 또 페이지의 구성이 마치 캔버스처럼 다채롭고, 충분히 일반 텍스트로 표현할 수 있는 내용도 삽화와 손글씨로 표현했다. 요약하자면 지루할 틈이 없다는 것이다. 다음 페이지를 펼치면 매번 새로운 자극이 기다린다. 

 

이 책은 자유로워 보이는 표현 방식과는 달리 책의 구성과 짜임새도 굉장히 탄탄하다. 보면 순서대로 읽는 것을 권장하는데, 분명한 학습 로드맵이 있고, 이를 따라가면서 자연스럽게 내용을 쌓아나가는 방식으로 이해하면 된다. 난잡해 보이는 페이지와는 달리 굉장히 잘 정리되어 있다는 것을 알 수 있다.

서론 '이 책을 읽는 방법'


2️⃣ 지루할 틈 없는 다양한 표현 방식 

자, 미리 주의하지만, 이 책에 무언가 특별한 지식을 기대해선 안 된다. 오히려 지식만 놓고 보았을 때는, 웹이나 AI를 활용하는 것이 낫다. 하지만 이 책의 강점은 정~~~말 다양한 방식으로 필요한 내용을 반복해서 전달하고 있다는 것이다. 책을 읽으면서 어떤 표현 방식을 사용하는지 조사해서 정리해보았다.

  1. 비유
  2. 스스로 사고해보기 (연습 문제, 크로스 퍼즐)
  3. 질문과 응답
  4. 도식화 (이건 너무 다양해서 요약 못 함)
  5. 사람과 말풍선으로 메시지 전달
  6. 가상의 실무 사례
  7. 화살표 형식의 정보 보충 노트
  8. 등급 나누기, 점수로 평가하기, 스펙트럼에 표현하기
  9. 개념 간 가상의 대화, 개념의 비교
  10. 구조화 (구성요소 분해 등)

(내가 미처 발견하지 못한 다양한 방식이 더 있을 수도 있다.)

중요한 것은 이렇게 하면서도 학습의 목적을 소홀히 하지 않는다는 점이다. 학습자는 앞뒤를 뒤적거릴 필요 없이, 한 장씩 차례로 넘기며 순간의 안내들에 집중하면 된다. 또한, 스스로 사고해보는 시간이 많이 주어지고, 모범 답안을 제공해주어 즉각적인 피드백을 가능하게 한다. 이 정답의 디테일도 대단한 것이, 애매하다 싶은 것들은 애매하다고 적혀있고, 독자의 예상과는 다른 정답을 적절한 이유와 함께 제공함으로써 또 다른 방식으로 자극을 주기도 한다는 점이다. (단순히 "우린 정답, 정답과 다르면 넌 틀렸어!" 스타일이 아니라는 것이다.) 

도식을 활용한 다양한 표현으로 개념을 반복하여 학습하게 된다


이 책의 관심사가 아닌 것

?‍♂️ 복잡한 이론은 다루지 않는다

앞서도 말했지만, 기본적인 내용을 효과적으로 학습하고자 하는 이들을 위한 책이다. 가령, EDA에서 문제 상황이 발생한 케이스를 예시로 비동기 방식의 장단점이 드러나는 상황은 제시하지만, 그래서 보통 어떻게 해결한다는 등의 자세한 설명은 없다.

 

?‍♂️ 특정 기술의 활용 같은 내용은 없다

Kafka나 k8s와 같은 시스템 아키텍처 수준에서 유용하게 활용되는 기술뿐만 아니라, 그냥 특정 기술에 대한 언급이 아예 없다.

 

?‍♂️ 일부 콘텐츠는 영어를 기준으로 제작되었다

크로스 퍼즐 같은 교육 콘텐츠는 영어를 기준으로 제작되었다. 학습한 내용을 영어로 모른다면 맞추기 어려울 수도 있다.


마치며...

이 책을 통해 "목적에 따라 적절하게 표현하는 것"이 중요하다는 점을 깨달았다. 만약 이 책이 더 어렵고 복잡한 내용을 다루었다면, 직접적인 연관이 없는 삽화로 페이지를 채우는 것은 불필요한 낭비였을 것이다. 그러나 독자를 끊임없이 자극하며 학습의 선순환이 이루어지도록 잘 설계했기에, 가벼운 마음으로 끝까지 읽을 수 있는 좋은 책이 되었다고 생각한다. 백엔드 개발자 분들에게 강력히 추천하는 바이다.

그림과 다양한 실습문제들을 통해서 내가 이해하고 있는 지 확인하도록 책이 작성되어 있습니다. 중요한 아키텍처의 요소를 이해할 수 있었고 몸에 익히기 위한 문제들이 정말 도움되었습니다.

 


 


 

헤드퍼스트

소프트웨어 아키텍처

   라주간디 / 마크 리처드 / 닐 포드 지음

   유동환 / 최영수 옮김

 

:::: 대상 독자

대상 독자가 따로 없나 봅니다. ^^

마케팅 팀에서 아무나 사도 된다고 하니 ...

사실 "소프트웨어 아키텍처" 에 관심있다면 누구나 읽어봐도 될 것 같습니다.

많은 그림과 함께 이해하기 쉽도록 구성되어 있기 때문에 관심만 있다면 누구나 읽어도 될 것 같습니다.

 

:::: 책 형식 / 구성

 

책 들어가기전 소개에서 처럼 뇌 친화적 레이아웃을 추구 하고 있습니다.

그래서, 과하다 싶을 정도로 그림이 많습니다.

처음 소프트웨어 아키텍처를 학습 한다면 충분히 좋은 구성 입니다.

그림으로 설명이 많다 보니 간혹 깊이가 부족한 부분이 있습니다.

하지만, 중/고급자 분들께는 부족할 수 있지만 필요한 부분들에 대해 설명하고 있기 때문에

초/중급자 분들에게는 충분히 도움이 되는 구성인 것 같습니다.

각 부분마다 필요에 따라 "연습 문제" 와 "연필을 깍으며" 형태로 학습한 부분에 대해 생각해 볼 수 있도록

구성되어 있습니다. 

 

 

>> 구성 흐름은,

  a. 아키텍처의 4요소 (품질속성/의사결정/컴포넌트 스타일)

  b. 소프트웨어 아키텍처의 두 가지 법칙 (모든 것은 트레이드 오프 , 아키텍처 결적 기록 (ADR))

  c. 레이어드 / 모듈러 모놀리스 / 마이크로서비스 / 이벤트 기반 등 스타일 투어

  d. 직접 해보기 : 미니 프로젝트로 요구사항 -> 품질 속성 -> ADR -> 다어이그램까지 ....

 

:::: 이 책의 장 / 단점

장점 (Pros)

   - 뇌 친화적 형식 : 시각 자료/퀴즈/퍼즐로 개념 습득을 빠르게 할 수 있음

   - 트레이드오프 사고 훈련 : "정답"이 아닌 "대과와 이득"을 비교하는 프레임을 체득

   - ADR 습관화 : 결정 배경/대안/결과를 기록하는 실무 템플릿 제공

   - 스타일 비교가 명료 : 레이어드/모듈러 모놀리스/마이크로서비스/EDA의 장단 적용 조건을 일관되게 대비

   - 바로 쓰는 체크리스트 : 품질 속성 -> 컴포넌트 -> 다이어그램까지 실무 전이 용이

    - 입문에 적합 : 기초를 체계적으로 다시 세우기 좋음

 

단점 (Cons)

   - 심화 깊이는 제한적 : 분산 트랜잭션 / 사가 / 데이터 일관성 등은 개론 수준

   - 중/상급자 독자에겐 도입부가 장황하게 느껴질 수 있음

   - 대규모 운영 (관측성/거버넌스) 디테일은 다른 레퍼런스 보완 필요

   - 예제 범위에서, 복잡한 레거시 마이그레이션/데이터 경계 문제는 얕게 다룸

 

:::: 결론

읽는 재미와 실무 전이를 모두 잡은 드문 소프트웨어 아키텍처 입문서 입니다.

소프트웨어 아키텍처의 개념을 확립하는데 좋은 책이며, 좋은 구성으로 되어 있습니다.

"설계 vs 아키텍처" 경계를 흐릿하게 느끼던 개발자 분들께 추천합니다.

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

 


패턴, 설계, 아키텍처
시스템 설계를 알아가다 보면 이 세 가지 개념이 뒤죽박죽 되거나 경계가 모호해지기 쉽습니다.
이 가운데 아키텍처에만 집중해서, 무겁지 않으면서 정확하게 알려줍니다.

 

코드, 아키텍처
코드는 없지만 아키텍처는 있습니다.
시스템을 얘기하지만 코드는 없습니다. 설명을 돕기 위한 의사코드가 간혹 나타나기는 합니다만 코드라고 부르기는 미안할 정도입니다.
철저하게 아키텍처만 다룹니다.
아키텍처가 필요한 이유와 아키텍처를 이루는 네 가지 요소, 그리고 각 요소가 가지는 속성과 역할을 알려줍니다.

 

생각, 결정
다양한 요소를 생각했다면 결정을 내리라고 합니다.
'소프트웨어 아키텍처의 모든 것은 트레이드오프다.'
'어떻게 보다 왜(why)가 더 중요하다.'
소프트웨어 아키텍처의 두 가지 법칙입니다.

 

없다, 있다
적절한 모범사례는 없지만, 아키텍처마다 갖춰야 할 틀은 있습니다.
모든 것이 트레이드오프인 까닭에 따르기만 하면 적절한 결과를 얻을 수 있는 모범사례는 존재하지 않습니다.
고민하고 결정하여 만들어낸 고유한 스타일이 있을 뿐입니다.
그만큼 다양한 아키텍처 스타일이 있지만, 그럼에도 불구하고 크게 몇 가지 스타일로 분류할 수 있습니다.
각 스타일들이 가지는 특징으로 인해 어느 정도 틀을 가지고 있습니다.
아키텍처를 이해하는데 많은 도움이 되리라 생각합니다.

 


아키텍트의 시각을 볼 수 있습니다.
경험했던 시스템이나 현재 일하고 있는 도메인, 비즈니스에 여러 아키텍처를 적용하며 고민해 본다면
아키텍처에 대한 지식과 이해의 폭을 넓힐 수 있으리라 생각합니다.

 

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

 

신경치료를 받는 것보다 재밌는건 세상에 무궁무진할 것 같은데^^ 책을 펼쳤을 때 첫 느낌은 울집 꼬맹이가 읽었던 <앗! 시리즈> 느낌이었다. 난 그런 스타일의 책을 좋아한다.^^ '헤드 퍼스트' 시리즈는 하나도 본 적이 없는데 아마 다른 책들도 이런 스타일로 되어 있나보다. 궁금...헤드 퍼스트는 그림으로 설명하고, 대화체를 사용하고, 더 깊이 생각하고 주의를 기울이게 만들고, 감성을 자극하는 책이란다. 이렇게 책 자체에 대한 설명, 이 책으로 어떻게 학습을 하는 게 좋을지에 대한 설명이 긴 책은 처음이다....그런데 뒤로 넘기다 보면 연습문제 정답에 이렇게 많은 페이지를 할애한 책도 또 처음이다. 일방적인 설명 보다는 생각하고 쓰고 정답을 보고 다시 생각하고 정리할 수 있게끔 되어 있다.

 

앞부분에서 이 책에 맞지 않는 사람을 이야기해준다. 완전 신입이나 경험 많은 소프트웨어 아키텍처 또는 새로운 것을 시도하는 것을 두려워하는 사람들....신입은 이 책을 읽기 전에 소프트웨어 개발 경험을 좀 더 쌓고 오라고...난 그 중 하나는 아닌 것 같다.

 

본격적인 내용에 들어가니 소개할 내용에 대해 큰 그림을 보고, 일상적인 것에서 이 소프트웨어 아키텍처와 관련 있는 것들을 연관지어 생각해보고 나서 답을 적을 수 있고, 연습 문제도 풀어볼 수 있도록 되어 있다. 사람에 대해서는 좀 산만하게 느껴질 수도 있겠다는 생각이 들었다. 내가 택한 공부 방식은 처음부터 끝까지 눈에 띄는 글자들만 대충 훑고, 그 다음에 다시 돌아와서 챕터 별로 박스 안에 들어 있는 내용들을 읽어보고, 다시 돌아와서 내 생각을 적어야 하는 문제들의 답을 적고('연필을 깎으며'), 전체를 꼼꼼하게 읽은 후 연습문제를 풀어보는 방식이었다. 이것이 '헤드 퍼스트' 형식의 책을 출판한 사람이 의도한 바인지 아닌지는 모르겠다. 뭐 사람마다 공부하는 방식이 다르니까.

 

우선 그림이 많다. 계속 읽다 보니 일반상식이 풍부해지는 것 같은 부작용(?)도 있다...^^

설계와 아키텍처 또는 그 중간에 있는 것을 구별해 내는 것도 나에게는 쉽지가 않구나... 중간에 심심치 않게 낱말퀴즈 같은 것도 들어 있는데 복습할 때 사용하기 딱 좋아 보인다.

 

짧은 시간 동안에 모든 내용을 다 소화할 수는 없었고 옆에 두고 계속 읽어야겠다. 아무리 그림이 많다고 해도 한 페이지 한 페이지 생각하고 소화해야 할 거리들이 있어서. 그리고 낯선 용어들도 많다. 낯선 용어들도 반복적으로 상기할 수 있게끔 책이 구성되어 있어서 그림책처럼 넘기다 보면 익숙해진다.

 

분명 이론서라고 생각하고 책을 펼쳤는데 실습하고 있다고 느껴지게 하는 것이 이 책의 최대 장점인 것 같다.

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

 

 

소프트웨어 아키텍처에 관련된 외국 영상 중 인상 깊게 본 것은 빨간 안경테를 쓴 닐 포드 작가님이 설명한 게 기억에 가장 남습니다. ​ 그의 설명은 전통적 고정된 아키텍처 설계를 보다 빅테크 기업들이 고민하는 적응형, 진화형 시스템 설계에 대해 실무 아키텍처 담당자와 개발자의 역할 및 협업 방식에 대해 상세히 알려 줬기 때문입니다. ​ 이후 국내에서 그의 번역서는 한빛미디어를 통해서 읽고 있는데요. ​ 이번 신간은 헤드 퍼스트 소프트웨어 아키텍처로 돌아왔습니다. ​ 책은 기존의 책들과 결이 조금 다릅니다. 딱딱한 학교 수업의 교재는 아닙니다. ​ 헤드 퍼스트 시리즈 자체의 미국 개발자 유머가 녹여져 소프트웨어 아키텍처에 대해 쉽게 풀어쓴 책입니다. ​ 그럼 기억에 남는 2가지를 자세히 알아보도록 하겠습니다.

 

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

국내에서는 아파트가 붐이라 집을 짓는 일에 대해서 공감이 가지 않을 수 있습니다. 다만 집을 리모델링 하는 관점으로 아키텍처를 바라 보면 좋은데요. 이때 건축 계획은 집의 구조를 정의하는 일부터 시작합니다. 예를 들어 침실, 욕실 등을 나누듯이 말이죠. ​ 그럼 소프트웨어 아키텍처도 마찬가지로 소프트웨어 구조를 정의 합니다. 보통 이걸 다이어 그램을 통해서 사용자 인터페이스, 데이터베이스 테이블, 통신프로토콜(API 등)을 작성합니다. 결국 작성하다가 보면은 확장성, 테스트 용이성, 가용성 등을 고민하게 될 것입니다.

 

 

2) 아키텍처 변천사

소프트웨어 아키텍처는 시스템의 규모와 비즈니스 변화에 맞춰 꾸준히 발전해왔습니다. 초기에는 대부분 레이어드 아키텍처를 사용했습니다. 사용자 인터페이스, 비즈니스 로직, 데이터 접근 등 역할별로 구분해 개발하는 방식으로 구조가 단순하고 이해하기 쉬워 소규모 시스템에 적합합니다. ​ 하지만 시스템이 커지고 변화가 빨라지면서 일부 기능을 수정할 때 전체에 영향을 주는 문제가 생겨 유지 보수가 어려워졌습니다. 이 한계를 보완하기 위해 모듈러 모놀리드 아키텍처가 등장했는데요. 시스템을 도메인이나 기능 단위로 나누어 각 영역을 독립된 모듈처럼 관리하는 방식입니다. ​ 덕분에 유지보수와 확장이 쉬워졌지만, 여전히 전체를 한 번에 배포해야 한다는 제약은 남았습니다. 이를 근본적으로 해결한 것이 마이크로서비스 아키텍처입니다. 시스템을 완전히 독립적인 여러 서비스로 분리해 각 서비스가 개별적으로 배포, 확장, 운영되도록 한 구조입니다. ​ 다만 대규모 시스템에서 유연성과 확장성이 뛰어나지만, 서비스 간 통신과 데이터 일관성 관리 같은 새로운 과제도 생겼죠. ​ 결국 소프트웨어 아키텍처의 발전은 시스템 복잡성 증가와 빠른 변화에 대응하기 위한 자연스러운 진화 과정이라고 볼 수 있습니다.

AI가 태동하는 시대에 현역 개발자들이 준비해야 하는 것은 AI가 못하는 무엇인가를 잘 수행할 수 있도록 본인을 갈고닦는 것이다.

3일 전 뉴스 기사에 AWS가 향후 회사의 방향성을 어떻게 설계하고 있는지에 대한 내용이 실려있었는데,

핵심 내용만 추려본다면 아래와 같다.

'사람은 줄이고 AI는 늘린다'

AWS가 발표한 60만 명이라는 대규모 인력 감축 계획은 "AI" + "실현 가능한 자동화 설비"가 갖춰졌기에 가능한 일이 되었다.

이제는 옛날의 단순하고 패턴적인 일만 기계가 담당했다면이제는 좀 더 고도화되고 판단이 필요한 일을 기계가 인간만큼이나 잘하는 시대가 되었다는 것이다.

대표적으로 물류배송과 같은 분류, 추적 업무는 AI가 사람과 비교해 보았을 때 압도적이며 효과적으로 처리하는 일이다.

이렇게 AI와 자동화 설비 영역이 고도화될수록모든 산업에 종사하는 사람들이 자신의 입지와 고용 보장에 대해서 불안과 걱정을 표하는 것도 어찌 보면 당연한 일이라 할 수 있다. (블로화이트칼라 모두 본인들의 일자리를 위협받고 있으니 말이다.)

그렇다면 이러한 상황 속에서 IT 종사자들이 준비해야 하는 것은 무엇이 있을까?

필자가 생각하는 그것은 바로 'AI가 못하는 것을 우리, IT 개발자들이 하자'이다사람들이 AI. AI라고 외치고 있지만아직은 AI가 못하는 일이 많다대표적으로 무엇인가 장기적 혹은 복잡하고 정교한 설계에 대해서 판단하거나 설계하거나 이를 그리는 일을 AI는 잘해내지 못하고 있다.

아직은 단기적인 결정에 한정되어 고도화된 AI를 대신하여 보다 넓고 먼 안목을 갖추기 위해 개발자들이 나서야 할 때라는 것이다.

그렇다면보다 넓은 안목그리고 판단력은 어떤 것을 의미하는 것일까?

그것은 바로 서비스 전체의 구조를 한눈에 내려다볼 수 있는 안목과 이를 바탕하여 시스템을 설계하고 디자인하고 나아가 확장과 유지 보수에 열려 있는 구조를 그리는 능력이라 할 수 있다.

소프트웨어 아키텍처를 개발자 누구나 전문적으로 알아야 하는 시대가 도래한 것이다.

【책 내용 요약】

그런 면에서 '헤드 퍼스트소프트웨어 아키텍처'는 이러한 시스템 디자인과 관련된 안목을 키우기 위한 시작점으로 좋은 지침서가 되어 줄 것이란 생각이 든다.

이 책은 소프트웨어 아키텍처를 구성함에 있어서 중요한 안목과 모든 기술과 방법에는 '트레이드오프'가 있다는 것을 잘 설명하고 있고나아가 초심자들을 위해 적절한 량의 문제와 퀴즈를 제공하고 있다.

다만위의 내용은 어디까지 이제 막 소프트웨어 아키텍처를 시작하는 사람들에 한정된 것이니 참고하도록 하자.

책의 구조는 아래와 같다.

이론 설명 -> 핵심 정리 -> 퀴즈(문제)

또한 예와 그림이 많기에 이 책을 가지고 공부하기에 어려움이 그리 많이 들것이라 생각되지 않는다.

 

【 헤드 퍼스트 소프트웨어 아키텍처를 읽고 나서 】

 

헤드 퍼스트 시리즈는 정말로 오래된 책이다오래된 책인 만큼 그만큼 연륜과 경험이 넘쳐나는 책이다.

방대한 양의 정보를 마구잡이로 나눠주는 것보다하나의 내용이더라도 다양한 예시와 문제를 통해 심도 있게 이해시키고자 노력했다는 것을 책 몇 장만 넘겨보면 단번에 알아 첼 수 있다.

이러한 사소한 부분 하나까지 깊게 생각한 책어찌 보면 우리는 이러한 것을 '장인'이라 칭하지 않나 싶다.

 

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

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

헤드퍼스트 방식으로 배우는 실용적 아키텍처 설계

소프트웨어 아키텍처란 시스템의 구조를 정의하는 중요한 의사결정들의 집합이다좋은 아키텍처는 변화에 유연하고 이해하기 쉬우며 팀의 효율적인 협업을 가능하게 한다그러나 현실 세계의 요구사항을 구체적인 설계로 만드는 방법을 알려주는 책은 드물었다헤드퍼스트 시리즈의 이 책은 '소프트웨어 아키텍처 101' '소프트웨어 아키텍처 The Hard Parts'의 저자 마크 리처드가 복잡한 비즈니스 요구사항을 현대적 아키텍처로 설계하는 방법을 제시한다.

 

체계적 접근 방법

 

이 책은 아키텍처를 네 가지 핵심 요소로 분류한다아키텍처 특성아키텍처 결정논리적 컴포넌트아키텍처 스타일. 확장성테스트용이성가용성 같은 특성들이 서로 상충될 때 어떻게 트레이드오프를 판단해야 하는지 구체적인 가이드라인을 제공한다논리적 아키텍처와 물리적 아키텍처의 차이를 명확히 구분하여 실무에서 자주 혼동하는 개념들을 정리해준다.

 

실무 중심의 아키텍처 스타일

 

레이어드 아키텍처부터 헥사고날 아키텍처까지 각 접근법의 장단점을 구체적 예시와 함께 설명한다모듈러 모놀리스 챕터는 마이크로서비스가 항상 최선의 선택이 아님을 강조하며도메인 경계를 명확히 하고 모듈 간 결합도를 낮추는 것이 더 중요하다고 설명한다마이크로서비스와 이벤트 기반 아키텍처에서는 분산 시스템의 복잡성과 함께 실용적인 해결책을 제시한다.

 

헤드퍼스트 시리즈의 강점

 

복잡한 개념을 시각적 다이어그램과 구체적 시나리오로 설명하여 이해하기 쉽게 만든다각 챕터의 '직접 해보기섹션은 학습한 내용을 실제 상황에 적용해볼 기회를 제공한다. 트립이지 여행 앱 예시를 통해 하나의 비즈니스 요구사항을 다양한 아키텍처로 구현하며 각각의 장단점을 체험할 수 있다.

아키텍처 설계는 정답이 없는 영역이다이 책은 불확실성 속에서도 체계적으로 접근하고 합리적인 결정을 내릴 수 있는 사고 프레임워크를 제공한다아키텍처 설계에 입문하는 개발자부터 경험 있는 아키텍트까지 모두에게 유용한 통찰을 제공할 것이다.

 

 

모듈러, 마이크로서비스, 이벤트 기반 등 굵직한 아키텍처 개념들을 컴팩트한 분량으로 직관적으로 쉽게 전달하는 명작.

시간이 지날수록 헤드 퍼스트 시리즈 출간 소식이 뜸한 느낌이 들어 아쉬웠는데, 정말 어려운 SW 아키텍처라는 주제로 새로운 책이 등장하여 반갑다.

헤드 퍼스트 시리즈는 20년 전부터 정평이 나있듯 오감을 자극하는 독특한 구성이 차별점이다. 이 시리즈 외에는 이런 구성은 좀처럼 찾아보기 힘들다.

그림 위주의 구성은 직관적인 이해를 바탕으로 빠른 이해를 돕고, 대화체를 사용하여 친근함을 높이고, 감성을 자극하여 장기 기억으로 이어질 수 있도록 도와주며, 주의를 기울이게 하여 파충류의 뇌(?)를 자극한다. 이러한 깊이 있는 이해를 바탕으로 연속적인 질문을 통해 더 깊은 사고를 가능하게 도와준다. 헤드 퍼스트 시리즈에서만 볼 수 있는 매우 독특한 구성이다.

SW 아키텍처 주제야 말로 헤드 퍼스트식 구성에 매우 적합한 주제이다. SW 아키텍처는 대부분의 사람들이 어려워하고 무엇보다 재미를 느끼질 못한다. 나의 경우 아래와 같은 이슈들이 SW 아키텍처를 재미없게 만든다.

  • 정답이 없다. 그래서 계속 고쳐야 한다.
  • 눈에 보이질 않는다. 그래서 설명하기도 어렵고, 깊은 사고를 요하니 힘들다.
  • 당장의 성과로 이어지지 않는다. 따라서, 현업에서 시간 낭비하는 사람으로 비춰지기 일쑤이다.

이 책의 저자들은 위 단점들을 명확히 인지하고 있다. 이를 해결하고자 헤드 퍼스트 구성 방식으로 이 추상적인 주제를 최대한 가시화하고, 정답이 없기에 다양한 시도를 통해 현실의 사례에서 다양한 해결책을 찾을 수 있도록 지금까지 등장한 아키텍처들을 사례별로 설명한다. 모듈러 모놀리스, 마이크로서비스 아키텍처, 이벤트 기반 아키텍처 등이 그 예시이다.
 

전체

예를 들어 아래 그림은 각각 마이크로서비스 아키텍처와 이벤트 기반 아키텍처의 스케치이다. 아래와 같이 각 주제에 대한 연습문제를 풀고 그리다보면 숨어있는 진의도 깨닫게 되고 이를 통해 현실의 문제에서 필요한 영역마다 해당 아키텍처를 쉽게 활용할 수 있도록 도와준다.

마이크로서비스


 

이벤트 기반

마이크로서비스 그림을 보면 데이터베이스와 인터페이스가 잘게 분리되어 있고, 각 서비스는 자신만의 책임(로그인, 출제, 채점 등)에 초점을 맞춰 동작하며 API 등 인터페이스를 통해 통신이 이뤄짐을 알 수 있다.

반면, 이벤트 기반 그림의 경우 이벤트(로그인, 다음 문제, 답안 제출 등)가 발생할 때마다 관련 서비스(답안 처리, 자동 채점기 등)가 트리거되어 동작함을 쉽게 알 수 있다.

이러한 예시를 통해 해당 아키텍처가 왜 등장했는지 깊이 있는 이해가 가능하다. 우리의 궁극적인 목적은 어느 아키텍처의 신봉자가 되는 것이 아니라 상황에 따라 적절한 설계를 하는 것이 주 목적이기 때문에 이 “왜”에 대한 이해는 매우 중요하다.

위의 예시는 이 책이 갖고 있는 하나의 단편적인 소개에 지나지 않는다. 무엇보다 각각의 아키텍처 주제별들은 한권의 책으로도 충분히 이해하기가 어려운 편인데 이 책은 단 한권의 책으로 수많은 주제를 일목요연하게 정리함은 물론 직관적으로 이해시켜 필요한 시점에 구상할 수 있도록 도와준다는 점이다.

아래 그림들은 각각 다이어그램, 마이크로, 상호작용, 모듈러, MVC, 결합도, 액션과 액터, ADR 등 아키텍처 관점에서 둘쨰가라면 서러운 중요한 주제들인데 한장의 페이지로 추상적이고 복잡한 개념을 얼마나 직관적으로 표현하는지 확인할 수 있다.

다이어그램


 

마이크로


 

상호작용


 

모듈러


 

MVC


 

결합도


 

액션과 액터


 

ADR

각각의 내용을 일일이 소개하기엔 리뷰 목적에 벗어나는 일이겠지만, 리뷰에 장황하게 소개하고 싶은 충동이 든다. 위 다양한 주제들을 대부분의 독자들은 알고 있을 것이므로 스스로 알고 있는 개념과의 비교를 통해 이 책의 또다른 장점인 전달력이 얼마나 뛰어난지 비교해보기 바란다.

AI가 등장하며 설계는 더욱 중요해졌다. 구현의 대부분 그리고 TDD 기반의 테스트와 배포에 이르는 자동화를 바이브 코딩 도구들에게 맡길 수 있는 시대가 되었다.

하지만 결국 지시를 내리는 것은 사람이다. 현실의 문제에 어떤 아키텍처 도구를 사용할지 결정하고 책임지는 역할이 더욱 중요해졌으며 이러한 아키텍처와 설계 기법을 모르고 AI에게 지시를 내리는 것은 구슬이 서말이어도 꿰지 못하는 것과 같다.

설계가 더욱 중요해진 이 시점에 CS 출신 전공자들에게는 말할 것도 없고, 특히 SW 엔지니어링 지식이 부족한 CS 전공 출신이 아닌 일반인 독자에게 더욱 추천하고 싶은 책이다.

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

요즘 AI가 발전함에 따라 인공지능이 대신할 수 없는 일에 대한 고민이 부쩍 많아졌고, 그러면서 공부를 시작한게 아키텍처 설계다. 
물론 이 또한 대체할 수 있겠지만 서비스와 환경 간의 트레이드 오프를 고려하며 적절한 설계를 하는 것은 아직까지 완전한 대체는 힘들다고 생각한다. 
그러면서 읽게 된 이 책!
보통의 아키텍처 책들은 어려운 용어와 이론을 중심적으로 설명하다 보니 얇더라도 읽기에 부담스럽거나 오래걸리는 경우가 있다.
그러나 이 책은 실제 사례들과 함께 어려운 개념들도 독자들이 어떻게 해야 이해하기 쉬울까를 고민한게 느껴진다.
그래서인지 정말 빠르고 가볍게 읽히지만 어려운 개념들도 구조가 잘 잡히는 기분이었다.
그 뿐만 아니라 수십 개의 연습 문제가 있어서 하나의 개념을 익히더라도 더 잘 배우고 잘 기억할 수 있게 해준다.
아키텍처에 관심이 있지만 복잡한 개념때문에 쉽게 다가가지 못하는 분들이라면 이 책을 아키텍처 입문서로 적극 추천한다!
 

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

 

"헤드 퍼스트"는 독자가 책을 읽고 되도록이면 많은 걸 기억할 수 있도록 구성한 오라일리 시리즈입니다. 많은 그림과 연습문제가 포진되어 있어서, 책을 열심히 따라간다면 내용의 상당수를 기억할 수 있게 되어있습니다.

저도 기억력에 대해 여러 책을 읽었는데요. 우리의 기억은 무언가를 머릿속에 남겨두는 게 아니라 머릿속 어딘가 저장되고 있는 데이터에 접근 경로를 만들어 두는 개념이라고 하네요. 그래서 머리에 밀어 넣는 것보다 머릿속에서 끄집어 내는 행위를 많이 해야 기억에 남는다고 합니다. 그런 면에서 "헤드 퍼스트"의 구성은 정말 신의 한수 인것 같습니다.

[책의 구성 방식]

<헤드 퍼스트 소프트웨어 아키텍처>는 소프트웨어 아키텍처의 핵심 요소들을 설명한 다음 각 요소를 사용해 주요 아키텍처들을 유도하는 식으로 구성되어 있습니다.

"소프트웨어 아키텍처의 핵심"은 "아키텍처 특성", "아키텍처 결정", "논리적 컴포넌트", "아키텍처 스타일" 그리고 "아키텍처 결정 기록"입니다. 사각형 다이어그램으로 형상화하고 있는데요. 각 요소에 대해 자세히 설명하고 다양한 문제를 풀게 해서 독자들이 충분히 익히도록 되어 있습니다.

책에서 설명하는 주요 아키텍처들은 "레이어드", "마이크로커널", "모듈러 모놀리스", "이벤트 기반", "마이크로 서비스"입니다. 각각의 아키텍처를 사용하는 가상의 프로젝트를 만들고 프로젝트의 요구사항을 통해서 해당 아키텍처를 선정하는 과정을 밟게 하는데요. 앞에서 이야기한 "소프트웨어 아키텍처의 핵심" 요소들을 찾고 마지막에 "아키텍처 결정 기록"까지 해보도록 유도합니다.

물론 이 과정에서 주요 아키텍처들에 대한 깔끔하고 간략한 설명이 나오는데요. 어느 하나 버릴 게 없었습니다. 그리고 중간중간에 나오는 아키텍처들의 특성 표나 그림을 사용한 설명들은 강한 인상을 남깁니다.

[소프트웨어 아키텍처와 전체를 보는 관점]

<프로그래머의 뇌>를 보면, 전문가와 비전문가가 뇌를 사용하는 방법이 다르다는 것을 이야기합니다. 그 주요한 예가 정크인데요. 청크라 연관된 개념을 하나의 묶음으로 기억하는 것을 말합니다. 인간의 뇌 속에는 4개 정도의 작업 메모리 공간이 있기 때문에 무슨 작업을 진행하던 개념적으로 4개 이상은 머릿속에 넣고 운영할 수 없거든요. 그러나 전문가들은 청크를 사용할 수 있어서 비전문가보다 전문분야에 작업 기억 공간을 훨씬 효율적으로 쓸 수 있습니다.

예를 들어 체스판에 체스를 두던 상태로 놔두고 체스 마스터와 일반인에게 말들의 위치를 기억해 보라고 하면, 체스 마스터가 훨씬 잘 기억한다고 합니다. 바둑 기사들도 고수로 가면 바둑 한판의 수를 모두 기억할 수 있게 되죠.

게다가 전문가들의 관점은 상당히 거시적이기도 합니다. 세세한 부분 부분도 잘 알지만 전체 구조를 파악하고 아키텍처로서 적절한 트레이드오프를 찾아내거든요. 이러한 특성은 <지구촌>이라는 책에서 이야기하는 "그라운드"적인 특성을 가집니다. 그라운드는 대상의 본질을 뜻하는 <지구촌>책의 용어이거든요. (그라운드에 대비되는 용어가 피겨입니다. 일종의 스냅샷으로 어떤 특징적인 상황 상태를 나타냅니다.)

본질을 표현하는 그라운드, 본질의 개념은 말이나 글보다 그림으로 표현할 때 잘 전달됩니다.

그런 면에서 <헤드퍼스트 소프트웨어 아키텍처>의 그림들은 상당히 마음에 들었습니다. 너무 많은 개념이 한꺼번에 몰려 오기 때문에 기억하기 힘든 면이 있는데 그걸 일일이 그림으로 표현해서 관계성을 찾아주고 개념적 특징을 한 번에 깨닫게 해주기 때문입니다.

[두 번 읽어 보기]

저는 책을 읽으면, 한 번 더 타이핑을 하며 정리하는 편입니다. 리뷰는 보통 타이핑 다하고 정리할 때 하는데요. <헤드퍼스트 소프트웨어 아키텍처>에 경우 두 번째 타이핑하며 정리하는 동안 개념들이 좀 더 친근해지고 설명이 쉬워지는 걸 느꼈습니다. 그래서 이 책을 읽으시는 분들이라면 꼭 두 번 읽어보시는 걸 추천합니다.

[AI 시대 아키텍처]

최근 시니어 개발자들에 대한 구인 요구가 가파르게 올라가고 있다고 합니다. 그 이유는 AI 발전 때문인데요. AI가 작업을 해주게 되면 그 작업이 제대로 되었는지 확인하는 걸 신입 개발자들보다는 시니어가 낫다는 게 관계자들의 평가입니다.

하지만 저는 조금 다른 시각으로 일련의 사건을 보게 됩니다. AI가 하는 건, 사실 피겨에 해당하는 일입니다. 일종의 스냅샷이죠. 스냅샷을 모아서 본질적인 결과를 만들어 내려면 본질을 이해하고 아키텍처를 이해해야 가능한 일입니다. 그렇기 때문에 AI 시대에 시니어 개발자들이 인기 있는 게 아니라, 시니어 개발자들 중에 아키텍처를 이해하는 사람들이 많기 때문에 시니어 개발자들이 인기 있는 거라 봐야 합니다. 다시 말해서 AI가 더 발전하게 된다면 아키텍처에 대한 이해도가 높은 개발자들이 생존확률이 높아진다는 이야기도 됩니다.

여러모로 중요한 책이 딱 중요한 시점에 출간된 것 같아서, 반가운 마음으로 읽었던 것 같습니다.

 


 

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

일단 '헤드 퍼스트'시리즈를 한 권이라도 봤다면, 책의 구성이 어떤지에 대한 설명을 필요 없을 것 같다.

일반적인 책과는 완전히 다른 구성을 해서 뇌를 자극한다는데, 받아들이는 사람마다 다를 것 같다.

하지만, 대부분의 시리즈가 핵심을 쉽게 전달하며 많은 생각꺼리와 연습문제를 제공한다.

연습문제 때문이라도 이 책은 전자책이 아닌 종이책으로 봤어야 했는데, 전자책으로 본 걸 후회했다.

저자 중에 '닐 포드'라는 분이 있는데, 그 분의 '소프트웨어 아키텍처 101'도 봤었고, '소프트웨어 아카텍처 The Hard Parts'도 읽어서 내용 자체는 익숙했다. 아마도 책 읽는 순서가 있다면 이 책을 가장 먼저 읽고 101을 읽어야 할 것 같다.

2책에서 강조했던 '모든 것은 트레이드오프다'라는 말은 이 책에서도 여전히 무한 반복하고 있다.

대화, 스토리들을 통해 딱딱할 수 밖에 없는 '소프트웨어 아키텍처'를 좀 더 말랑하게 접근할 수 있게 해주는데 이 책에 미덕이 있는 것 같다.

소포트웨어 아키텍처를 공부하는데 좋은 디딤돌인 것 같다.

마지막으로 저자들이 강조한 것 처럼 '연습문제'를 풀어 봅시다. 어렵습니다.

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


이번 활동으로 2권의 도서를 선택했는데

'헤드퍼스트 소프트웨어 아키텍처'와 '할루시네이션을 줄여주는 프롬프트 엔지니어링' 중에

소프트웨어 아키텍처가 왔다.

솔직히 헤드퍼스트 소프트웨어 아키텍처를 기대하고 선택했는데 이번에도 바라던 책이 왔다.

아키텍처라고 하면 '건축'을 의미하지마 IT분야 에서는 시스템의 구성, 동작원리, 구성요소 간의 관계 및 외부 환경과의 관계를 설명하는 설계도나 청사진을 의미한다.

그만큼 이 책을 보려면 기본적인 지식 외에도 다양한 경험도 필요하다는 것이다.

그 딴 걱적은 하지 말라고 책 서두에서 이 책이 필요한 사람과 필요하지 않은 사람을 구별하여 입구컷을 시전으로 이 도서를 읽는 방법부터 구성을 안내한다.

미리 말하지만, 결코 쉬운 내용은 하나도 없다. 아무리 주변에서 흔하게 있는 일들로 쉽게 이해할 수 있게 배려하는 설명이 대다수지만 그렇다고 쉽게 와닿는 내용은 없다.

이쯤이면 나도 입구컷 대상이 아닌가 하는 생각이 들기도 한다.

이제 소프트웨어 아키텍처에 대해 파해처갈 준비가 되었다면 시작하자.. 

페이지는 초기화되어 1페이지 부터 다시 시작한다.

책을 읽으면 중간중간에 얼마나 제대로 이해를 했는지 확인하는 '연습문제'가 나온다. 간단하지만 결코 쉽지 않다.

덕분에 내가 얼마나 열심히 내용을 파악하고 있는지 재점검을 할 수 있는 기회를 제공함에 건성건성 책장을 넘길 수가 없다.

소프트웨어 아키텍처에 대한 다양한 주제들 속에서 10장의 '마이크로 서비스 아키텍처 - 조금씩 단계별로'와 11장 '이벤트 기반 아키텍처 - 비동기 모험'이 제일 기억에 남는 내용인 것 같습니다. 무엇보다도 이부분이 제일 관심이 많아서 일겁니다.

그동안 프로젝트에서 아키텍처에 대한 고민이 있었다면 관심이 있는 부분만 골랍보지 말고 처음부터 싹 훑업보아도 지식 정리에 있얻도 많은 도움이 될 것 같습니다.

여기까지 내용을 읽으신 분들 중에 책의 앞 부분의 '입구컷'을 통과하신 분들이라면 이미 IT분야에 고수(?)라고 생각됩니다. 그럼에도 불구하고 이 도서를 추천하는 이유는 아키텍처에 대해서 정리된 많은 책을 접하기가 쉽지 않아서 일겁니다.

혹여나 '입구첫' 대상은 아닌데 이 도서가 어렵게 느껴진다면 동일  출판사에서 나온 '아키텍트 첫걸음 - 요네쿱보 다케시' 도서를 먼저 보면 내용 파악이 더 쉬울 듯 합니다.

이상 소프트웨어 아키텍트에 대해서 관심이 너무 많았고 그 시점에 좋은 도서 2권이 한빛미디어에서 출판되어 훌륭한 공부를 하게 되었습니다.


 

전 이제 이론을 실전에서 적용을... 하기 전에 한번씩 책을 더 읽어보고...


 

리뷰쓰기

닫기
* 상품명 :
헤드 퍼스트 소프트웨어 아키텍처
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
헤드 퍼스트 소프트웨어 아키텍처
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
헤드 퍼스트 소프트웨어 아키텍처
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?