이미 소장하고 있다면 판매해 보세요.
|
1부 아키텍처에 대하여
1장 아키텍처란 무엇인가? 2장 닮은 듯 다른 두 소프트웨어 이야기 2부 엔터프라이즈 애플리케이션 아키텍처 3장 스케일을 위한 아키텍처 4장 온라인 사진인화 시스템을 위한 아키텍처 5장 리소스 지향 아키텍처 6장 데이터 증가 : 페이스북 플랫폼 아키텍처 3부 시스템 아키텍처 7장 Xen과 가상화의 미학 8장 가디언 : 내결함성 운영체제 환경 9장 JPC : 순수 자바로 된 x86 PC 에뮬레이터 10장 메타써큘러 버추얼 머신의 강점 : Jikes RVM 4부 사용자 애플리케이션 아키텍처 11장 GNU Emacs : 프로그램의 복잡성 12장 KDE : 어색한 만남의 시작 |
|
고수들의 소프트웨어 설계에 숨어있는 아름다움을 이야기하다.
소프트웨어 아키텍처의 기본에서부터 베스트 프랙티스에 해당하는 여러 사례들을 볼 수 있고, 뿐만 아니라 당대의 상당히 넓은 영역에 걸친 시스템에 대해 저자들은 아주 훌륭히 다루어 주었다. 특히 Emacs에서 Facebook, 형식에 구애 받는 시스템에서부터 가벼운 시스템에 이르는 등 다양한 범위의 아키텍처를 특히 관심 있게 보았다. 견고하고, 우아하며, 유연하고, 유지 가능한 소프트웨어 아키텍처의 구성요소는 무엇이라 생각하는가? 뷰티풀 아키텍처는 이 질문에 답을 하기 위해 오늘날의 소프트웨어 설계와 아키텍처를 이끌고 있는 12명 이상의 아키텍트의 경험담을 정리해 보았다. 각각의 사례에서 현재의 소프트웨어 아키텍처에서 주목할 만한 사항들을 이야기하고, 어떤 요소가 혁신적이고, 이상적인지를 분석하고 있다. 이 책을 통해 얻을 수 있는 것은 *어떻게 Facebook의 아키텍처가 데이터 중심의 애플리케이션 생태계를 위한 기본이 되는가 *운영체제의 미래에 영향을 준 Xen의 혁신적인 아키텍처 *KDE 프로젝트에서의 커뮤니티 프로세스가 어떻게 소프트웨어 아키텍처를 개괄적인 모습에서 *아름다운 시스템으로 진화시키는데 도움을 주는가 *GNU Emacs가 얻은 뜻밖의 기능들이 어떻게 컴퓨터가 더욱 복잡해져 가는 경향을 도울 수 있는가 *Jikes RVM 자기-최적화, 자기-호스팅 런타임의 뒤에 있는 마술 1부. 아키텍처에 대하여 제 1장. 존 클레인(John Klein), 데이비드 와이스(David Weiss)의 '아키텍처란 무엇인가?'에서는 대상을 질적인 측면과 아키텍처적 구조의 관점을 통해 고찰함으로써 소프트웨어 아키텍처에 대해 정의한다. 제 2장. 피트 굿리프(Pete Goodliffe)의 '닮은 듯 다른 두 소프트웨어 이야기'에서는 어떻게 소프트웨어 아키텍처가 시스템의 진화와 프로젝트에 참여한 개발자들에게 영향을 미칠 수 있는지에 대해 비유를 들어 소개한다. 2부. 엔터프라이즈 애플리케이션 아키텍처 제 3장. 짐 왈도(Jim Waldo)의 '스케일을 위한 아키텍처'에서는 대규모 멀티플레이어를 지원하는 온라인 게임 서버 제작에 필요한 아키텍처에 대해 설명한다. 제 4장. 마이클 나이가드(Michael Nygard)의 '온라인 사진인화 시스템을 위한 아키텍처'에서는 여러 단계와 여러 사이트의 데이터 프로세싱 시스템의 아키텍처를 살펴보고, 이런 아키텍처가 동작하기 위한 타협점에 대해 이야기한다. 제 5장. 브라이언 슬리튼(Brian Sletten)의 '리소스 지향 아키텍처'에서는 데이터 주도 애플리케이션을 제작할 때 리소스 맵핑의 강점에 대해 논의하고, 리소스 지향 아키텍처의 훌륭한 사례에 대해 이야기한다. 제 6장. 데이비드 페터맨(David Fetterman)의 '데이터 증가 : 페이스북 플랫폼 아키텍처'에서는 좋은 아키텍처가 어떻게 애플리케이션 생태계를 창조하고, 지지할 수 있는지를 설명함으로써 데이터 중심적 시스템에 대해 지지하고, 이를 설명한다. 3부. 시스템 아키텍처 제 7장. 데릭 머레이(Derek Murray)와 케이어 프래이저(Keir Fraser)의 'Xen과 가상화의 미학'에서는 잘 만들어진 아키텍처가 어떻게 운영체제의 진화에 영향을 미칠 수 있는지에 대한 사례를 이야기한다. 제 8장. 그렉 레히(Greg Lehey)의 '가디언: 내결함성 운영체제 환경'에서는 거의 20년 동안 고가용성 환경을 만들기 위한 텐덤(Tandem) 플랫폼의 아키텍처적인 선택과 빌딩블록(소프트웨어와 하드웨어 모두)의 원칙들을 이야기한다. 제 9장. 리스 뉴먼(Rhys Newman)과 크리스토퍼 데니스(Christopher Dennis)의 'JPC : 순수 자바로 된 x86 PC 에뮬레이터'에서는 신중히 디자인된 소프트웨어와 도메인 요구사항에 대한 올바른 이해가 어떻게 프로그래밍 시스템의 결함을 극복하는지를 설명한다. 제 10장. 이안 로저스(Ian Rogers)와 데이브 그로브(Dave Grove)의 '메타써큘러 버추얼 머신의 강점 : Jikes RVM'에서는 고급 언어를 위한 자기 최적화, 자가 호스팅을 만들기 위한 런타임에 요구되는 아키텍처적인 선택을 소개한다. 4부. 사용자 애플리케이션 아키텍처 제 11장. 짐 블랜디(Jim Blandy)의 'GNU Emacs : 프로그램의 복잡성'에서는 매우 간단한 구성요소 집합과 확장언어로 구성된 일개 문서 편집기가 어떻게 프로그래머의 맥가이버칼로 바뀔 수 있었는지에 대해 설명한다. 제 12장. 틸 아담(Till Adam)과 미르코 보엠(Mirko Boehm)의 'KDE : 어색한 만남의 시작'에서는 스프린트(sprint)와 상호 검토(peer-review)와 같은 커뮤니티 프로세스가 어떻게 소프트웨어 아키텍처가 대략적인 윤곽에서 아름다운 시몽템으로 발전할 수 있도록 도울 수 있는지를 이야기한다. 5부. 언어와 아키텍처 제 13장. 버트랜드 메이어(Bertrand Meyer)의 '소프트웨어 아키텍처 : 객체지향과 함수형의 비교‘에서는 객체지향과 기능 중심의 아키텍처 스타일을 비교한다. 제 14장. 파나지오티스 루리다스(Panagiotis Louridas)의 '고전의 재해석' 에서는 최신과 고전적 객체지향 소프트웨어 언어들의 기본원칙들 뒤에 숨겨진 아키텍처적인 선택에 대해 소개한다. 마지막으로, 맺는 말에서는 MIT에서 아키텍처와 미디어 아트와 과학(Architecture and Media Arts and Sciences)의 교수를 맡고 있는 윌리엄 미셀(William J. Mitchell)이 실제 현실에서 마주하는 건축물 아키텍처의 아름다움과 실리콘 밸리의 소프트웨어 아키텍처의 아름다움의 개념을 하나로 묶어 설명한다. 아름다운 건축 작품은 다채로움과 복잡성을 가지고 있지만, 지적인 참여를 통해서 단순하고 우아한 기능적 조직 및 형식적 순서의 원리를 발견할 수 있다고 말하며, 바로 이 부분이 아키텍처를 경험하고, 기쁨을 얻는 결정적인 부분이라고 강조하고 있다. |