
000 | 00834namccc200277 k 4500 | |
001 | 000045412463 | |
005 | 20100806023705 | |
007 | ta | |
008 | 080103s2007 ulk 001a kor | |
020 | ▼a 9788979145380 | |
040 | ▼a 211009 ▼c 211009 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
082 | 0 4 | ▼a 005.1 ▼2 22 |
090 | ▼a 005.1 ▼b 2007s3 | |
245 | 0 0 | ▼a Beautiful Code : ▼b 38인의 코딩 명장들이 말하는 내 생애 가장 아름다운 코드 / ▼d 지은이: 찰스 페졸드 외 37인 ; ▼e 그레그 윌슨, ▼e 앤디 오럼 엮음 ; ▼e 옮긴이: 류광. |
260 | ▼a 서울 : ▼b 한빛미디어 , ▼c 2007. | |
300 | ▼a 736 p. ; ▼c 26 cm. | |
500 | ▼a 색인수록 | |
650 | 0 | ▼a Software engineering. |
700 | 1 | ▼a Petzlod, Charles |
700 | 1 | ▼a Wilson, Greg , ▼d 1963- , ▼e 편 |
700 | 1 | ▼a Oram, Andrew , ▼e 편 |
700 | 1 | ▼a 류광 , ▼e 역 |
900 | 1 1 | ▼a 유광 |
945 | ▼a KINS |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.1 2007s3 | Accession No. 121163233 | Availability Available | Due Date | Make a Reservation | Service |
No. 2 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.1 2007s3 | Accession No. 121163234 | Availability In loan | Due Date 2023-10-04 | Make a Reservation | Service |
Contents information
Book Introduction
38인의 코딩 명장들이 말하는 느리지만 우아한 그러나 감동적인 코딩 이야기. 책은 독자에게 탁월한 소프트웨어 설계자의 어깨 너머로, 그들의 눈을 통해서 세상을 바라볼 수 있는 기회를 제공한다. 또한 독자에게 코드의 아름다움에 대한 논의를 시작할 수 있는 계기를 만들어주고, 시작 논의의 전개에서 기초자료가 될 만한 다양한 현장 경험들을 제공한다.
책은 전세계의 저명한 프로그래머로 38인으로부터 기고 받은 원고를 엄선하여 33개의 챕터로 구성한 것으로 각각의 저자가 프로젝트를 수행해서 축적한 프로그래밍 노하우가 고스란히 녹아 있다. 38인의 프로그래머로 구성된 집필진으로부터 다양한 관점을 배울 수 있으며 38인이 꼽은 아름다운 코드를 통해, 코드 미학을 발견할 수 있다.
이 책은 독자에게 탁월한 소프트웨어 설계자의 어깨 너머로, 그들의 눈을 통해서 세상을 바라볼 수 있는 기회를 제공한다. 또한 독자에게 코드의 아름다움에 대한 논의를 시작할 수 있는 계기를 만들어주고, 시작 논의의 전개에서 기초자료가 될 만한 다양한 현장 경험들을 제공한다.
- 이 책은 전세계의 저명한 프로그래머로 38인으로부터 기고 받은 원고를 엄선하여 33개의 챕터로 구성한 것이다.
- 각각의 저자가 프로젝트를 수행해서 축적한 프로그래밍 노하우가 고스란히 녹아 있다.
- 38인의 프로그래머로 구성된 집필진으로부터 다양한 관점을 배울 수 있다.
- 38인이 꼽은 아름다운 코드를 통해, 코드 미학을 발견할 수 있다.
38인의 코딩 명장들이 말하는
느리지만 우아한 그러나 감동적인 코딩 이야기
이 책은 흔한 설계 패턴을 다루지 않는다. 또한 이건 옳고 저건 그르다고 가르치려 드는 식상한 소프트웨어 공학 책도 아니다. 대신 이 책은 독자 스스로 탁월한 소프트웨어 설계자의 어깨 너머로 그들의 눈을 통해서 세상을 바라볼 수 있는 기회를 제공한다. 전 세계에 있는 38인의 코딩 명장들은 소프트웨어 프로젝트의 아키텍처, 그 구축에서 결정해야 할 절충점들, 그리고 규칙을 깨는 것이 중요한 순간들에 대한 자신의 생각을 분명하게 전한다. 각 장마다 직면한 어려운 문제에 대한 느리지만 우아한 해법들을 설명하고, 그 해법들이 왜 매력적인지 이유를 밝히고 있다. 우리는 여러분이 매일 경험하는 다양한 프로젝트에서 이 책에서 말하는, 경계 너머를 내다보는, 다른 사람들이 간과한 요구들을 식별하고 까다로운 문제들에 대한 놀랄만한 해법을 발견하기를 기대한다. 해법이 이미 있다고 하더라도 더 나은 뭔가를 달성할 수 있는 새로운 전망과 확신을 찾아낼 수 있을 것이다.
Information Provided By: :

Author Introduction
류광(옮긴이)
주로 IT 분야 전문서를 옮기는 전업 번역가로, 《컴퓨터 프로그래밍의 예술(The Art of Computer Programming)》 시리즈와 《UNIX 고급 프로그래밍(Advanced Programming in UNIX Environment)》 제2판 및 제3판, 《Game Programming Gems》 시리즈를 포함해 80권 이상의 책을 번역했다. 현대적 C++ 관련 번역서로는 《필요한 것만 골라 배우는 모던 C++》, 《C++20: 풍부한 예제로 익히는 핵심 기능》, 《핵심 C++ 표준 라이브러리》, 《Effective Modern C++》 등이 있다. 홈페이지 류광의 번역 이야기(http://occamsrazr.net)와 게임 개발 정보 공유 사이트 GpgStudy(http://gpgstudy.com)를 운영한다.

Table of Contents
목차 역자서문 = 3 서문 = 6 소개 = 7 1장 정규 표현식 부합기 하나 / 브라이언 커니핸(Brian Kernighan) = 27 책 The Practice of Programming의 정규식 부합기 = 28 구현 = 30 논의 = 31 대안들 = 33 확장 = 34 결론 = 36 2장 서브버전의 델타 편집기:온톨로지로서의 인터페이스 / 칼포겔(Karl Fogel) = 39 버전 관리와 트리 변환 = 40 트리 차이의 표현 = 44 델타 편집기 인터페이스 = 45 그런데 이것이 예술일까? = 53 과도한 추상화의 위험 = 56 결론 = 59 3장 내가 결코 쓴 적이 없는 가장 아름다운 코드 / 존 벤틀리(Jon Bentley) = 61 내가 쓴 가장 아름다운 코드 = 62 적을수록 많다 = 63 분석 = 70 쓴다는 것이란? = 73 결론 = 73 감사의 글 = 75 4장 뭔가를 찾는다는 것 / 팀 브레이(Tim Bray) = 77 시간에 대해 = 78 문제: 웹로그 자료 = 78 문제: 누가 무엇을 언제 조회했는가? = 88 대규모 검색 = 94 결론 = 97 5장 정확하게, 아름답게, 빠르게(이 순서대로):XML 검증기 설계에서 배운 교훈들 / 엘리옷러스티 해럴드(Elliotte Rusty Harold) = 99 XML 검증의 역할 = 100 문제 = 100 버전 1: 소박한 구현 = 102 버전 2: BNF 문법 흉내내기 O(N) = 104 버전 3: 첫 번째 최적화O(logn N) = 106 버전 4: 두 번째 최적화 - 두 번 점검하지 않는다 = 107 버전 5: 세 번째 최적화O(1) = 110 버전 6: 네 번째 최적화 - 캐싱 = 115 이 이야기의 교훈 = 117 6장 FIT: 취약함에서 비롯된 아름다움 / 마이클 페더스(Michael Feathers) = 119 클래스 세 개로 된 승인 검사 프레임워크 = 120 프레임워크 설계의 난제 = 122 열린 프레임워크 = 124 놀랄 만큼 간단한 HTML 파서 = 126 결론 = 129 7장 아름다운 검사 / 알베르토 사보이아(Alverto Savoia) = 131 까다롭기로 유명한 이진 검색 = 133 JUnit 소개 = 136 이진 검색의 철저 검사 = 137 결론 = 152 8장 이미지 처리를 위한 즉석 코드 생성 / 찰스 페졸드(Charles Petzold) = 155 9장 하향식 연산자 우선순위 / 더글러스 크록포드(Douglas Crockford) = 183 JavaScript = 185 기호 테이블 = 186 토큰 = 187 우선순위 = 189 표현식 = 189 중위 연산자 = 190 전위 연산자 = 193 배정 연산자 = 194 상수 = 194 범위 = 195 문장 = 197 함수 = 201 배열 리터럴과 객체 리터럴 = 203 확장 및 개선 방안 = 204 10장 더 빠른 개체수 집계 방법을 찾아서 / 헨리 S. 워런(Henry S. Warren. Jr) = 205 기본적인 해법들 = 206 분할정복 = 208 다른 방법들 = 210 두 워드의 개체수의 합과 차 = 212 두 워드의 개체수 비교 = 213 배열의 1비트 세기 = 214 응용 = 219 11장 보안 통신: 자유의 기술 / 아시시 굴라티(Ashish Gulhati) = 223 전반적인 고려 사항 = 224 보안 메시징의 복잡성 파헤치기 = 226 핵심은 사용성 = 228 기반 구조 = 230 검사 모음 = 236 작동하는 프로토타입 = 237 정리, 통합, 실행 = 238 히말라야에서의 해킹 = 243 보이지 않는 손의 움직임 = 249 속도는 중요하다 = 251 인권을 위한 통신 사생활권 = 252 문명의 해킹 = 254 12장 BioPerl로 아름다운 코드 키우기 / 링컨 스타인(Lincoln Stein) = 257 BioPerl과 Bio::Graphics 모듈 = 258 Bio::Graphics의 설계 과정 = 263 Bio::Graphics의 확장 = 286 결론 및 교훈 = 291 13장 Gene Sorter의 설계 / 짐 켄트(Jim Kent) = 293 Gene Sorter의 사용자 인터페이스 = 295 웹 사용자용 대화상자 정보의 유지 = 296 C에서 다형성 구현하기 = 298 관련 유전자만 분류하기 = 302 큰 관점에 본 아름다운 코드 = 303 결론 = 307 14장 하드웨어와 함께 진화하는 우아한 코드: 가우스 소거법의 예 / 잭 동개러(Jack Dongarra) ; 표트르 루시체크(Piotr Luszczek) = 309 컴퓨터 아키텍처가 행렬 알고리즘에 미치는 영향 = 310 분해 접근방식 = 312 간단한 버전 = 313 LINPACK의 DGEFA 서브루틴 = 316 LAPACK의 DGETRF 서브루틴 = 319 재귀적인 LU 분해 = 322 ScaLAPACK의 PDGETRF = 325 다중코어 시스템을 위한 다중 스레딩 = 331 오차 해석과 연산 횟수에 대해 = 334 향후 연구 방향 = 335 더 읽을거리 = 336 15장 아름다운 설계의 장기 이득 / 애덤 콜라와(Adam Kolawa) = 339 내가 생각하는 아름다운 코드 = 339 CERN 라이브러리에 대해 = 340 외면의 미 = 341 내면의 미 = 348 결론 = 355 16장 Linux커널 드라이버 모형: 협업의 장점 / 그레그 크로아-하트먼(Greg Kroah-Hartman) = 357 소박한 시작 = 359 더욱 작은 조각들로 줄이기 = 364 장치 수천 개로의 규모 확장 = 368 느슨하게 결합된 작은 객체들 = 369 17장 또 다른 수준의 간접층 / 디오미디스 스피넬리스(Diomidis Spinellis) = 371 코드에서 포인터로 = 372 함수 인수에서 인수 포인터로 = 374 파일시스템에서 파일시스템 계층으로 = 379 코드에서 영역 국한 언어로 = 381 멀티플렉싱과 디멀티플렉싱 = 383 끝없는 계층들 = 385 18장 파이썬의 사전 구현: 모든 이를 위한 범용 자료구조 만들기 / 앤드루 커츨링(Andrew Kuchling) = 387 사전의 내부 = 389 특별한 수단들 = 391 충돌 = 393 크기 변경 = 395 반복과 동적 변경 = 396 결론 = 397 감사의 글 = 397 19장 NumPy의 다차원 반복자 / 트래비스 E. 올리펀트(Travis E. Oliphant) = 399 N차원 배열 연산의 주된 난제들 = 400 N차원 배열에 대한 메모리 모형 = 402 Humpy 반복자의 기원 403 반복자 설계 = 404 반복자 인터페이스 = 411 반복자의 용례 = 413 결론 = 417 20장 NASA의 화상 탐사 로버 임무를 위한 고신뢰성 전사적 시스템 / 로널드 맥(Ronald Mak) = 419 화성 탐사 임무와 CIP = 420 임무 요구사항 = 422 시스템 아키텍처 = 423 사례 연구: 스트리머 서비스 = 426 신뢰성 = 430 안정성 = 439 결론 = 442 21장 ERP5: 최대의 적응성을 위한 설계 / 호제리우 아템 데 카르발류(Rogerio Atem de Carvalho) ; 하파엘 모네라트(Rafael Monnerat) = 443 ERP의 전반적인 목표들 = 444 ERP5 = 444 기반 Zope 플랫폼 = 446 ERP5 Project의 개념들 = 451 ERP5 Project의 코딩 = 453 결론 = 457 감사의 글 = 458 22장 구정물 한 숟갈 / 브라이언 캔트릴(Bryan Cantrill) = 459 23장 MapReduce를 이용한 분산 프로그래밍 / 제프리 딘(Jeffrey Dean) ; 산자이 게마와트(Sanjay Ghemawat) = 481 동기 유발 문제 = 481 MapReduce 프로그래밍 모형 = 485 다른 MapReduce 예제들 = 486 분산 MapReduce 구현 = 488 모형의 확장 = 492 결론 = 493 더 읽을거리 = 493 감사의 글 = 494 부록: 단어 집계 프로그램 = 494 24장 아름다운 병행성 / 사이먼 페이턴 존스(Simon Peyton Jones) = 497 간단한 예: 은행 계좌 = 498 소프트웨어 트랜잭션 메모리 = 501 산타클로스 문제 = 511 Haskell에 대한 고찰 = 521 결론 = 522 감사의 글 = 523 25장 구문적 추상: syntax-case 확장기 / R. 켄트 디빅(R. Kent Dybvig) = 525 syntax-case의 간략한 소개 = 530 확장 알고리즘 = 533 예제 = 548 결론 = 551 26장 노동 절감 아키텍처: 네트워크 소프트웨어를 위한 객체지향적 프레임워크 / 월리엄 R. 오트(William R. Otte) ; 더글러스 C. 슈미트(Douglas C. Schmidt) = 553 예제 응용프로그램: 로깅 서버 = 555 로깅 서버 프레임워크의 객체지향적 설계 = 558 순차적 로깅 서버의 구현 = 565 병행적 로깅 서버의 구현 = 570 결론 = 577 27장 협력사들을 REST 방식으로 통합하기 / 앤드루 페이처(Andrew Patzer) = 579 프로젝트의 배경 = 580 서비스들을 외부 클라이언트들에게 노출 = 581 공장 패턴을 이용한 서비스 분배 = 585 e-비즈니스 프로토콜들을 이용한 자료 교환 = 587 결론 = 593 28장 아름다운 디버깅 / 안드레아스 첼러(Andreas Zeller) = 595 디버거를 디버깅하기 = 596 체계적인 디버깅 공정 = 598 검색 문제 = 600 실패 원인을 자동으로 찾기 = 601 델타 디버깅 = 603 입력의 최소화 = 606 결함 찾기 = 607 프로토타입 문제 = 610 결론 = 610 감사의 글 = 611 더 읽을거리 = 611 29장 에세이 같은 코드 / 유키히로 마쓰모토(Yukihiro Matsumoto) = 613 30장 버튼 하나로 세상과 소통하기 / 아룬메타(Arun Mehta) = 619 기본적인 설계 모형 = 621 입력 인터페이스 = 624 사용자 인터페이스의 효율성 = 640 다운로드 = 640 향후 방향 = 641 31장 Emacspeak: 완비된 음향 데스크톱 / 레이먼(T. V. Raman) = 643 음성 출력의 생성 = 644 Emacs의 음성 가능화 = 646 온라인 정보에 손쉽게 접근하기 = 659 요약 = 667 감사의 글 = 670 32장 살아 움직이는 코드 / 로라 윈저드(Laura Wingerd) ; 크리스토퍼 세이월드(Christopher Seiwald) = 671 "책처럼" 만들기 = 673 비슷한 것은 비슷하게 = 674 들여 쓰기의 위험 = 675 코드 내비게이션 = 677 우리가 사용하는 도구들 = 678 DiffMerge의 파란만장한 과거 = 680 결론 = 682 감사의 글 = 683 더 읽을 거리 = 683 33장 "그 책"에 실릴 프로그램 짜기 / 브라이언 헤이스(Brian Hayes) = 685 왕도는 없다 = 686 Lisp에 대해 = 687 동일 선상의 세 점 = 687 기울기 비교 = 691 삼각 부등식 = 692 굽이치는 강물 = 694 "어?"에서 "아하"로 = 696 결론 = 698 더 읽을거리 = 699 후기 = 701 필진 = 702 찾아보기 = 713