저자 에이미 브라운, 그레그 윌슨 엮음 (류성호, 김 마이클, 김성안, 박성철, 서지혁, 설현준, 임성현, 정진수, 조상민, 최용호, 허태명, 현수명 옮김)

ISBN 978-89-6626-144-4

정가 27,000원

관련 페이지 https://blog.insightbook.co.kr/2015/0...

25개 애플리케이션으로 배우는 오픈 소스 소프트웨어 아키텍처

Programming
프로그래밍은 평생에 걸친 수련이 필요하다. 하지만, 프로그래밍 자체는 소프트웨어 아키텍처 설계와는 별개의 문제다. 많은 프로그래머가 보다 큰 규모의 설계 이슈에 대해 몇 년에 걸쳐 생각하고 씨름한다. 그런데 개별 프로그래머들은 역사적으로 뚜렷한 족적을 남긴 프로그램들을 접하거나, 노련한 업계종사자들이 해당 프로그램들에 대해 작성한 평가를 읽을 기회가 거의 없었다. 그 결과로 서로의 장점과 성공을 계승하지 못하고 서로 동일한 실수를 계속 반복해 왔다.

이 책은 이런 현상을 고쳐보고자 하는 노력의 일환이다. 각 장은 오픈 소스 소프트웨어의 아키텍처를 설명한다. 전체 구성은 어떻고, 각 하부 구조는 어떻게 상호동작하며, 왜 그런 방식으로 구축하게 되었으며, 다른 대규모 설계 문제에 적용될 수 있는 교훈은 어떤 것들이 있었는지 말이다. 각 해설은 해당 소프트웨어를 잘 아는, 복잡한 애플리케이션을 설계하고 다시 재설계하는 작업을 길게는 수십 년에 걸쳐 수행해 온 전문가들이 저술했다.

각 애플리케이션은 간단한 드로잉 프로그램에서부터, 웹 기반 스프레드시트, 컴파일러 툴킷, 그리고 수백만 라인에 이르는 시각화 패키지 등 매우 다양한 분야를 아우르고 있다. 일부는 몇 년밖에 되지 않은 반면, 어떤 것은 30주년을 바라보는 애플리케이션이다. 하지만 이 책을 저술한 43명의 필진 모두가 공통적으로 가지고 있는 바람인, 각 시스템 제작자들이 설계에 대해 오랫동안 열심히 고민해왔고 그 결과를 독자와 자발적으로 공유하고 싶다는 기대로 엮어졌다.

하둡과 같은 분산시스템에서부터 bash와 같은 셸에 이르기까지 다양한 대상들을 다루고 있는 만큼, 각 챕터마다 설명하는 방식들도 개성이 뚜렷하다. 하지만, 작업한 대상의 얼개를 설명할 때 어떤 내용들을 중심으로 설명하고 어떤 내용들을 생략했는지, 그리고 설계할 때 어떤 부분을 고민했으며 그에 따르는 장단점이 어떤 것이었는지 등을 살펴보면 흥미로울 듯하다. 특히 센드메일(Sendmail)이나 bash와 같이 오랜 역사를 가지고 있는 소프트웨어들의 경우 시간이 흐름에 따라 어떤 부분이 유지되었고 어떤 부분이 변경되었는지, 새로 만든다면 다르게 접근하고 싶은 부분은 어떤 것인지 등에 대한 설명을 듣는 것도 쉽게 접하기 어려운 부분이다.

[ 엮은이 ]

에이미 브라운 Amy Brown

워털루 대학교에서 수학으로 학사를 마쳤으며, 소프트웨어 산업에서 10년 동안 근무했다. 최근에는 저술과 책 편집 업무에 종사하고 있으며, 때때로 소프트웨어에 관한 책을 다루기도 한다. 토론토에서 자녀 두 명과 아주 나이 먹은 고양이와 함께 살고 있다.

그레그 윌슨 Greg Wilson.

25년 넘게 고성능 과학 컴퓨팅, 데이터 시각화, 컴퓨터 보안 분야에 종사해왔으며, 2008년 졸트상 수상작인 『Beautiful Code』를 포함한 여러 권의 컴퓨터 관련 서적과 어린이를 위한 두 권의 책을 저술했다. 1993년 에딘버러 대학교에서 전산학 박사 학위를 취득했다. 블로그 주소는 http://third-bit.com와 http://software-carpentry.org이다.

[ 옮긴이 ]

류성호
KAIST 인공지능 연구실에서 박사과정을 마쳤으며, 졸업 후 삼성전자와 NHN에서 근무했다. 네이버의 음성 비서 서비스인 ‘링크’의 음성인식 개발을 담당하였으며, 현재 아마존에서 Speech/Machine learning scientist로 재직 중이다.

김 마이클
소프트웨어 시스템 아키텍트. 서강대를 졸업했고 미국 실리콘 밸리에서 Deloitte Consulting, Agilent Technologies 및 Symantec Corp. 등 글로벌 포춘 상위 기업에서 시스템 아키텍트 및 컨설턴트로 20년 정도 근무했으며 대부분의 소프트웨어 분야에 경험을 가지고 있지만 DevOps를 통한 생산성 혁신이 최근의 관심 분야이다. 3자녀를 둔 아빠이며 1999년에 거듭난 그리스도인이다.

김성안
대학원에서 소프트웨어 공학을 전공했고, 대학원과 첫 회사에서 이클립스 기반의 도구를 개발했다. 지금은 쿠팡에서 아이폰 애플리케이션을 개발하고 있다. 『프로그래밍 루아(2014)』 『아이패드를 제대로 활용하는 앱 개발(2011)』 『Git, 분산 버전 관리 시스템(2010)』 『프로그래밍 jQuery(2008)』를 공역했다.

박성철
8bit 애플 2 호환기로 시작해 지금까지 30년 넘게 SW 개발 주변을 겉도는 경도 히키코모리이 다. 평생 혼자 살 운명이었으나 천사를 만나 가장 역할을 부여받고 서울 근교에서 아들 하나와 함께 행복한 가정을 꾸리고 있다. 별생각 없이 시작한 회사를 10년 만에 말아 먹은 흑역사를 뒤로하고 지금은 SK플래닛에서 멋진 개발자들과 즐거운 퀘스트를 수행 중이다. 소프트웨어 개발 현장을 개선하는 데 관심이 많다.

서지혁
건국대학교에서 생명과학을 공부하며, 스마트스터디에서 소프트웨어 엔지니어로 일하고 있다. 참여한 주요 프로젝트로는 Earth Reader, Crosspop 등이 있다.

설현준
부산광역시 출생으로, 중학교 때 도미해 코넬 대학교에서 컴퓨터공학과를 졸업하고, 동 대학교 대학원에서 컴퓨터공학 전공으로 공학석사 학위를 취득했다. 2011년 이후로 NAVER에서 소프트웨어 개발과 음성 합성/음성인식 연구를 맡았고 2014년부터 현재까지 Apple, Inc.에서 엔지니어로 근무하고 있다.

임성현
소프트웨어 공학을 전공하였고, 현재 소프트웨어 품질 엔지니어로 일하고 있으며, 고객에게 박수 받는 제품을 만드는 꿈을 가지고 있다. 기술만큼이나 사람에게 관심이 많아, 다른 개발자들과 이야기하기를 좋아하고, 대학생의 졸업 작품을 지도하는 IT 한이음에서 8년째 멘토를 진행하고 있다. 중학생 딸, 아들과 함께 프로그래밍 할 때 제일 행복하다.

정진수
성균관대학교 전자전기컴퓨터공학부 학사 및 석사학위를 받았다. 학창시절에 삼성소프트웨어 멤버십,KT 연구소 인턴 등을 거쳤다. 졸업 후 병역특례로 인프라웨어에서 모바일 브라우저 엔진 개발 프로젝트 및 신사업 개발 프로젝트에 참여하였고, 카카오 게임사업부에서 게임하기 및 관련 서비스들을 개발하다가 현재는 새롭게 시작하는 프로젝트에 참여하고 있다. RubyOnRails와 Scala 및 새로운 등장하는 기술들에 관심이 많고, 인간이란 존재, 역사를 통한 교훈, 운명에 대한 고찰 등 스타트업에서 요구하는 차별화된 엔지니어가 되기 위한 비기술적 주제들에 대해서도 깊은 관심을 가지고 있다. 현재는 용인에서 사랑스런 아내, 토끼 같은 두 아이와 함께 행복하게 살고 있다.

조상민
씽크프리(주)에서 워드프로세서를 개발했고, (주)와이더댄 리서치센터와 (주)NHN 기술혁신센터, (주)생각제곱을 거쳤으며, 현재는 (주)SK플래닛에서 개발자로 일하고 있다. 『Java 세상을 덮친 이클립스』 『생각하는 프로그래밍』 『프로그래밍 심리학』 『패턴을 활용한 리팩터링』을 함께 짓거나 옮겼다.

최용호
소프트웨어 공학을 전공하고, 시스템 프로그래밍, 네트워크, 보안, 웹 분야에서 개발, 기획, 분석, 컨설팅 등 다양한 업무를 수행했다. 그리고 JavaScript, PERL5, VB, ASP, J2EE & Java 해킹, Internet Winsock, 자바 병행 프로그래밍, CCNA, CCNP, CCIE, 소프트웨어 공학, 경영, 검색 엔진 최적화, 보안 분야 책들을 번역/집필했다. 현재 BPAN.COM에서 일하고 있다.

허태명
평생 코딩하며 사는 것을 꿈꾸는 개발자이다. 현재 삼성전자에서 서버 개발 업무를 하고 있다. 그동안 주로 웹 서비스와 서버 개발 업무를 했지만 Fullstack Developer가 되기를 꿈꾸며 개발 관련한 모든 분야에 관심으로 꾸준히 공부하고 있다. 새로운 기술이 나오면 공부해서 실무에 성공적으로 적용했을 때 큰 행복을 느끼는 천생 개발자이지만 집에서는 사랑하는 아내의 남편이자 장난꾸러기 아들 둘의 아빠이다.

현수명
장인 개발자를 꿈꾸는 개발자로, 함께 배우고 토론하며 지식 공유하기를 좋아한다. 신나고 즐겁게 개발하기 위해 노력 중이며, 습득한 지식은 블로그(soomong.net)를 통해 공유한다.