지난 번 [독서광] The Architecture of Open Source Applications을 소개해드렸는데, 이번에 Volume II를 독파한 기념으로 다시 한번 소개해드리겠다. 역시 HTML 버전은 무료이며, The Architecture of Open Source Applications 홈페이지에서 Volume I, II를 모두 읽을 수 있다. 지난번에는 킨들을 사용해 읽었지만 이번에는 신형 레티나 아이패드로 무척 쾌적한 환경에서 독파했다.
직전에 올려드린 [B급 프로그래머] (3) 소프트웨어 설계 "프로세스"가 항상 이상화된 형태인 이유는?에서 설명했듯이 이 책은 오픈 소스 아키텍처에 대한 문서를 이상적으로 위조해(!) 프로젝트가 흘러온 역사, 아키텍처의 선택 이유, 프로젝트에서 변경을 결정한 이유, 진행 과정에서 배운 교훈을 후대 프로그래머를 위해 멋지게 정리하고 있다. 국내에서도 인지도가 높아졌는지 심지어 Volume II의 1장인 'Scalable Web Architecture and Distributed Systems'는 확장성 있는 웹 아키텍처와 분산 시스템이라는 제목으로 번역까지 되었으므로 확장성을 고민하는 독자들께 좋은 선물이 되리라 생각한다. Volume II 서문에 나오는 이 책의 집필 목표는 이 책의 성격을 제대로 규정하고 있다.
소프트웨어 설계는 예제를 사용해 제대로 배울 수 있으며 또 그렇게 해야 한다. 전문가처럼 생각하는 방법을 배우기 위한 최선의 해법은 전문가들이 생각하는 방법을 연구하는 것이다.
Volume II에서도 Volumen I과 마찬가지로 정말 다양한 소프트웨어의 아키텍처를 소개한다. 누구나 한번쯤 들어봤음직한 GDB, Git를 비롯해, 함수형 언어 컴파일러와 프레임워크, 다양한 언어로 만들어진 네트워크 프레임워크, 웹 서버, 병렬 라이브러리, 임베디드 소프트웨어 패키징, 구성 관리 시스템, CMS에 이르기까지 분야를 가리지 않는다. 자신이 속하거나 관심이 있는 언어/분야의 내용만 집중적으로 읽어도 좋지만 여기저기 기웃거리는 과정에서 얻는 지식도 상당하므로 시간날 때마다 하나씩 읽어보면 소프트웨어 아키텍처와 설계에 대한 혜안을 얻을 수 있을 것이다.
결론: 백문이 불여일견! 소프트웨어 개발자라면 프로그래밍 언어, 개발 분야, 경험을 따지지 않고 누구에게나 강력하게 추천한다.
EOB