이미 소장하고 있다면 판매해 보세요.
|
CHAPTER 1 고차원 전략
아이템 1: 모든 문제를 이슈 추적 시스템으로 관리하기 아이템 2: 해결책을 웹에서 검색할 때 검색어를 구체적으로 표현하기 아이템 3: 선행 조건과 후행 조건 만족 여부 확인하기 아이템 4: 문제 발생 지점부터 버그를 추적하거나, 프로그램 시작 지점부터 버그를 찾아나가기 아이템 5: 정상 시스템과 비정상 시스템의 차이점 분석하기 아이템 6: 소프트웨어에서 제공하는 디버깅 기능 활용하기 아이템 7: 빌드 및 실행 환경을 다양하게 구성하기 아이템 8: 가장 중요한 문제에 집중하기 CHAPTER 2 범용적인 디버깅 기법 아이템 9: 성공적인 디버깅을 위한 마음가짐 아이템 10: 효율적으로 문제 상황 재현하기 아이템 11: 코드 수정한 후 결과 확인까지의 시간 최소화하기 아이템 12: 복잡한 테스트 시나리오 자동화하기 아이템 13: 디버깅 관련 데이터를 한눈에 볼 수 있는 환경 구축하기 아이템 14: 소프트웨어 업데이트 고려하기 아이템 15: 서드파티 소스 코드 분석을 통해 문제 해결하기 아이템 16: 전문 모니터링 및 테스팅 장비 활용하기 아이템 17: 오류의 효과 극대화하기 아이템 18: 원격 디버깅 환경 구축하기 아이템 19: 디버깅 작업 자동화하기 아이템 20: 디버깅 전과 후에 정리하기 아이템 21: 비슷한 문제 모두 고치기 CHAPTER 3 범용 도구를 활용한 기법 아이템 22: 유닉스 명령줄 도구로 디버깅 데이터 분석하기 아이템 23: 명령줄 도구 옵션과 관용 표현 활용하기 아이템 24: 코드 편집기로 디버깅 데이터 탐색하기 아이템 25: 작업 환경 최적화하기 아이템 26: 버전 관리 시스템으로 버그 원인과 히스토리 추적하기 아이템 27: 독립적인 프로세스로 구성된 시스템에서 모니터링 도구 사용하기 CHAPTER 4 디버거 활용법 아이템 28: 디버깅 버전으로 컴파일하기 아이템 29: 한 단계씩 코드 실행하기 아이템 30: 코드와 데이터 중단점 활용하기 아이템 31: 리버스 디버깅 아이템 32: 루틴 사이의 호출 흐름 추적하기 아이템 33: 변수와 표현식의 값을 분석하여 에러 찾기 아이템 34: 실행 중인 프로세스에 디버거 연동하기 아이템 35: 코어 덤프 다루기 아이템 36: 디버깅 도구 조율하기 아이템 37: 어셈블리 코드와 메모리 값 확인하기 CHAPTER 5 프로그래밍 기법 아이템 38: 의심스런 코드를 검토하고 손으로 실행해보기 아이템 39: 동료 검토하기 아이템 40: 디버깅 기능 추가하기 아이템 41: 로그 남기기 아이템 42: 단위 테스트 사용하기 아이템 43: 어서션 사용하기 아이템 44: 코드를 바꿔보면서 검증하기 아이템 45: 정상적인 코드와 문제가 발생한 코드의 차이점 줄이기 아이템 46: 의심스런 코드 간소화하기 아이템 47: 의심스런 코드를 다른 언어로 작성해보기 아이템 48: 의심스런 코드의 가독성과 구조 향상시키기 아이템 49: 버그의 증상이 아닌 원인 고치기 CHAPTER 6 컴파일 시간 기법 아이템 50: 생성된 코드 확인하기 아이템 51: 정적 분석 도구 활용하기 아이템 52: 빌드 결과와 실행 동작이 항상 일정하도록 설정하기 아이템 53: 라이브러리에서 제공하는 디버깅 및 검사 기능 설정하기 CHAPTER 7 실행 시간 기법 아이템 54: 테스트 케이스를 작성하여 오류 찾기 아이템 55: 오류가 발생한 즉시 프로그램 중단하기 아이템 56: 애플리케이션 로그 파일 분석하기 아이템 57: 시스템 및 프로세스 연산에 대한 프로파일 분석하기 아이템 58: 실행 흐름 추적하기 아이템 59: 동적 프로그램 분석 도구 활용하기 CHAPTER 8 멀티스레드 코드 디버깅하기 아이템 60: 사후 디버깅으로 교착 상태 분석하기 아이템 61: 프로그램의 실행 흐름을 기록한 뒤 재생하기 아이템 62: 전문 도구로 교착 상태와 경쟁 상태 찾기 아이템 63: 예측할 수 없는 부분을 분리하거나 제거하기 아이템 64: 자원 경쟁으로 인해 발생한 성능 확장성 문제 분석하기 아이템 65: 성능 카운터를 이용하여 거짓 공유 발생 지점 찾기 아이템 66: 고수준 추상화를 사용하도록 코드 다시 작성하기 |
|
★ 지옥문이 열렸다. 버그를 잡아라!
디버깅은 개발 시간의 상당 비중을 차지하지만, 전문적으로 배울 기회가 거의 없어서 제대로 된 디버깅 기술과 기법을 익히기까지는 평생이 걸릴 수도 있다. 이에 이 책은 가장 유용한 디버깅 방법, 전략, 기술, 도구를 선별하여 숙련된 프로그래머들이 디버깅 비법을 빠르게 마스터하도록 꾸몄다. 고립된 환경의 사소한 오류부터 얽히고설킨 엔터프라이즈 시스템의 장애까지, 여러분이 디버깅 지옥에 떨어졌을 때 가장 빠른 탈출구를 찾아낼 수 있을 것이다. 이 책은 범용적인 기법부터 시작해서 점차 구체적인 기법을 소개하는 방식으로 설명한다. 먼저 다양한 소프트웨어 및 시스템 오류를 해결하는 데 도움되는 전략(1장), 방법론(2장), 도구와 기법(3장)부터 설명한다. 이어서 디버깅 작업에 실제로 적용할 수 있는 기법들을 단계별로 소개한다. 4장에서는 디버거를 사용하는 과정에 적용할 수 있는 기법을, 5장에서는 프로그램을 작성하는 과정에 필요한 기법을, 6장에서는 소프트웨어를 컴파일하는 과정에 필요한 기법을, 7장에서는 시스템을 실행하는 과정에 적용할 기법을, 8장에서는 멀티스레드 및 동시성 코드에 관련된 까다로운 버그들을 잡는 데 특화된 도구와 기법을 소개한다. ★ 주요 내용 ● 다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법 ● 프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법 ● 디버거를 최대한 활용하는 방법 ● 믿고 투자해도 좋은 범용 기술과 도구 ● 막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법 ● 디버깅하기 쉬운 프로그램을 만들기 위한 조언 ● 멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법 ● 향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법 |