FREE SHIPING FOR OVER $100 - MOSTLY SHIP VIA USPS GROUND ADVANTAGE %D days %H:%M:%S
에이미브라운(엮음),그레그윌슨(엮음)
엮은이에이미브라운AmyBrown은워털루대학교에서수학으로학사를마쳤으며,소프트웨어산업에서10년동안근무했다.최근에는저술과책편집업무에종사하고있으며,때때로소프트웨어에관한책을다루기도한다.토론토에서자녀두명과아주나이먹은고양이와함께살고있다.
목차옮긴이의글서문1장CMake1.1CMake역사와요구사항1.2CMake의구현방식1.3교훈2장LLVM2.1빠르게살펴보는고전적컴파일러설계방식2.2기존구현사례들2.3LLVMIR2.4LLVM에서의3단계컴파일러설계구현2.5이식이용이한LLVM코드생성기의설계2.6그밖의흥미로운기능들2.7회고와향후방향3장NoSQL생태계3.1NoSQL이란?3.2NoSQL의데이터와질의모델3.3데이터내구성(Durability)3.4스케일링을통한성능향상3.5일관성3.6마치며4장VTK4.1VTK란무엇인가?4.2아키텍처4.3회고와앞으로의기대5장그래파이트(Graphite)5.1데이터베이스라이브러리:시계열데이터를저장5.2백엔드:그저저장소서비스일뿐5.3프론트엔드:온디멘드그래프5.4대시보드5.5뻔했던병목지점5.6입출력최적화5.7실시간성회복5.8커널과캐시그리고대재앙5.9클러스터링5.10회고5.11오픈소스6장리악(Riak)과얼랭/OTP(Erlang/OTP)6.1간략한얼랭소개6.2프로세스뼈대6.3OTP비헤이비어6.4다른작업자비헤이비어들6.5관리자6.6리악에서의복사와통신6.7결론과교훈7장머큐리얼(Mercurial)7.1버전관리의간략사7.2데이터구조7.3버전관리구조7.4일반구조7.5부가기능7.6교훈8장바이올렛(Violet)8.1바이올렛소개8.2그래프프레임워크8.3JavaBeans프로퍼티의사용8.4장기저장8.5JavaWebStart8.6Java2D8.7자체구현한스윙프레임워크8.8Undo/Redo8.9플러그인구조8.10결론9장배시(Bourne-AgainShell,Bash)9.1서론9.2구문단위와기본형9.3입력처리9.4구문분석9.5단어확장9.6명령실행9.7교훈9.8마치며10장버클리DB(BerkeleyDB)10.1버클리DB의시작10.2아키텍처살펴보기10.3액세스메서드들:Btree,Hash,Recno,Queue10.4라이브러리인터페이스레이어10.5내부컴포넌트10.6버퍼관리자:Mpool10.7로크(lock)관리자10.8로그관리자10.9트랜잭션관리자10.10마무리11장비스트레일스(VisTrails)11.1시스템개요11.2프로젝트의역사11.3비스트레일스의내부11.4구성요소와기능11.5교훈12장센드메일(Sendmail)12.1옛날옛적에…12.2설계원칙12.3개발단계12.4설계결정12.5다른고려사항12.6보안12.7센드메일의진화12.8지금이라면어떻게했을까?12.9결론13장셀레늄웹드라이버(SeleniumWebDriver)13.1역사13.2용어정리13.3프로젝트의원칙들13.4복잡성과상대하기13.5자바스크립트라이브러리의계층구조13.6원격드라이버,특히파이어폭스13.7IE드라이버13.8웹드라이버RC13.9회고13.10향후전망14장소셜캘크(SocialCalc)14.1WikiCalc14.2소셜캘크14.3명령어실행루프14.4테이블편집기14.5저장포맷14.6리치텍스트편집14.7실시간협업14.8교훈15장스노우플록(SnowFlock)15.1스노우플록개요15.2VM복제15.3스노우플록의접근법15.4아키텍처VM설명자15.5부모측컴포넌트15.6Clone-Side컴포넌트15.7VM복제애플리케이션인터페이스15.8결론16장애스터리스크(Asterisk)16.1주요아키텍처개념16.2애스터리스크컴포넌트추상화16.3스레드16.4통화시나리오16.5마지막설명17장오더시티(Audacity)17.1오더시티의구조17.2wxWidgetsGUI라이브러리17.3ShuttleGui레이어17.4TrackPanel17.5PortAudio라이브러리:녹음과재생17.6블록파일17.7스크립팅17.8실시간효과17.9요약18장웨스노스전투(BattleforWesnoth)18.1프로젝트개요18.2웨스노스마크업언어18.3웨스노스의유닛18.4웨스노스의다중사용자구현18.5결론19장이클립스(Eclipse)19.1초기의이클립스19.2이클립스3.0:런타임,RCP,로봇19.3이클립스3.419.4이클립스4.019.5결론20장지속적통합시스템(ContinuousIntegration)20.1배경20.2아키텍처20.3향후개선방향21장지트시(Jitsi)21.1지트시의설계21.2지트시와OSGi프레임워크21.3번들의패키징과실행21.4프로토콜제공자서비스21.5미디어서비스21.6사용자인터페이스서비스21.7교훈21.8감사의말22장천파섹(ThousandParsec)22.1우주제국22.2천파섹프로토콜22.3지원기능22.4교훈123장텔레파시(Telepathy)23.1텔레파시프레임워크의구성요소23.2Telepathy가D-Bus를사용하는방식23.3연결,채널그리고클라이언트23.4언어바인딩의역할23.5견고함23.6텔레파시확장하기:사이드카23.7연결관리자내부개요23.8얻은교훈24장파이썬패키징(PythonPackaging)24.1개요24.2파이썬개발자의부담24.3패키징의현재아키텍처24.4개선표준24.5구현상세24.6교훈24.7레퍼런스및기여자25장하둡분산파일시스템(HadoopDistributedFileSystem)25.1개요25.2아키텍처25.3파일I/O작업및복제본관리25.4야후!의사례25.5교훈25.6고마운분들참고자료
출판사서평프로그래밍은평생에걸친수련이필요하다.하지만,프로그래밍자체는소프트웨어아키텍처설계와는별개의문제다.많은프로그래머가보다큰규모의설계이슈에대해몇년에걸쳐생각하고씨름한다.그런데개별프로그래머들은역사적으로뚜렷한족적을남긴프로그램들을접하거나,노련한업계종사자들이해당프로그램들에대해작성한평가를읽을기회가거의없었다.그결과로서로의장점과성공을계승하지못하고서로동일한실수를계속반복해왔다.이책은이런현상을고쳐보고자하는노력의일환이다.각장은오픈소스...프로그래밍은평생에걸친수련이필요하다.하지만,프로그래밍자체는소프트웨어아키텍처설계와는별개의문제다.많은프로그래머가보다큰규모의설계이슈에대해몇년에걸쳐생각하고씨름한다.그런데개별프로그래머들은역사적으로뚜렷한족적을남긴프로그램들을접하거나,노련한업계종사자들이해당프로그램들에대해작성한평가를읽을기회가거의없었다.그결과로서로의장점과성공을계승하지못하고서로동일한실수를계속반복해왔다.이책은이런현상을고쳐보고자하는노력의일환이다.각장은오픈소스소프트웨어의아키텍처를설명한다.전체구성은어떻고,각하부구조는어떻게상호동작하며,왜그런방식으로구축하게되었으며,다른대규모설계문제에적용될수있는교훈은어떤것들이있었는지말이다.각해설은해당소프트웨어를잘아는,복잡한애플리케이션을설계하고다시재설계하는작업을길게는수십년에걸쳐수행해온전문가들이저술했다.각애플리케이션은간단한드로잉프로그램에서부터,웹기반스프레드시트,컴파일러툴킷,그리고수백만라인에이르는시각화패키지등매우다양한분야를아우르고있다.일부는몇년밖에되지않은반면,어떤것은30주년을바라보는애플리케이션이다.하지만이책을저술한43명의필진모두가공통적으로가지고있는바람인,각시스템제작자들이설계에대해오랫동안열심히고민해왔고그결과를독자와자발적으로공유하고싶다는기대로엮어졌다.하둡과같은분산시스템에서부터bash와같은셸에이르기까지다양한대상들을다루고있는만큼,각챕터마다설명하는방식들도개성이뚜렷하다.하지만,작업한대상의얼개를설명할때어떤내용들을중심으로설명하고어떤내용들을생략했는지,그리고설계할때어떤부분을고민했으며그에따르는장단점이어떤것이었는지등을살펴보면흥미로울듯하다.특히센드메일(Sendmail)이나bash와같이오랜역사를가지고있는소프트웨어들의경우시간이흐름에따라어떤부분이유지되었고어떤부분이변경되었는지,새로만든다면다르게접근하고싶은부분은어떤것인지등에대한설명을듣는것도쉽게접하기어려운부분이다.