| 000 | 00943namccc200289 k 4500 | |
| 001 | 000045398319 | |
| 005 | 20100806112631 | |
| 007 | ta | |
| 008 | 071108s2007 ulka b 001a kor | |
| 020 | ▼a 9788979145144 ▼g 93000 | |
| 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 2007s1 | |
| 100 | 1 | ▼a Goodliffe, Pete ▼0 AUTH(211009)64613 |
| 245 | 1 0 | ▼a Code Craft : ▼b 뛰어난 코드 작성을 위한 실천 지침 / ▼d 피트 구들리프 지음 ; ▼e 김윤명 옮김. |
| 246 | 0 3 | ▼a 읽기 쉽고 매력적이며 재미있는 코드 개발의 지혜들 : 장인의 실수와 경험을 통해 배운다 |
| 246 | 1 9 | ▼a Code Craft |
| 260 | ▼a 서울 : ▼b 한빛미디어 , ▼c 2007. | |
| 300 | ▼a 752 p. : ▼b 삽도 ; ▼c 26 cm. | |
| 504 | ▼a 참고문헌(p. 733-737) 및 색인수록 | |
| 650 | 0 | ▼a Computer programming. |
| 650 | 0 | ▼a Programming languages (Electronic computers) |
| 650 | 0 | ▼a Computer software ▼x Development. |
| 700 | 1 | ▼a 김윤명 , ▼e 역 |
| 945 | ▼a KINS |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 중앙도서관/제2자료실(3층)/ | 청구기호 005.1 2007s1 | 등록번호 111446703 (5회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2007s1 | 등록번호 121159238 (5회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 3 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2007s1 | 등록번호 121159239 (11회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 중앙도서관/제2자료실(3층)/ | 청구기호 005.1 2007s1 | 등록번호 111446703 (5회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2007s1 | 등록번호 121159238 (5회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2007s1 | 등록번호 121159239 (11회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
모든 프로그래머는 뛰어난 코드를 만들고자 하며 장인이 되고자 한다. 그러나 그 길은 쉽지 않다. 단지 '기술적인 능력'만 배워서는 안 되기 때문이다. 열정, 전략, 문제 해결 능력 등 여러 가지 복합적 능력이 잘 조화를 이루어야 뛰어난 코드를 만들 수 있다.
저자는 다년간의 실무경험을 바탕으로 훌륭한 프로그래머를 위한 훈련 코스를 만들었다. 단계별로 밟아갈 수도 있고 원하는 부분만 읽어도 충분히 관련 지식을 습득할 수 있도록 구성하였다. 구체적인 코드 작성을 논하는 기술적인 측면뿐만 아니라 열정이나 가치관과 같은 심리적 측면 그리고 조직적인 관리와 같은 공학적인 측면까지 폭넓게 다루면서 신출내기 프로그래머를 넘어서 훌륭한 프로그래머로서 갖추어야 할 것들을 제시한다.
프로그래머의 습관이나 사고방식 그리고 주변의 문제들을 돌아보고 단점을 고칠 수 있도록 해주는 수많은 문제들도 훌륭한 프로그래머로 거듭나는 데 도움을 준다.
읽기 쉽고 매력적이며 재미있는 코드 개발의 지혜들: 장인의 실수와 경험을 통해 배운다.
뛰어난 코드 작성을 위해서는 '기술적인 능력' 이상의 것이 필요합니다.
모든 프로그래머는 뛰어난 코드를 만들고자 합니다. 장인이 되고자 합니다. 그러나 그 길은 쉽지가 않습니다. 단지 '기술적인 능력'만 배워서는 안 되기 때문입니다. 열정이 있어야 하고 전략이 있어야 하며 문제 해결 능력 등 여러 가지 복합적 능력이 잘 조화를 이루어야 뛰어난 코드를 만들 수 있습니다.
현장 경험이 풍부한 저자는 다년간의 실무경험을 바탕으로 훌륭한 프로그래머를 위한 훈련 코스를 만들었습니다. 단계별로 밟아갈 수도 있고 원하는 부분만 읽어도 충분히 관련 지식을 습득할 수 있도록 구성하였습니다. 구체적인 코드 작성을 논하는 기술적인 측면뿐만 아니라 열정이나 가치관과 같은 심리적 측면 그리고 조직적인 관리와 같은 공학적인 측면까지 폭넓게 다루면서 신출내기 프로그래머를 넘어서 훌륭한 프로그래머로서 갖추어야 할 것들을 제시합니다.
프로그래머의 습관이나 사고방식 그리고 주변의 문제들을 돌아보고 단점을 고칠 수 있도록 해주는 수많은 문제들도 훌륭한 프로그래머로 거듭나는 데 큰 도움을 줄 것입니다.
주요 내용
튼튼한 코드를 위한 방어적 프로그래밍 테크닉
소스 코드의 레이아웃과 프레젠테이션
중요한 것에 의미 있는 이름 붙이기
코멘트를 작성하는 방법
피할 수 없는 운명 다루기
코드 안의 에러 상황
소프트웨어 구축에 툴 사용하기
코드 테스트라는 마술
디버깅: 무언가 잘못 돌아갈 때 해야 할 일
소스 코드를 실행 코드로 바꾸는 메커니즘
프로그램의 최적화와 효율적인 코드의 작성
안전한 프로그램 작성하기
바람직한 소프트웨어 설계를 하는 방법
소프트웨어 설계의 토대 쌓기
코드는 어떻게 성장할까?
프로그래밍에 대한 올바른 태도와 접근 방법 기르기
팀워크와 개인 프로그래머
소스 컨트롤과 셀프-컨트롤
소프트웨어 규격서 작성하기
코드 리뷰 수행하기
소프트웨어 소요 시간 추정이라는 마술
코드 개발 방법론과 프로세스
"너무 많은 프로그래머들이 부서지기 쉬운 블록탑처럼 코드를 작성합니다. 갑자기 기반을 살짝 찌르면 전체가 무너집니다. 코드는 층층이 지어지는 것입니다. 그러니까 한 층 위에 다른 층을 건축할 수 있도록 각 층을 완전하게 만드는 확실한 테크닉이 필요합니다."
- 1장 "방어하기"에서
어떤 독자를 위한 책인가?
자기 코드의 질을 향상시키고 싶어하는 프로그래머
모든 프로그래머는 나은 프로그래머가 되고 싶어 하는 포부를 가져야 합니다. 만약 그런 포부가 없다면 이 책은 당신을 위한 것이 아닙니다. 일을 시작한지 몇 년이 지난 직업적인 프로그래머일 수도 있고, 프로그래밍 개념에는 익숙하지만 최적으로 응용하는 방법을 모르는 학생일수도 있습니다.
이 책을 읽는 독자는 반드시 프로그래밍을 해본 경험이 있어야 합니다.
이 책은 프로그램의 작성 방법은 가르쳐주지 않습니다. 프로그램을 더 잘 작성하는 방법만 가르쳐줄 것입니다. 특정 언어에 치우치거나 독단적인 주장을 하는 일을 피하려고 노력했지만, 코드 예제를 보여주어야 할 필요는 있었습니다. 그런 코드는 대부분 C, C++, Java로 쓰였는데, 그 이유는 이 언어들이 현재 인기 있는 언어이기 때문입니다. 이 중 어느 것도 대단한 전문 지식이 있어야만 읽을 수 있는 것은 아닙니다. 따라서 꼭 C++에 능통한 프로그래머가 아니더라도 두려워할 필요가 없습니다.
정보제공 :
저자소개
피트 구들리프(지은이)
프로그래머이자 소프트웨어 개발 칼럼니스트이고, 음악가이며 작가다. 소프트웨어 업계에서 그는 특정 영역에 머무르지 않는다. OS 개발부터 오디오 코덱, 멀티미디어 애플리케이션, 임베디드 펌웨어, iOS 애플리케이션 개발, 데스크톱 애플리케이션 개발에 이르기까지 그의 손이 닿지 않은 곳이 드물다. ‘더 나은 프로그래머 되기’라는 칼럼을 매거진에 기고하고 있고, 다양한 소프트웨어 개발 서적의 저술에 참가했으며, 정기적으로 소프트웨어 개발 주제에 대한 발표를 진행 중이다.
김윤명(옮긴이)
이화여대 컴퓨터학과를 졸업하고 캐나다 토론토에서 개발자로 근무하였다. 귀국하여 현재 글로벌잉글리쉬에서 테스트 엔지니어로 근무하고 있으며, 「소프트웨어 테스팅, 마이크로소프트에서는 이렇게 한다」를 번역하였다.
목차
목차 역자 서문 = 4 저자 서문 = 6 감사의 글 = 15 Code Craft에 보내는 찬사 = 16 1부 코드와 마주보기 01. 방어하기 - 튼튼한 코드를 작성하기 위한 방어적 프로그래밍 테크닉 = 37 훌륭한 코드를 향해서 = 38 최악을 가정하라 = 39 방어적 프로그래밍이란? = 40 험한 세상 = 43 방어적 프로그래밍을 위한 테크닉 = 44 제약 = 54 간추림 = 59 참고 = 60 생각해 봅시다 = 61 02. 최고의 레이아웃 계획 - 소스 코드의 레이아웃과 프레젠테이션 = 63 정말 그게 중요해? = 64 누가 읽을 것인지 알아야 = 65 좋은 프레젠테이션이란? = 66 중괄호 위치 정하기 = 67 모두를 지배하는 하나의 스타일 = 72 하우스 스타일(그리고 어디에 붙여놓을 것인가) = 72 표준 정하기 = 75 정당한 전쟁이라고? = 78 간추림 = 79 참고 = 81 생각해 봅시다 = 82 03. 이름이 뭐길래 - 중요한 것에 의미 있는 이름 붙이기 = 85 왜 이름을 잘 붙여야 하나? = 87 우리는 무엇에 이름을 붙이는가? = 88 이름 붙이기 = 88 세세한 실무 = 91 장미는 다른 이름으로 불리어도 = 99 간추림 = 103 참고 = 104 생각해 봅시다 = 104 04. 문서화 도구 - "스스로-문서화하는" 코드 작성 테크닉 = 107 스스로-문서화하는 코드 = 109 스스로-문서화하는 코드 작성 테크닉 = 112 스스로-문서화하는 코드 작성의 실무 방법론 = 118 간추림 = 123 참고 = 124 생각해 봅시다 = 124 05. 가벼운 코멘트 - 코멘트를 작성하는 방법 = 127 코멘트란 무엇인가? = 128 코멘트는 어떻게 생겼는가? = 129 얼마나 많은 코멘트가 필요할까? = 129 코멘트 안에는 무엇이 들어갈까? = 130 실무에서는 = 135 코멘트의 미학 = 136 코멘트 가지고 일하기 = 142 간추림 = 144 참고 = 145 생각해 봅시다 = 146 06. 사람은 실수를 하기 마련 - 피할 수 없는 운명 다루기 - 코드 안의 에러 상황 = 149 어디에서 나왔나? = 150 에러 리포트 메커니즘 = 152 에러 감지하기 = 157 에러 처리하기 = 159 에러 일으키기 = 168 에러 관리하기 = 170 간추림 = 171 참고 = 172 생각해 봅시다 = 172 2부 코드의 비밀스러운 일생 07. 프로그래머의 도구 상자 - 소프트웨어 구축에 툴 사용하기 = 177 소프트웨어 툴이란? = 178 왜 툴 걱정을 해야 하지? = 180 파워 툴 = 182 어느 툴을 선택할까? = 185 간추림 = 197 참고 = 198 생각해 봅시다 = 198 08. 시험 보는 시간 - 코드 테스트라는 마술 = 201 현실 체크 = 202 누가, 무엇을, 언제, 왜? = 205 테스트는 어렵지 않다... = 208 테스트의 유형 = 213 단위 테스트 케이스 선택하기 = 218 테스트를 위한 설계 = 220 손 놓고도 할 수 있어! = 221 고장과 직면해서 = 223 결함의 관리 = 224 간추림 = 227 참고 = 228 생각해 봅시다 = 228 09. 결함 찾기 - 디버깅: 무언가 잘못 돌아갈 때 해야 할 일 = 231 인생의 진실 = 232 버그의 본성 = 233 버그 박멸 = 240 버그 사냥 = 242 결함을 고치는 방법 = 249 버그 예방법 = 251 말벌 스프레이, 달팽이 살충제, 파리 끈끈이... = 251 간추림 = 254 참고 = 256 생각해 봅시다 = 256 10. 잭이 빌드한 코드 - 소스 코드를 실행 코드로 바꾸는 메커니즘 = 259 언어 장벽 = 260 두꺼비집으로 산 만들기 = 264 빌드를 빌드하기 = 268 좋은 빌드 시스템을 만드는 요소는? = 270 작동 메커니즘 = 274 릴리즈 빌드 = 281 만물박사 빌드마스터 = 283 간추림 = 284 참고 = 285 생각해 봅시다 = 285 11. 속도의 필요성 - 프로그램의 최적화와 효율적인 코드의 작성 = 287 최적화란 무엇인가? = 288 코드의 최적화를 막는 것은? = 290 왜 최적화가 안 되나? = 291 왜 최적화를 하는가? = 294 세세한 실무 = 295 최적화 테크닉 = 300 효율적인 코드 작성하기 = 309 간추림 = 311 참고 = 312 생각해 봅시다 = 313 12. 불안전 콤플렉스 - 안전한 프로그램 작성하기 = 315 위험 = 316 반대편 = 319 변명, 변명 = 322 취약점의 감지 = 322 안전을 위해서라면 = 326 간추림 = 332 참고 = 332 생각해 봅시다 = 333 3부 코드의 모습 13. 웅대한 설계 - 바람직한 소프트웨어 설계를 하는 방법 = 339 설계로서의 프로그래밍 = 340 우리는 무엇을 설계하는가? = 341 무엇을 위한 소동이지? = 343 좋은 설계 = 343 코드를 설계하는 방법 = 354 간추림 = 359 참고 = 360 생각해 봅시다 = 361 14. 소프트웨어 아키텍처 - 소프트웨어 설계의 토대 쌓기 = 363 소프트웨어 아키텍처란? = 364 좋은 아키텍처란? = 371 아키텍처 스타일 = 373 간추림 = 381 참고 = 381 생각해 봅시다 = 382 15. 소프트웨어의 진화 또는 혁명? - 코드는 어떻게 성장할까? = 385 소프트웨어의 부패 = 386 경고 신호 = 389 코드는 어떻게 성장하나? = 391 불가능한 것 믿기 = 394 우리가 할 수 있는 일은? = 395 간추림 = 399 참고 = 400 생각해 봅시다 = 401 4부 프로그래머의 무리? 16. 코드 멍키 - 프로그래밍에 대한 올바른 태도와 접근 방법 기르기 = 407 코드 멍키 주식회사 = 408 이상적인 프로그래머 = 424 그래서 뭐? = 425 변화하기 위해서는 = 426 간추림 = 427 액션 시트(Action Sheet) = 428 참고 = 429 생각해 봅시다 = 429 17. 여기 우리 함께 서 있네 - 팀워크와 개인 프로그래머 = 433 소프트웨어 개발팀 - 큰 그림 = 434 팀의 조직 = 436 팀워크를 위한 툴 = 439 팀이 걸리는 질병 = 441 좋은 팀워크에 도움이 되는 개인의 스킬과 성격 = 454 팀워크의 원칙 = 458 팀의 라이프 사이클 = 461 간추림 = 469 참고 = 470 액션 시트(Action Sheet) = 471 생각해 봅시다 = 472 18. 안전한 소스 습관 - 소스 컨트롤과 셀프 컨트롤 = 473 우리의 책임 = 474 소스 컨트롤 = 475 구성 관리 = 483 백업 = 485 소스 코드의 릴리즈 = 486 소스 코드를 어디에 두든 = 487 간추림 = 489 참고 = 490 생각해 봅시다 = 490 5부 프로세스의 일부 19. 규격화하기 - 소프트웨어 규격서 작성하기 = 495 규격서란 무엇인가? = 496 규격서의 유형 = 498 규격서가 포함해야 하는 것은? = 507 규격서 작성의 프로세스 = 509 우리가 규격서 작성을 안 하는 이유는? = 512 간추림 = 514 참고 = 515 생각해 봅시다 = 516 20. 사냥감 확인하기 - 코드 리뷰 수행하기 = 517 코드 리뷰란? = 518 언제 리뷰하나? = 520 코드 리뷰 실시하기 = 522 자신의 태도를 리뷰하라 = 528 완벽한 코드 = 529 코드 리뷰를 넘어서 = 531 간추림 = 531 참고 = 532 체크리스트 = 533 생각해 봅시다 = 534 21. 얼마나 걸릴까? - 소프트웨어 소요 시간 추정이라는 마술 = 535 눈감고 찍기 = 536 추정이 그렇게 어려운 이유는? = 538 압력 속에서 = 540 실무적인 추정 방법 = 541 계획 세우기 = 545 뒤처지지 마라! = 549 간추림 = 552 참고 = 553 생각해 봅시다 = 554 6부 정상으로부터의 조망 22. 프로그램의 요리법 - 코드 개발 방법론과 프로세스 = 559 프로그래밍 스타일 = 560 요리법: 어떻게 그리고 무엇을 = 565 개발 프로세스 = 566 이미 충분해! = 579 프로세스 고르기 = 580 간추림 = 581 참고 = 582 생각해 봅시다 = 583 23. 외적인 한계 - 여러 가지 프로그래밍 분야 = 585 애플리케이션 프로그래밍 = 586 게임 프로그래밍 = 590 시스템 프로그래밍 = 591 임베디드 프로그래밍 = 593 분산 프로그래밍 = 596 웹 애플리케이션 프로그래밍 = 598 엔터프라이즈 프로그래밍 = 600 수치 프로그래밍(numerical programming) = 601 그래서 뭐? = 603 간추림 = 603 참고 = 604 생각해 봅시다 = 605 24. 다음엔 어디서? - 끝이 좋으면 다 좋다 = 607 그러면 이젠 뭘 하지? = 608 답과 논의 = 611 참고문헌 = 733 찾아보기 = 738
