책 소개
개발자에서 아키텍트로 거듭나기! 초보 아키텍트를 위한 실전 입문서
이 책은 개발자에서 아키텍트로, 변화의 첫걸음을 내딛는 이를 위한 실전 입문서다. 설계를 위한 필수 지식, 아키텍처 패턴, 모델, 설계 방법론, 커뮤니케이션 노하우를 상세히 소개한다. 문제 상황에서 팀원들과 해볼 수 있는 38가지 팀 활동을 소개하며 실무 적응 능력을 키워준다.
아키텍처를 잘 모르는 개발자라면, 이 책을 읽으며 개발 업무의 구조를 이해하는 실력을 향상할 수 있다. 현업 아키텍트라면, 결정사항을 잘 설명하여 팀을 이끌고 이해관계자와 소통하는 능력을 키울 것이다. 이 책과 함께 프로젝트와 팀을 성공으로 이끄는 훌륭한 아키텍트로 거듭나길 바란다.
소프트웨어 아키텍처를 설계하는 일은 언제나 혼란스럽습니다. 비즈니스 목표를 이해하고 여러 이해관계자의 요구사항을 파악해야 할 뿐만 아니라, 제약을 극복하면서도 모두가 만족할 만한, '제대로' 작동하는 프로그램을 만들어야 하기 때문입니다. 아키텍트에게는 소프트웨어를 비즈니스 관점에서 바라보는 안목뿐만 아니라, 시스템 전체를 조망하고 세부 기술을 이해하는 능력도 필요합니다.
이 책은 개발자에서 아키텍트로, 변화의 첫걸음을 내딛는 이를 위한 실전 입문서입니다. 회사에서 갑자기 설계 일을 맡게 된 사람이나, 프로젝트를 직접 이끌어야 하는 스타트업 개발자와 CTO에게 최적의 책입니다. 물론 소프트웨어 아키텍처를 폭넓게 이해하고픈 개발자에게도 유용합니다.
아키텍처와 설계에 대한 필수 지식, 경력 있는 아키텍트의 경험담, 실무와 현장의 사례를 이 책 한 권에서 모두 볼 수 있습니다. 하나의 장이 끝날 때마다 '라이언하트'라는 가상 도시의 프로젝트 사례로 배운 내용을 정리합니다. 난항을 겪으면서도 성공적으로 마무리된 프로젝트 사례를 따라가다 보면, 여러분도 할 수 있다는 자신감을 얻게 될 것입니다. 이 책을 읽는 모두가 프로젝트와 팀을 성공으로 이끄는 훌륭한 아키텍트로 거듭나길 바랍니다.
주요 내용
- 소프트웨어 아키텍처란 무엇이고 아키텍트는 무슨 일을 하는가
- 디자인 싱킹과 디자인 마인드셋을 활용한 아키텍처 설계 전략
- 이해관계자와 비즈니스 목표를 명확하게 파악하고 이해하기
- 아키텍처 핵심 요구사항을 파악하고 품질 속성 정의하기
- 자주 사용하는 아키텍처 패턴과 사용법
- 아키텍처 모델을 활용해 시스템 복잡도 관리하기
- 아키텍처 디자인 스튜디오 운영하기
- 설계를 시각화하고 아키텍처 문서화하기
- 아키텍처를 평가하고 피드백을 반영해 개선하기
- 적절하게 설계 권한을 위임하며 팀의 역량 높이기
- 현업에서 바로 활용 가능한 38가지 팀 활동
대상 독자
- 개발자에서 아키텍트로 커리어를 변경하고 싶은 사람
- 소프트웨어 아키텍처를 제대로 이해하여 실무 개발 능력을 향상하고 싶은 사람
- 소프트웨어의 전체 구조 및 개발 과정 전체를 이해하고 싶은 신입 개발자
- 소프트웨어를 둘러싼 다양한 이해관계자들의 관점을 이해해보고 싶은 사람
개발 경력별 이 책의 활용법
- 신입 개발자: 단순히 코드를 짜는 일을 뛰어넘어, 소프트웨어 개발 및 프로젝트이라는 숲을 보며 시야를 넓혀보세요.
- 5년 이하 경력의 개발자/아키텍트: 흔히 쓰는 패턴, 모델, 설계 방식을 이해하고, 아키텍처를 시각화하고 문서화하는 방법을 배우세요. 사람들과 협업할 때 어려움을 겪는다면, 사례 탐구와 경력 있는 아키텍트들의 기고문을 통해 지혜로운 방법을 찾아보세요.
- 10년 이상 경력의 개발자/아키텍트: 아키텍트로서 프로젝트를 직접 이끌거나 개발 팀장의 역할을 수행해야 하나요? 팀원 및 이해관계자와 제대로 커뮤니케이션 하는 방법을 익혀보세요. 문제를 해결하기 위해 해볼 만한 활동을 찾아보고 책에서 소개하는 방법을 직접 따라해보세요. 금세 해결책을 찾을 수 있을 겁니다.
작가 소개
지은이 : 마이클 킬링
경험 많은 소프트웨어 아키텍트, 애자일 실천가이자 개발자. 전투 시스템 설계, 검색 애플리케이션, 웹 애플리케이션, IBM 왓슨을 포함해 다양한 소프트웨어 시스템과 일하며 경험을 쌓았다. 소프트웨어 관련 일을 하지 않을 때는 하이킹, 달리기, 요리, 캠핑을 즐긴다.
옮긴이 : 김영재
평범한 IT 연구원으로 무난하게 지내다가 교육 분야에 관심을 가지며 모바일 애플리케이션 '바로풀기'를 개발한 에듀테크 스타트업 바풀의 CTO가 되었다. 바풀이 네이버/LINE에 인수된 후 기술 전문 임원인 '펠로우'로 재직 중이다. 여러 프로덕션 조직을 이끌면서 업무 프로세스, 팀워크, 자동화, 아키텍처에 관심을 가지고 있다.
목 차
[PART 1 소프트웨어 아키텍처]
CHAPTER 1 소프트웨어 아키텍트가 되다
1.1 소프트웨어 아키텍트가 하는 일
1.2 소프트웨어 아키텍처란 무엇인가
1.3 팀에서 아키텍트가 되려면
1.4 훌륭한 소프트웨어 만들기
1.5 사례 연구: 라이언하트 프로젝트
1.6 마치며
CHAPTER 2 디자인 싱킹 기초
2.1 디자인 싱킹의 네 가지 원칙
2.2 디자인 마인드셋 장착하기
2.3 생각-실행-확인하기
2.4 마치며
[PART 2 아키텍처 설계의 기초]
CHAPTER 3 설계 전략 고안하기
3.1 만족스럽게 설계하기
3.2 설계를 얼마나 우선해야 하는가
3.3 위험 요소를 가이드로 삼기
3.4 설계 계획 세우기
3.5 사례 연구: 라이언하트 프로젝트
3.6 마치며
CHAPTER 4 이해관계자와 공감하기
4.1 알맞은 사람과 이야기하기
4.2 이해관계자 맵 만들기
4.3 비즈니스 목표 탐색하기
4.4 사례 연구: 라이언하트 프로젝트
4.5 마치며
CHAPTER 5 아키텍처 핵심 요구사항 알아내기
5.1 제약으로 설계 선택지 줄이기
5.2 품질 속성 정의하기
5.3 기능 요구사항 찾아내기
5.4 아키텍처에 영향을 미치는 다른 요소 찾아내기
5.5 콘웨이 법칙
5.6 필요한 정보에 깊이 들어가기
5.7 ASR 워크북 만들기
5.8 사례 연구: 라이언하트 프로젝트
5.9 마치며
CHAPTER 6 아키텍처 선택하기
6.1 대안을 위한 분기, 결정을 위한 융합
6.2 제약 수용하기
6.3 품질 속성 끌어올리기
6.4 구성 요소에 기능별 역할 할당하기
6.5 변화에 대응하는 디자인
6.6 결정은 미룰 수 있을 때까지 미룬다
6.7 사례 연구: 라이언하트 프로젝트
6.8 마치며
CHAPTER 7 패턴으로 기초 만들기
7.1 아키텍처 패턴이란 무엇인가
7.2 레이어 패턴
7.3 포트와 어댑터 패턴
7.4 파이프와 필터 패턴
7.5 서비스 지향 아키텍처 패턴
7.6 발행/구독 패턴
7.7 공유 데이터 패턴
7.8 멀티 계층 패턴
7.9 숙련된 전문가 패턴
7.10 오픈소스 공헌 패턴
7.11 큰 진흙 공 패턴
7.12 새로운 패턴 발굴하기
7.13 사례 연구: 라이언하트 프로젝트
7.14 마치며
CHAPTER 8 의미 있는 모델로 복잡도 관리하기
8.1 아키텍처 파악하기
8.2 메타모델 설계하기
8.3 코드로 모델 구현하기
8.4 사례 연구: 라이언하트 프로젝트
8.5 마치며
CHAPTER 9 아키텍처 디자인 스튜디오 운영하기
9.1 아키텍처 디자인 스튜디오 계획하기
9.2 적절한 설계 활동 선택하기
9.3 적절한 참가자 초대하기
9.4 그룹 관리하기
9.5 원격으로 협업하기
9.6 사례연구: 라이언하트 프로젝트
9.7 마치며
CHAPTER 10 설계 시각화하기
10.1 다양한 관점으로 아키텍처 표현하기
10.2 멋진 다이어그램 그리기
10.3 사례 연구: 라이언하트 프로젝트
10.4 마치며
CHAPTER 11 아키텍처 문서화하기
11.1 문서화의 가치
11.2 상황에 맞는 서술 방법
11.3 명세서의 독자 고려하기
11.4 이해도가 중요하다
11.5 이해관계자의 관심사에 맞추어 뷰 구성하기
11.6 결정에 대한 논리적 근거 설명하기
11.7 사례 연구: 라이언하트 프로젝트
11.8 마치며
CHAPTER 12 아키텍처 평가하기
12.1 평가를 통해 배우기
12.2 설계 테스트하기
12.3 평가 워크숍 꾸리기
12.4 빠르게, 자주, 지속해서 평가하기
12.5 사례 연구: 라이언하트 프로젝트
12.6 마치며
CHAPTER 13 아키텍트에게 힘 실어주기
13.1 아키텍처 사고력 향상시키기
13.2 팀의 의사결정력과 역량 높이기
13.3 안전한 훈련으로 기회 만들기
13.4 설계 권한 위임하기
13.5 함께 아키텍처 설계하기
13.6 사례 연구: 라이언하트 프로젝트, 성대한 결말
13.7 마치며
[PART 3 아키텍트의 은빛 도구상자]
CHAPTER 14 문제를 이해하고 싶을 때
활동 1 하나만 고르기
활동 2 공감 지도
활동 3 GQM 접근법
활동 4 이해관계자 인터뷰
활동 5 가정 나열하기
활동 6 품질 속성 레이다 차트
활동 7 미니 품질 속성 워크숍
활동 8 관점 매드 립
활동 9 허수아비 반응
활동 10 이해관계자 맵
CHAPTER 15 해결책을 찾고 싶을 때
활동 11 아키텍처 의인화
활동 12 아키텍처 플립북
활동 13 컴포넌트-역할 카드
활동 14 개념도
활동 15 나눠서 정복하기
활동 16 이벤트 스토밍
활동 17 그룹 포스터
활동 18 라운드 로빈 설계
활동 19 화이트보드 토론
CHAPTER 16 손에 잡히는 설계를 만들고 싶을 때
활동 20 아키텍처 의사결정 기록(ADR)
활동 21 아키텍처 하이쿠
활동 22 컨텍스트 다이어그램
활동 23 인기 독서 목록
활동 24 인셉션 덱
활동 25 모듈식 분해 다이어그램
활동 26 가지 않은 길
활동 27 프로토타입
활동 28 시퀀스 다이어그램
활동 29 시스템 메타포
CHAPTER 17 설계 대안을 평가하고 싶을 때
활동 30 아키텍처 브리핑
활동 31 코드 리뷰
활동 32 의사결정 매트릭스
활동 33 관측하기
활동 34 질문-코멘트-우려사항
활동 35 리스크 스토밍
활동 36 온전성 검사
활동 37 시나리오 훑어보기
활동 38 스케치하고 비교하기
부록: 기여자들
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |