
000 | 00637namccc200229 4500 | |
001 | 000045169898 | |
005 | 20100806021552 | |
007 | ta | |
008 | 050510s2005 ulk 001a kor | |
020 | ▼a 8956742561 | |
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 2005c | |
100 | 1 | ▼a McConnell, Steve. |
245 | 1 0 | ▼a CODE complete: ▼b 소프트 구현에 대한 실무서 / ▼d Steve McConnell 저 ; ▼e 서우석 역 ; ▼e 김도균 감수. |
260 | ▼a 서울 : ▼b 정보문화사 , ▼c 2005. | |
300 | ▼a 1181 p. ; ▼c 24 cm. | |
500 | ▼a 색인수록 | |
700 | 1 | ▼a 서우석 , ▼e 역 |
700 | 1 | ▼a 김도균 , ▼e 감수 |
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 2005c | Accession No. 121107097 | Availability Available | Due Date | Make a Reservation | Service |
No. 2 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 005.1 2005c | Accession No. 151181835 | Availability Available | Due Date | Make a Reservation | Service |
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 2005c | Accession No. 121107097 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 005.1 2005c | Accession No. 151181835 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
Jolt상 두 번 수상에 빛나는 최고의 프로그래밍 실무 지침서
10년이 넘는 기간 동안 개발자들이 더 나은 소프트웨어를 만드는 데 도움을 주었던 최고의 프로그래밍 실무 지침서, 제2판. 소프트웨어 구현에 대한 예술과 과학을 설명하기 위해서 최신의 기법들과 수백 개의 새로운 예제 코드가 포함되어 개정되었다.
기초 수립, 고급 코드 생성, 변수, 명령문, 코드 향상, 시스템 고려사항, 소프트웨어 장인정신 등 더 나은 소프트웨어를 만드는 데 도움이 되는 내용들이 담고 있으며, 실무 경험이나 개발 환경, 또는 프로젝트의 크기에 상관없이, 도움이 되는 정보를 제공한다.
복잡성은 최소화하고 창조성은 최대화할 수 있는 설계 방법, 오류를 줄이고 찾아내기 위한 방어적인 프로그래밍 기법, 리팩토링 가능한 코드를 만들고 안전하게 수행하는 방법, 그리고 치명적인 구현 상의 문제점을 초기에 정확하게 해결하는 방법 등에 대한 지혜를 얻을 수 있다.
Information Provided By: :

Author Introduction
스티브 매코널(지은이)
20개 언어로 번역되어 전 세계적으로 백만 부 이상 팔린 베스트셀러 저자이자 컨스트럭스 소프트웨어Construx Software의 CEO이다. 저서《Code Complete 코드 컴플리트》는 역사상 가장 많이 팔린 소프트웨어 개발 서적으로 IT 업계의 아카데미로 비견되는 졸트상을 받았다. 개인, 팀, 조직의 전문성을 향상시켜 소프트웨어 프로젝트를 성공으로 이끄는 데 열정적이다. 컨스트럭스 소프트웨어에서 보다 효과적인 소프트웨어 개발 사례에 중점을 둔 교육 프로그램을 개발하며 컨설팅과 코칭을 제공하고 있다. 저서로《Rapid Development 프로젝트 쾌속 개발 전략》《소프트웨어 프로젝트 생존 전략》《Professional 소프트웨어 개발》《Software Estimation 소프트웨어 추정》등이 있다. ‘애자일’이 아니라 ‘효과가 있는 것’을 지지하며 ‘증거도 없이 과하게 약속하는 것’에 반대한다. 이 책에서는 애자일을 그 효과와 상호작용을 검증할 수 있는, 구체적인 경영 기법과 기술적인 실천으로 다뤘다. www.stevemcconnell.com stevemcc@construx.com
서우석(옮긴이)
GSShop 벤처투자팀에서 기업 성장(Growth Hacking)을 담당하고 있으며, 안철수연구소에서 보안 관련 업무를 시작으로 잡플래닛 CTO, 요기요 서비스로 유명한 알지피코리아 CTO, 데일리호텔 CTO를 역임한, 보안 전문가이자 IT 베테랑이다. Microsoft MVP 활동과 S/W Maestro 과정 멘토링, 디버그랩 운영을 통해 국내 IT 개발자들과 프로그래밍 기술을 공유하고 프로그래밍 실무 지침서로 유명한 ≪CODE COMPLETE≫ 제2판을 번역해 소프트웨어 구현 실무 정보 소개로 많은 호응을 받았다. 현재는 O2O 기반의 IT 서비스 전문가로서 이커머스 운영 및 수익 창출에 대한 지식 나눔에 앞장서고 있다.

Table of Contents
목차 서문 = 28 Part 1 기초 수립 Chapter 1 소프트웨어 구현으로의 초대 = 39 1.1 소프트웨어 구현이란 무엇인가? = 40 1.2 소프트웨어 구현이 중요한 이유는 무엇인가? = 44 1.3 이 책을 읽는 방법 = 46 요점 정리 = 46 Chapter 2 소프트웨어 개발의 이해를 돕기 위한 비유 = 47 2.1 비유의 중요성 = 48 2.2 소프트웨어 비유의 사용 방법 = 51 2.3 일반적인 소프트웨어 비유 = 53 참고 자료 = 62 요점 정리 = 63 Chapter 3 준비는 철저하게 : 선행 조건 = 65 3.1 선행 조건의 중요성 = 67 3.2 소프트웨어의 종류 결정 = 76 3.3 문제-정의 선행 조건 = 82 3.4 요구 사항 선행 조건 = 84 3.5 아키텍처 선행 조건 = 90 3.5 선행 조건에 소요되는 시간 = 105 참고 자료 = 106 요점 정리 = 110 Chapter 4 구현 시 결정해야 할 핵심적인 사항들 = 113 4.1 프로그래밍 언어 선택 = 114 4.2 프로그래밍 규약 = 120 4.3 기술적인 흐름의 파악 = 121 4.4 주요 구현 방법론의 선택 = 124 요점 정리 = 125 Part 2 고급 코드 생성하기 Chapter 5 구현 설계 = 129 5.1 설계의 문제점 = 131 5.2 설계의 핵심 개념 = 135 5.3 빌딩 블록의 설계 : 발견적 학습 = 148 5.4 설계 방법 = 180 5.5 유명한 방법론에 대한 의견 = 190 참고 자료 = 191 요점 정리 = 196 Chapter 6 클래스 다루기 = 197 6.1 클래스 기초 : 추상 데이터 형(ADT) = 199 6.2 좋은 클래스 인터페이스 = 208 6.3 설계와 구현 문제 = 222 6.4 클래스를 작성하는 이유 = 234 6.5 언어에 따른 문제 = 239 6.6 클래스를 넘어서 : 패키지 = 240 참고 자료 = 243 요점 정리 = 244 Chapter 7 고급 루틴 = 245 7.1 루틴을 작성하는 타당한 이유 = 249 7.2 루틴 수준에서의 설계 = 255 7.3 좋은 루틴 이름 = 259 7.4 루틴의 길이에 대한 문제 = 262 7.5 루틴의 매개변수를 사용하는 방법 = 264 7.6 함수 사용 시 특별히 고려해야 할 사항들 = 272 7.7 매크로 루틴과 인라인 루틴 = 274 요점 정리 = 278 Chapter 8 방어적인 프로그래밍 = 279 8.1 타당하지 않은 입력으로부터 프로그램의 보호 = 281 8.2 어설션(Assertion) = 283 8.3 오류 처리 기법 = 289 8.4 예외 = 293 8.5 오류에 의해서 발생하는 손해를 막기 위한 방책 = 300 8.6 디버깅 보조 도구 = 302 8.7 제품 코드 안에 남는 방어적인 프로그래밍 코드 정하기 = 308 8.8 방어적인 프로그래밍에 대해서 방어적이 되는 것 = 309 참고 자료 = 311 요점 정리 = 312 Chapter 9 의사코드 프로그래밍 프로세스 = 313 9.1 클래스와 루틴을 작성하는 단계에 대한 요약 = 315 9.2 전문가를 위한 의사코드 = 317 9.3 PPP를 사용한 루틴 구현 = 320 9.4 PPP의 대안 = 337 요점 정리 = 339 Part 3 변수 Chapter 10 변수 사용 시 일반적인 문제 = 343 10.1 데이터 사용 능력 = 345 10.2 변수 선언을 쉽게 만드는 방법 = 346 10.3 변수의 초기화에 대한 지침 = 348 10.4 범위 = 353 10.5 지속성 = 362 10.6 바인딩 시간 = 364 10.7 데이터 형과 제어 구조 간의 관계 = 366 10.8 변수를 한 목적으로만 사용하는 방법 = 368 요점 정리 = 371 Chapter 11 변수 이름의 효과 = 373 11.1 좋은 이름에 대한 고려사항 = 375 11.2 데이터의 특정 타입에 대한 명명 = 381 11.3 명명 규약의 효과 = 389 11.4 비형식적인 명명 규약 = 391 11.5 표준화된 접두사들 = 401 11.6 읽기 쉬운 짧은 이름 = 404 11.7 피해야 할 이름의 종류 = 409 요점 정리 = 414 Chapter 12 기본 데이터 형 = 415 12.1 일반적인 숫자 = 417 12.2 정수 = 419 12.3 부동소수점 = 421 12.4 문자와 문자열 = 425 12.5 불린(Boolean) 변수 = 430 12.6 열거 형 = 433 12.7 명명된 상수 = 438 12.8 배열 = 442 12.9 새로운 형 만들기(형 별명) = 444 요점 정리 = 452 Chapter 13 특이한 데이터 형 = 453 13.1 구조체 = 454 13.2 포인터 = 459 13.3 전역 데이터 = 475 참고 자료 = 486 요점 정리 = 488 Part 4 명령문 Chapter 14 직선형 코드 구성하기 = 491 14.1 순서가 중요한 명령문 = 492 14.2 순서가 중요하지 많은 명령문 = 496 요점 정리 = 500 Chapter 15 조건문 사용 = 501 15.1 if 문 = 502 15.2 case 문 = 509 요점 정리 = 516 Chapter 16 루프 제어 = 517 16.1 루프의 종류 선택 = 518 16.2 루프의 제어 = 526 16.3 루프를 쉽게 작성하는 법 - 안에서부터 밖으로 = 542 16.4 루프와 배열의 대응 = 545 요점 정리 = 547 Chapter 17 특이한 제어 구조들 = 549 17.1 여러 곳에서 리턴하는 루틴 = 550 17.2 재귀적 용법 = 553 17.3 goto 문 = 559 17.4 특이한 제어 구조에 대한 전망 = 573 참고 자료 = 574 요점 정리 = 576 Chapter 18 테이블을 활용하는 방법 = 577 18.1 테이블을 활용할 때 일반적으로 고려해야 할 사항들 = 578 18.2 직접 접근 방식 = 580 18.3 인덱스 접근 방식 = 595 18.4 단계적 접근 방식 = 597 18.5 테이블 참조 방법의 다른 예제들 = 601 요점 정리 = 602 Chapter 19 제어와 관련된 일반적인 문제 = 603 19.1 불린 표현식 = 604 19.2 복합문(블록) = 620 19.3 널 명령문 = 622 19.4 지나치게 깊은 중첩 구조의 처리 = 624 19.5 프로그래밍의 기초 : 구조적 프로그래밍 = 635 19.6 제어 구조와 복잡도 = 638 요점 정리 = 642 Part 5 코드 향상 Chapter 20 소프트웨어의 품질에 대한 조망 = 645 20.1 소프트웨어 품질의 특성 = 646 20.2 소프트웨어의 품질을 향상시키기 위한 기법들 = 649 20.3 품질 향상 기법의 상대적 효율성 = 654 20.4 품질 보증 활동 시기 = 658 20.5 소프트웨어 품질의 일반적인 원칙 = 659 참고 자료 = 662 요점 정리 = 663 Chapter 21 협력적인 구현 = 665 21.1 협력적인 개발 방법의 개요 = 667 21.2 짝 프로그래밍(Pair Programming) = 671 21.3 형식적인 정밀 검사 = 673 21.4 다른 종류의 협력적인 개발 방법 = 682 참고 자료 = 687 요점 정리 = 689 Chapter 22 개발자 테스트 = 691 22.1 소프트웨어 품질에서 개발자 테스트의 역할 = 694 22.2 개발자 테스트에 대한 바람직한 접근 방법 = 697 22.3 여러 가지 테스트 트릭 = 700 22.4 전형적인 오류 = 716 22.5 테스트 지원 도구 = 723 22.6 테스트를 향상시키는 방법 = 730 22.7 테스트 기록을 보존하는 방법 = 732 참고 자료 = 734 요점 정리 = 737 Chapter 23 디버깅 = 739 23.1 디버깅 문제의 개요 = 740 23.2 결함의 발견 = 747 23.3 결함의 수정 = 761 23.4 디버깅에서 심리학적으로 고려해야 할 사항들 = 766 23.5 디버깅 도구 - 분명하고 그렇게 분명하지 않은 도구 = 769 참고 자료 = 775 요점 정리 = 776 Chapter 24 리팩토링 = 777 24.1 소프트웨어 진화의 종류 = 779 24.2 리팩토링에 대한 소개 = 780 24.3 구체적인 리팩토링 = 788 24.4 안전한 리팩토링 = 798 24.5 리팩토링 전략 = 802 참고 자료 = 805 요점 정리 = 805 Chapter 25 코드 최적화 전략 = 807 25.1 성능의 개요 = 809 25.2 코드 최적화에 대한 소개 = 814 25.3 느리고 비대한 부분들 = 822 25.4 측정 = 830 25.5 반복 = 832 25.6 코드 최적화에 대한 접근 방법의 요약 = 834 참고 자료 = 834 요점 정리 = 836 Chapter 26 코드 최적화 기법 = 839 26.1 논리 구조 = 841 26.2 루프 = 849 26.3 데이터 변환 = 861 26.4 표현식 = 867 26.5 루틴 = 880 26.6 저급 언어를 이용한 재구성 = 881 26.7 변경이 많을수록 상태는 그대로 = 885 참고 자료 = 886 요점 정리 = 888 Part 6 시스템 고려사항 Chapter 27 프로그램의 크기가 구현에 미치는 영향 = 891 27.1 의사 소통과 크기 = 893 27.2 프로젝트 크기의 범위 = 894 27.3 프로젝트의 크기가 오류에 미치는 영향 = 895 27.4 프로젝트의 크기가 생산성에 미치는 영향 = 897 27.5 프로젝트의 크기가 개발 활동에 미치는 영향 = 898 참고 자료 = 904 요점 점리 = 905 Chapter 28 구현 관리 = 907 28.1 좋은 코드 작성의 장려 = 909 28.2 형상 관리 = 912 28.3 구현 일정의 예측 = 921 28.4 측정 = 930 28.5 프로그래머를 사람으로 대우하기 = 935 28.6 관리자 관리 = 943 참고 자료 = 944 요점 정리 = 945 Chapter 29 통합 = 947 29.1 통합 접근 방법의 중요성 = 948 29.2 통합 횟수 - 단계별 또는 점증적? = 950 29.3 점증적 통합 전략 = 954 29.4 일별 빌드와 스모크 테스트 = 964 참고 자료 = 972 요점 정리 = 973 Chapter 30 프로그래밍 도구들 = 975 30.1 설계 도구 = 977 30.2 소스 코드 도구 = 978 30.3 실행 코드 도구 = 985 30.4 도구 지향적인 환경 = 991 30.5 자신만의 프로그래밍 도구 개발하기 = 992 30.6 프로그래밍 도구에 대한 환상 = 994 참고 자료 = 996 요점 정리 = 997 Part 7 소프트웨어 장인정신 Chapter 31 배치와 방식 = 1001 31.1 배치 기초 = 1003 31.2 배치 기술 = 1011 31.3 배치 방식 = 1014 31.4 제어 구조의 배치 = 1023 31.5 단일 명령문의 배치 = 1032 31.6 주석의 배치 = 1046 31.7 루틴의 배치 = 1050 31.8 클래스의 배치 = 1052 참고 자료 = 1060 요점 정리 = 1061 Chapter 32 스스로를 설명하는 코드 = 1063 32.1 외부 문서 = 1064 32.2 문서화를 위한 프로그래밍 방식 = 1065 32.3 주석을 작성할 것인가? 작성하지 않을 것인가? = 1069 32.4 효율적인 주석을 위한 핵심 사항 = 1073 32.5 주석 작성 기법 = 1082 32.6 IEEE 표준 = 1110 참고 자료 = 1112 요점 정리 = 1115 Chapter 33 개인 성격 = 1117 33.1 개인 성격은 주제를 벗어난 것 아닌가? = 1119 33.2 지성과 겸손 = 1120 33.3 호기심 = 1121 33.4 지적인 정직함 = 1127 33.5 의사 소통과 협동 = 1131 33.6 창의성과 훈련 = 1131 33.7 게으름 = 1132 33.8 생각만큼 중요하지 않은 특성 = 1134 33.9 습관 = 1136 참고 자료 = 1138 요점 정리 = 1139 Chapter 34 소프트웨어 장인(匠人)에 대한 주제 = 1141 34.1 복잡성 정복 = 1142 34.2 자신에게 맞는 프로세스 선택 = 1145 34.3 컴퓨터보다 사람을 위한 프로그램을 작성하라 = 1147 34.4 언어에 얽매이지 말고 언어를 활용하는 프로그램을 작성하라 = 1150 34.5 규약을 이용하여 주의를 집중하라 = 1151 34.6 문제 중심의 프로그램 = 1153 34.7 낙석을 주의하라 = 1156 34.8 반복, 반복, 또 반복 = 1159 34.9 소프트웨어와 신조를 떼어 놓아라 = 1160 요점 정리 = 1153 Chapter 35 더 많은 정보를 얻으려면 = 1165 35.1 소프트웨어 구현에 관한 정보 = 1167 35.2 구현 외의 주제 = 1168 35.3 정기 간행물 = 1171 35.4 소프트웨어 개발자의 독서 계획 = 1173 35.5 전문가 협회에 가입하기 = 1175 INDEX = 1176