책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9788991268210
· 쪽수 : 380쪽
· 출판일 : 2008-02-20
책 소개
목차
역자서문
들어가는 글
1장 스타일
1.1 이름
1.2 표현식과 문장
1.3 일관성과 관용 표현
1.4 매크로 함수
1.5 매직넘버
1.6 주석
1.7 왜 그렇게 귀찮게 구는가?
2장 알고리즘과 자료 구조
2.1 검색
2.2 정렬
2.3 라이브러리
2.4 자바의 퀵소트
2.5 O 표기법
2.6 크기가 커지는 배열들
2.7 리스트
2.8 트리
2.9 해시 테이블
2.10 요약
3장 설계와 구현
3.1 마르코프 체인 알고리즘
3.2 데이터 구조 후보들
3.3 C에서 데이터 구조를 만들기
3.4 출력 생성하기
3.5 자바
3.6 C++
3.7 Awk와 펄
3.8 성능
3.9 교훈
4장 인터페이스
4.1 콤마 구분값
4.2 프로토타입 라이브러리
4.3 다른 사람이 쓸 수 있는 라이브러리
4.4 C++ 구현
4.5 인터페이스 원칙
4.6 자원 관리
4.7 중단, 재시도, 실패?
4.8 사용자 인터페이스
5장 디버깅
5.1 디버거
5.2 실마리가 뚜렷한 쉬운 버그
5.3 실마리가 없는 어려운 버그
5.4 최후의 수단
5.5 재현 불가능한 버그
5.6 디버깅 툴
5.7 다른 사람의 버그
5.8 요약
6장 테스트
6.1 코딩하면서 테스트하기
6.2 체계적인 테스트
6.3 테스트 자동화
6.4 테스트 작업발판
6.5 부하 테스트
6.6 테스트 팁
6.7 누가 테스트를 하는가?
6.8 마르코프 프로그램 테스트
6.9 요약
7장 성능
7.1 병목현상
7.2 시간 측정과 프로파일링
7.3 속도를 위한 전략
7.4 코드 미세조정
7.5 공간 효율성
7.6 추정
7.7 요약
8장 호환성
8.1 언어
8.2 헤더와 라이브러리
8.3 프로그램 조직화
8.4 구분
8.5 데이터 교환
8.6 바이트 순서
8.7 호환성과 업그레이드
8.8 국제화
8.9 요약
9장 표기법
9.1 데이터 형식화
9.2 정규 표현식
9.3 프로그래밍 툴
9.4 해석기, 컴파일러, 가상머신
9.5 프로그램을 작성하는 프로그램
9.6 매크로로 코드 생성하기
9.7 동적 컴파일 하기
후기
부록 : 원칙 일람
찾아보기
책속에서
일단 버그가 보이면, 제일 먼저 해야 할 일은 그것이 던져주는 실마리에 대해 곰곰이 생각해 보는 것이다. 어떻게 발생한 것일까? 낯익은 버그는 아닌가? 방금 프로그램에서 뭔가가 바뀌었나? 이 버그가 튀어나올 때 입력한 데이터에 특별한 게 있었나? 잘 골라낸 테스트 케이스 몇 개와 출력문 몇 개면 충분할 것이다.
뚜렷한 실마리가 없다 해도 곰곰이 생각해 보는 것이 첫 단계이며, 그 다음에 프로그램에서 버그 위치를 좁혀가기 위한 체계적인 방법을 시도한다. 한 가지 방법은 입력 데이터를 문제가 생기는 최소한의 크기까지 잘라내는 것이고, 또 다른 방법은 관계 없는 코드 부분을 제거해가는 것이다. 또 문제를 지역화하기 위해서 프로그램이 몇 번 실행된 다음에 스위치가 올라가는 점검 코드를 집어넣을 수도 있다. 이런 방법은 모두 일반 전략인 '각개격파(divide and conquer)를 활용한 것이다.
이 전략은 정치와 전쟁에서 그렇듯이 디버깅에서도 효과적이다. 다른 도움도 활용하라. 다른 사람(곰인형이라도 괜찮다)에게 자기 코드를 설명하는 방법은 환상적인 효과가 있다. 디버거를 사용해서 스택 추적값을 얻어 내라. 메모리 누수나 배열 경계 침범, 의심스러운 코드 등을 검사하는 상용 툴을 활용하라.
코드가 어떻게 돌아가는지 머리 속에 잘못된 그림이 들어있다는 게 확실해지면 프로그램 안으로 한 단계씩 파고 들어가며 분석하라. 자기 자신을 알고, 자신이 만드는 에러를 알라. 일단 버그를 하나 찾고 고쳤다면, 비슷한 다른 버그도 다 확실히 제거해야 한다. 왜, 어떻게 버그가 발생했는지 고민해서 다음에는 비슷한 실수를 반복하지 않도록 한다.-본문 189~190p 중에서