감수의 글 ... 9 머리말 ... 11 1. 개발자의 다음 단계 ... 17 프로그래머의 소망 ... 17 시스템 전체를 바라보는 재미 ... 18 프로젝트에서 아키텍트의 역할 ... 19 아키텍트와 다른 업무 담당자의 관계 ... 22 아키텍트의 주요 업무 ... 29 10년후에도 기술자로 활약하기 ... 32 2. 요구사항 정의에 참여 ... 35 요구사항 정의에 대한 기술적 지원 ... 36 아키텍트의 요구분석 단계 업무 ... 40 사용자 중심의 명세 설계 ... 49 플랫폼 선정의 현실 ... 50 팀원을 고려하여 개발 계획을 세운다 ... 54 아키텍트가 있다면 당연히 순조롭게 진행되는가? ... 57 3. 아키텍처 설계 ... 59 아키텍처는 초기에 설계한다 ... 61 아키텍처는 요구사항에서 만들어진다 ... 62 기술 문제를 정리하자 ... 63 항상 누가 아키텍처 설계서를 읽을지 고려한다 ... 68 아키텍처 설계서를 써 본다 ... 70 앞으로 어떤 작업이 이루어질지를 그려낸다 ... 72 개요를 확실히 이해해야 한다 ... 73 기술 요소를 정확하게 설명한다 ... 77 막히기 쉬운 부분은 상세하게 설명해 놓는다 ... 79 의도를 전달하는 것이 중요하다 ... 83 4. 프레임워크를 준비한다 ... 85 소프트웨어에 요구되는 품질 ... 86 아키텍처를 프로젝트 팀에 침투시킨다 ... 90 개발팀 킥 오프 ... 92 아키텍트는 기술과 사람의 중개자 ... 98 프레임워크를 준비하자 ... 99 팀원들의 의견을 이끌어내다 ... 105 적절한 리뷰로 설계를 제어한다 ... 112 칼럼 : 프레임워크로 편안하고 간단하게 개발한다 ... 115 프레임워크는 아키텍처의 구체적인 실체 ... 115 할리우드의 법칙 ... 117 프로젝트의 프레임워크 ... 118 프레임워크를 이용할 때의 장점과 단점 ... 119 5. 말썽 많은 프로젝트 되살리기 ... 123 전화 벨소리 ... 124 문제는 어디에 있는가? ... 129 문제는 아키텍처에도 있다 ... 134 아키텍처에서 해결할 수 있는 부분을 확인한다 ... 138 6. 테스트를 즐기자 ... 143 개발자와 테스트 담당자 사이의 깊은 골 ... 144 빈틈없는 테스트로 품질을 향상시키는 것은 불가능하다 ... 146 TDD로 공격적인 테스트를 한다 ... 151 단위 테스트 ... 153 테스트하기 쉬운 아키텍처 ... 160 아키텍트의 도움이 필요한 테스트 ... 165 다양한 테스트 방법을 이해하자 ... 168 7. 개발 현장 밖에서 활약한다 ... 175 문제를 해결하기 위해 필요한 기술 ... 176 기술로 이해할 수 없는 것들 ... 178 비기술자가 기술적인 결정을 내린다 ... 179 위험요소를 줄이기 위해 ... 182 일의 영역을 넓혀 보자 ... 183 어떤 시스템을 만들어야 하는가? ... 184 아키텍트에게 요구되는 것 ... 187 기술을 몸에 익히기 위해 ... 188 8. 애자일 프로젝트의 아키텍트 ... 193 뛰면서 생각한다 ... 195 문서를 버리고 사람과 대화한다 ... 196 사전 설개는 손해다 ... 200 점진적인 설계 ... 203 사전에 설계해야 하는 경우도 있다 ... 206 프레임워크는 나중에 추출한다 ... 207 Architectus Oryzus와 Architectus Reloadus ... 209 9. 아키텍트가 되고 싶다! ... 211 해커와 아키텍트 ... 212 아키텍트가 왜 돌파구인가? ... 213 비즈니스 애플리케이션 개발은 사회 활동 ... 214 프로 개발자 ... 216 맺음말 ... 219 참고문헌 ... 221 찾아보기 ... 225