품목정보
발행일 | 2021년 06월 07일 |
---|---|
쪽수, 무게, 크기 | 392쪽 | 183*235*30mm |
ISBN13 | 9791162244326 |
ISBN10 | 1162244321 |
발행일 | 2021년 06월 07일 |
---|---|
쪽수, 무게, 크기 | 392쪽 | 183*235*30mm |
ISBN13 | 9791162244326 |
ISBN10 | 1162244321 |
[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년이 넘어가면서 프로젝트 서너개를 경험한 사람들에게 특히 의미있는 책이라고 생각합니다.
책의 내용은 앞에는 아키텍트의 여러가지 설명을, 뒤에는 이를 수행하는 방법을 나열하고 있습니다. 모두가 아키텍트가 되어야 한다는 말을 강조하면서, 개발자 뿐만 아니라 프로젝트에 참여하는 모두가 아키텍트가 될 수 있어야 한다고 말합니다.
개발을 하다보면 설계도 해야 하고 이해관계자들과 의사소통도 계속 해야 한다. 또한 팀 리드를 수행하다보면 팀원들과도 의사소통은 매일의 연속이다.
이 책은 개발자가 앞으로 어떻게 성장해야 하며 목표를 달성하기 위한 여러 방법과 도구들에 대한 내용을 체계적으로 소개를 해주고 있다.
무엇보다 아키텍쳐를 구성하는 패턴들을 소개하고 이 패턴들을 실제 아키텍쳐에서 선택을 하는 상황에 놓였을 때 어떤 절차로 선택을 해야 하는지 실천적인 측면에서의 방법들을 설명하고 있다.
팀원들과 함께 읽어보며 같이 실천해보는 것도 좋을 것 같은 내용들도 많고 이해관계자들도 어느정도 같이 읽어보면서 참여해보는 방법도 좋을 것 같은 내용도 다수 포함이 되어 있다.
소프트웨어 프로젝트를 수행해 본 사람이라면 그 험난한 과정과 다양하게 발생하는 문제의 역동성을 익히 알고 있을 것이다. 프로젝트를 성공적으로 이끌기 위해 많은 연구가 있어왔고, 여러 방법론의 형태로 프로젝트 수행에 대한 가이드라인과 지침을 제시하고 있다. 대상 시스템과 목적, 기능은 다 제각각이지만 프로젝트를 수행하는 주체는 사람이고, 그 프로젝트에 참여하고 있는 사람들이 어떤 역할을 하느냐에 따라 프로젝트의 성패가 결정된다고 해도 과언이 아니다.
소프트웨어의 개발에는 코딩이 필수적이지만, 코딩만 잘 하는 사람만으로는 소프트웨어 프로젝트가 성공하기 어렵다. 프로젝트를 성공으로 이끌기 위해서는 프로그래밍뿐 아니라 엔지니어링 관점에서 문제를 제기하고 이를 관리할 수 있어야 한다. 이를 맡는 것이 소프트웨어 아키텍트이다. 소프트웨어 아키텍트는 여러 이해관계자와의 협업을 통해 비즈니스 목표 달성을 위해 노력하고, 프로젝트의 큰 그림을 그리며, 소프트웨어 설계에 있어 이상과 현실 사이의 균형을 찾는 부단한 싸움을 하고, 기술 부채를 관리하며, 팀 전체의 설계 역량을 키우는 역할을 수행한다.
소프트웨어 프로젝트에 참여하는 개발자가 아키텍트로서의 안목과 역량을 갖게 되면 그 프로젝트의 성공 가능성은 매우 높아질 것이다. 마이클 킬링의 ‘개발자에서 아키텍트로’는, 책 제목처럼 개발자가 아키텍트로 성장하는 과정을 담고 있다. 더 나은 개발자, 아키텍트가 되기 위해 필요한 설계 원칙과 적용 방법, 설계자다운 사고방식과 인간중심적인 접근 방법, 팀원과 협업하며 소프트웨어를 설계하는 방법 등을 통해 더 나은 소프트웨어를 만들고, 프로젝트를 성공으로 이끄는 아키텍트로 성장하도록 돕는다.
책은 크게 세 부분으로 구성되어 있는데, 1부에서는 소프트웨어 아키텍트와 소프트웨어 아키텍처에 대해 다룬다. 2부는 아키텍처를 설계하고, 이해관계자와 소통하고, 핵심 요구사항을 분석하여 설계에 반영하는 방법과 함께 아키텍처 패턴과 설계를 시각화하고 문서화 하는 방법에 대해 알아본다. 끝으로 3부에서는 아키텍처 설계에 도움이 되는 38가지 팀 활동을 소개한다.
복잡한 소프트웨어 아키텍처를 실제 상황에 적용할 수 있도록 쉬운 언어로 잘 설명하고 있어 소프트웨어 엔지니어링 훈련에도 유용하다. 아키텍트가 되고 싶은 개발자 뿐 아니라 팀의 생산성을 높이는 활동을 하고 싶은 이들에게도 추천한다.
**한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.