메뉴전체보기
나의 학습실 로그인
로그인폼
독서경영

도서안내

Debug It! 실용주의 디버깅 : 소프트웨어 개발자가 꼭 알아야 할 디버깅의 정석

분    류경영/경제
저 자 명폴 부처 (번역 : 박일)
출 판 사에이콘출판
출 판 일2010-06-29
ISBN
내용
출판사 서평

고급 소프트웨어 엔지니어로 거듭나기 위해 꼭 필요하면서도 간과하기 쉬운 디버깅 기술. 개발 플랫폼에 무관하게 전문 소프트웨어 개발자가 디버깅에 대해 알아야 할 모든 이론과 지식, 실전 경험을 망라해둔 디버깅의 정석. 저자가 쌓아온 노하우와 디버깅 철학을 이 책에 모두 공개한다!

직업 프로그래머는 한 치의 오차도 없이 버그의 근본 원인을 제거하는 기술을 익힌다. 디버깅 기술은 평소 버그 있는 코드를 생성하고 이를 수정하면서 얻는 경험에서 배울 수 있다. 이 책에는 저자가 그렇게 얻은 생생한 경험이 적혀있다. 이 책에서 얻은 실전 경험을 바탕으로 버그를 줄이고, 버그가 있더라도 훨씬 쉽게 찾을 수 있도록 코드를 작성하는 방법을 익힐 수 있다.

[Debug It! 실용주의 디버깅]은 확신을 가지고 버그를 잡는 데 도움이 될 만한 도구, 기법, 접근 방법을 제공한다.

전문 디버깅의 비밀은 버그의 전 과정, 즉 디버깅을 쉽게 할 수 있도록 소프트웨어를 만드는 것에서부터, 버그를 찾고 재현하고 진단하고 마지막으로 수정하는 과정까지를 전부 보여준다. 자바냐 기계어냐, 서버냐 임베디드 마이크로컨트롤러냐, 애자일이냐 전통적인 방법이냐에 상관없이 기본적인 버그 수정 원칙을 적용할 수 있다.

이 책에서는 소프트웨어만의 독특한 기능을 통해 실제로 어떤 일이 벌어지는지 보여줄 수 있는 경험주의적인 접근 방법, 안정적이고 편하게 버그를 재현할 수 있는 방법의 중요성, 공통적인 실수를 피할 수 있는 방법 등을 배울 수 있다. 흔히 사용되는 도구를 활용해 고객이 버그를 발견하기 전에 먼저 자동으로 찾을 수 있는지도 익힌다. 또한, 결정적인 내부 정보에 알아서 접근하고, 버그를 생성하는 깨진 가정이 어디인지 알려주는 '스스로 디버깅하는' 소프트웨어를 만들 수 있다.

이 책의 구성

1부. 문제의 핵심
1부에서는 개발 중인 소프트웨어를 통해 내부에서 뭐가 어떻게 실행되는지를 보는 경험주의 접근법과, 이에 기반한 핵심 디버깅 방법(재현, 진단, 수정, 반영)을 소개한다.

2부. 큰 그림
고쳐야 하는 문제가 있다는 걸 처음에 어떻게 찾을 수 있을까? 디버깅 과정을 소프트웨어 개발 프로세스 안에 어떻게 넣을 수 있을까?

3부. 디버깅 비급
3부에서는 다음과 같은 좀 더 어려운 주제를 살펴본다.
- 1~2부에서 살펴본 방법들은 모든 버그에 적용할 수 있지만 특별한 조치를 해줘야 하는 버그도 있다.
- 디버깅은 해당 버그 때문에 열 받은 사용자가 불평 전화를 걸어오기 훨씬 전부터 시작한다. 특정 도구나 프로세스를 써서 이런 일을 미연에 방지할 수 없을까?
- 마지막으로 빠지기 쉬운 여러 가지 함정도 알아본다.

이 책에 쏟아진 각계의 찬사

'처음부터 버그가 생기지 않게 하고, 버그를 진단, 수정한 후, 재발하지 못하게 하라.' 폴은 디버깅의 전체 단계를 기술적, 인지적, 심리적인 측면에서 잘 설명했습니다. 이 책에 적힌 모든 아이디어 중에서 일부만이라도 도입한다면 프로젝트의 전체적인 품질이 향상될 것입니다. 기술적인 문제도 그렇지만 심리적인 측면을 잘 설명한 부분이 이 책의 뛰어난 점입니다.
프레드릭 다우드(Frederic Daoud)
[Stripes...and Java Web Development Is Fun Again] 저자

모든 소프트웨어 엔지니어와, 특히 자신의 팀을 최고 수준으로 만들고 싶어 하는 팀장들에게 진심으로 이 책을 추천합니다.
앨런 맥리드(Allan McLeod)
이작 소프트웨어 창립자이자 CTO

이 책을 통해서 디버깅을 위한 예비 지식, 마음가짐과 함께 버그를 발견하고 고칠 때 발생하는 복잡한 부분도 알 수 있습니다. 진짜 특이한 문제를 찾아나가는 과정을 다룬 일화들만으로도 이 책의 가치는 충분합니다.
존 디킨슨(Jon Dickinson)
[Grails 1.1 Web Application Development] 저자

디버깅은 오랫동안 전승되어 온 기법이었기 때문에 경험을 통해 검증된 여러 기법을 누군가가 하나로 취합했다는 것은 굉장한 일입니다. [Debug It! 실용주의 디버깅]은 훌륭한 소프트웨어 개발이라는 고통스러운 과정 속에서 환멸을 느끼고 있는 여러분을 구원해줄 책입니다. 이 책에서 다루고 있는 단언문, 로그, 리팩토링 같은 좋은 도구와 함께라면 셜록 홈즈가 된 듯한 느낌과 함께 어떤 문제라도 해결할 수 있을 것입니다.
크레이그 리케(Craig Riecke)
[Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences] 저자

디버깅에 있어서의 장인 정신을 집중적으로 다룬다는 점에서 [실용주의 프로그래머]의 자매편이라 할 수 있습니다.
이언 디즈(Ian Dees)
[Scripted GUI Testing with Ruby] 저자

디버깅은 모든 소프트웨어 개발자들의 근본적인 활동이면서, 동시에 아직도 대부분 직감과 짐작에 의존하는 작업이기도 합니다. 늦게나마 폴이 디버깅 방법에 대한 관심을 끌어내줬습니다. 폴의 디버깅 기법에 느껴지는 엄격함과는 반대로 글은 굉장히 부드럽습니다. 이 책에 있는 내용을 섭렵하고 나면 어느새 여러분은 더 이상 해커가 아닌 소프트웨어 엔지니어로 거듭나 있을 것입니다.
빌 카윈(Bill Karwin)
Software Engineer, Karwin Software Solutions, LLC의 소프트웨어 엔지니어
목차
1부 문제의 핵심

1장 구조적인 접근
1.1 디버깅은 '버그를 없애는 것' 그 이상이다
1.2 경험주의 접근법
1.3 핵심 디버깅 과정
1.4 중요한 일부터 먼저
1.5 실천하기

2장 재현
2.1 고민하기 전에 재현부터 해보자
2.2 소프트웨어 제어
2.3 환경 제어
2.4 입력 제어
2.5 재현 방법 다듬기
2.6 정말로 재현할 수 없다면?
2.7 실천하기

3장 진단
3.1 잠깐, 지금부턴 과학을 할 겁니다
3.2 계략
3.3 디버거
3.4 실수
3.5 심리전
3.6 진단 확인
3.7 실천하기

4장 수정
4.1 전투 준비
4.2 테스트
4.3 증상이 아닌 원인을 고친다
4.4 리팩토링
4.5 체크인
4.6 코드 리뷰 받기
4.7 실천하기

5장 반영
5.1 이게 어떻게 돌아가고 있었지?
5.2 뭐가 잘못된 거지?
5.3 다시는 이 문제가 생기지 않을꺼야
5.4 선순환 구조 만들기
5.5 실천하기

2부 큰그림

6장 문제 발견
6.1 버그 추적
6.2 고객과 작업하기
6.3 지원 팀과 일하기
6.4 실천하기

7장 실질적인 무관용
7.1 버그 우선순위
7.2 디버깅할 때의 마음가짐
7.3 품질 결함 수렁에서 빠져나오기
7.4 실천하기

3부 디버깅 비급

8장 특수한 경우
8.1 기존 릴리스 패치
8.2 하위 호환성
8.3 병렬
8.4 하이젠버그
8.5 성능 버그
8.6 임베디드 소프트웨어
8.7 서드파티 소프트웨어 버그
8.8 실천하기

9장 이상적인 디버깅 환경
9.1 자동 테스팅
9.2 소스 관리 시스템
9.3 자동 빌드
9.4 실천하기

10장 소프트웨어가 스스로를 디버깅하게 만들기
10.1 가정과 단언문
10.2 디버깅 빌드
10.3 자원 누수와 예외 처리
10.4 실천하기

11장 안티 패턴
11.1 우선순위 인플레이션
11.2 프리마돈나
11.3 유지 보수 팀
11.4 화재 진압
11.5 새로 작성하기
11.6 코드 주인의식 실종
11.7 흑마술
11.8 실천하기

부록 A 자원
A.1 소스 관리 시스템과 이슈 추적 시스템
A.2 빌드와 지속적인 통합 도구
A.3 유용한 라이브러리
A.4 다른 도구

부록 B 참고 문헌
저자소개
폴 부처(Paul Butcher) [저]
비트 슬라이스 프로세서에서 돌아가는 마이크로 코드에서부터 고수준의 선언적 프로그래밍에 이르는 다양한 분야에서 일해왔다. 폴은 최신 기술을 개발하는 여러 훌륭한 개발 팀과 같이 일할 기회를 제공해 준 스타트업 회사 덕분에 이런 경험을 할 수 있었다.

박일 [역]
연세대 컴퓨터과학과를 졸업했다. '박피디의 게임 아키텍트 블로그(http://parkpd.egloos.com)'를 운영하고 있으며, 2000년에 개발을 시작해 지금은 리니지2 서버팀에서 근무하는 중이다. 옮긴 책으로는[스크럼](2008), [xUnit 테스트 패턴](2010)이 있다.
도서 요약문 목록
No. 작성자 작성일 요약문
       
홍길동
독서기록장보기
독서친구신청
쪽지보내기