로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

버그 패턴과 자바

   
지은이 Eric Allen/천영환   |   출판사 인포북  |   발행일 2003년 05월 15일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 15,000원13,500원 10%
마일리지 5% 750원
발행일 2003-05-15
ISBN 8980545134 |  9788980545131
기타정보 번역서 | 298쪽
예상출고일
배송비 2,000원 (20,000원이상 무료배송)
   
컴퓨터공학
종합지수 2p 182 위
   
이 책의 원서
  Bug Patterns In Java
APRESS | Eric Allen
 

전문가에 의한 전문가를 위한 책

  • 소프트웨어 개발 방법론인 익스트림 프로그래밍과 디버깅을 통합하기 위한 책

  • 실제 개발에 사용되는 코드들을 예로 사용하며 이 예제들을 깊고 날카롭게 분석한 책

  • 자주 발생하는 버그들을 해결하기 위한 쉽고 간편한 방법들을 담고 있는 책

    "버그 패턴과 자바"는 과학적으로 버그를 진단하고 해결하는 방법을 알려주는 책이다. 수없이 많은 디자인 패턴 책들이 소개되었음에도 불구하고 그동안 디버깅은 명확하게 다루어지지 않은 채로 있었다. 디버깅을 위한 기술은 프로그램을 확장하기 쉽도록 디자인 하는 기술과는 전혀 다른 성격의 기술이므로 이제 우리는 이를 위한 책이 필요하다. 여기 여러분이 쉽게 디버깅할 수 있도록 해주는 책을 소개한다. "버그 패턴과 자바"에서 Eric Allen은 여러 가지 디버깅 이론을 설명하고 각 개발 사이클과 디버깅이 어떻게 연관되어 있는지를 알려준다. 특히 그는 효율적인 디버깅을 위한 단위 테스트의 중요성을 강조하고 있으며 디버깅과 테스팅이 종종 혼동되어 사용되지만 이 둘은 완전히 다른 작업이라는 점을 설파하고 있다.

    이 책은 크게 두 부분으로 나누어지는데 앞 부분에서는 컴퓨터 프로그램에서 자주 발생하는 여러가지 형태의 "버그 패턴"들을 다룬다. Allen은 각 버그 패턴이 어떠한 것이지를 정의하며, 어떻게 그것을 다룰 것인지, 또 어떻게 막을 수 있을 것인지를 설명한다. 더욱이 자주 발생하는 버그 패턴에 대해서는 어떻게 진단할 것이며 어떻게 해야 효과적으로 제거할 수 있을 것인지에 대해 좀 더 자세하게 다룬다. 책의 뒷 부분에서는 숨어있는 버그의 가능성들을 쉽게 체크하는 방법을 알려주며 그에 대한 해결책들을 알려준다. 또한 마지막에는 디버깅에 참고할만한 웹사이트, 개발 툴, 참고 서적을 소개하는 것도 잊지 않고 있다.


  • Chapter 1 혼돈의 시대에서 살아남는 법
    소프트웨어의 디자인, 구현, 유지보수의 최신 경향
    모두가 안정되고 안전한 시스템을 원하게 되다
    기존 소프트웨어 공학의 한계점을 알게 되다
    오픈소스 프로젝트에서 새로운 가능성을 발견하다
    플랫폼에 독립적인 언어가 필수적이 되다
    뛰는 세상, 날아서 따라잡기
    버그 패턴을 알아보자 : 왜 꼭 버그 패턴이어야만 하는가
    이 장을 마치며

    Chapter 2 버그, 명세 그리고 구현
    버그란 무엇인가
    완벽하게 작성된 명세
    C++
    파이썬
    ML
    파스칼
    왜 명세가 필요한가
    구현은 명세가 아니다
    스토리를 사용하여 효과적으로 명세 작성하기
    명세상의 오류를 잡아내는 힘. 테스트! 테스트! 테스트!
    단위 테스트가 만능은 아니다.
    이 장을 마치며

    Chapter 3 디버깅과 개발
    과학 실험 같은 디버깅을 하자
    소프트웨어를 단계별로 명세화하고 통합하며, 릴리즈(Release)할 수 있다.
    디자인을 최대한 단순하게 유지할 수 있다.
    짝(Pair)을 이루어 프로그래밍한다.
    고객이 항상 개발에 도움을 줄 수 있다.
    모든 개발자들이 코드를 공유한다.
    쪼갤 수 있는 모든 부분에 대해 테스트를 한다.
    합체! 단위 테스트와 디버그 테스트
    미래의 언어 : 테스트 지향 언어
    이 장을 마치며

    Chapter 4 디버깅과 테스트, 어떻게 진행할까?
    손쉬운 테스트를 위한 디자인
    테스트 코드를 뷰가 아닌, 모델에 집중하기
    정적 타입 검사를 활용한 오류 잡아내기
    매개자(Mediator)를 사용하여 각 컴포넌트를 넘나들어야 하는 기능 캡슐화하기
    메소드의 시그니처(Signature) 단순화하기
    메모리 상태를 바꾸지 않는 접근자(Accessor) 사용하기
    인터페이스를 사용하여 구현이 덜 된 부분 메워넣기
    테스트부터 작성하기
    GlobalModel 인터페이스
    이 장을 마치며

    Chapter 5 디버깅에 관한 과학적 고찰
    소프트웨어, 그 영원 불변함에 대하여
    좀 더 빠른 버그 진단을 위한 버그 패턴
    이 장을 마치며

    Chapter 6 버그 패턴에 대하여
    왜 패턴을 알아야 하는가
    이 책에서 다루는 버그 패턴의 기준은
    버그 패턴은 어떻게 구성되는가
    빠르게 찾는 문제 해결법

    Chapter 7 누더기 타일(Rogue Tile)
    이 버그 패턴에 대해
    증상
    원인, 해결책 그리고 예방책
    코드의 개선을 방해하는 것들
    제네릭 타입(Generic Types)
    형체 지향 프로그래밍(Aspect-Oriented Programming)
    이 장을 마치며

    Chapter 8 시도 때도 없는 버그 널 포인터(Null Pointer)
    NullPointerException은 아무 것도 말해주지 않는다
    NullPointerException은 음험한 곳에 숨어산다

    Chapter 9 미결합 컴포지트(DanglingComposite)
    미결합 컴포지트에 대하여
    증상
    원인
    해결책과 예방책
    이 장을 마치며

    Chapter 10 널 플래그(Null Flag)
    이 버그 패턴에 대해
    증상
    원인
    해결책과 예방책
    진검승부 - 프로그램의 견고함과 진단의 편리함
    예외 처리를 위한 최적의 장소
    기존에 작성한 코드에 널 플래그가 있다면?
    이 장을 마치며

    Chapter 11 이중 하향 참조(Double Descent)
    이 버그 패턴에 대해
    증상
    원인
    해결책과 예방책
    이 장을 마치며

    Chapter 12 거짓 뷰(Liar View)
    이 버그 패턴에 대하여
    증상
    원인
    해결책과 예방책
    GUI 코드에만 이런 문제가 있는 것은 아니다
    이 장을 마치며

    Chapter 13 파괴 데이터(Saboteur Data)
    이 버그 패턴에 대해
    증상
    문법적 원인
    의미적 원인
    해결책과 예방책
    이 장을 마치며

    Chapter 14 고장난 디스패치(Broken Dispatch)
    이 버그 패턴에 대해
    증상
    원인
    해결책과 예방책
    이 장을 마치며

    Chapter 15 사기꾼 타입(Impostor Type)
    이 버그 패턴에 대해
    증상
    원인
    해결책과 예방책
    어설픈 절충안
    이 장을 마치며

    Chapter 16 분리된 자원 회수기(Splite Cleaner)
    이 버그 패턴에 대해
    증상
    원인
    해결책과 예방책
    이 장을 마치며

    Chapter 17 가짜 구현(Fictitious Implementation)
    이 버그 패턴에 대해
    증상
    원인
    가짜 구현 버그 패턴을 찾아라
    해결책과 예방책
    이 장을 마치며

    Chapter 18 고아 쓰레드(Orphaned Thread)
    이 버그 패턴에 대해
    증상
    원인
    해결책과 예방책
    GUI에서의 고아 쓰레드
    다중 쓰레드 환경에서의 단위 테스트
    이 장을 마치며

    Chapter 19 추가 초기화(Run-On Initialization)
    이 버그 패턴에 대해
    증상과 원인
    해결책과 예방책
    때로는 돌아가는 것이 현명할 때도 있다
    이 장을 마치며

    Chapter 20 플랫폼에 종속적인 버그 패턴들
    플랫폼에 종속적인 버그들
    벤더에 종속적인 버그
    버전에 종속적인 버그
    운영체제에 종속적인 버그
    이 장을 마치며

    Chapter 21 진단용 체크 리스트
    일반적인 개념들을 위한 체크 리스트
    버그 패턴을 위한 체크 리스트

    Chapter 22 디버깅을 위한 디자인 패턴
    정적 타입 검사를 최대화하라
    바뀌지 않는 모든 필드를 final로 선언하라
    절대로 오버라이드 하지 않는다면 메소드를 final로 선언하라
    기본 값에 대한 클래스를 포함하라
    검사형 예외를 사용하여 코드를 사용하는 측에서
    예외적인 상황에 대비할 수 있도록 하라
    여러 가지 예외 상황에 대해서는 새로운 예외를 정의하라
    일련의 고정된 상태를 가진 클래스의 인스턴스들을 각각 컴포지트 계층구조상의 클래스로 나누어라
    캐스트 연산과 instanceof 연산을 최소화하라
    instanceof 연산을 최소화하려면 싱글톤 디자인 패턴을 사용하라
    오류의 가능성을 최소화하라
    공통적인 부분에 대한 코드를 따로 뽑아내라
    공통적인 부분에 대한 코드를 따로 뽑아내라
    가능하다면 메소드는 순수하게 기능만을 담아라
    모든 필드는 생성자에서 초기화하라
    예외적인 상황에 대해서는 예외를 사용하라
    오류에 대해서는 최대한 빨리 그 사실을 알려라
    최대한 오류는 빨리 걸러내라
    가정 설정문을 사용하라
    테스트 방식은 가능한한 사용자가 사용하는 그 방식 그대로 진행하라
    공통적인 부분에 대한 코드를 따로 뽑아내라
    아직 끝나지 않은 이야기

    Chapter 23 참고자료
    웹 사이트
    서적

    Appendix A 문자열 분석 리스트 생성자
    Appendix B 용어 정리
    바야흐로 디자인 패턴의 시대이다. 전반적인 IT의 침체 속에서도 디자인 패턴과 관련된 서적만은 꾸준히 판매되는 것을 보면 디자인 패턴이 확실히 대세로 자리를 굳힌 것 같다. 디자인 패턴에서 더 나아가 디자인 패턴에 대한 역발상(逆發想)적인 개념인 안티 패턴(Anti-Pattern)까지 논의되고 있는 추세이다. 이제 여기, 세 번째 패턴 유형을 소개하니 그 이름하여 찬란한 "버그 패턴(Bug Pattern)"이다. 그 이름에서 단번에 알 수 있듯이 버그 패턴은 여러 버그의 유형들을 정리하고 그에 대한 해결책을 제시해 놓은 것이다. 디자인 패턴이 여러 선배 프로그래머들의 디자인 테크닉들을 전수받기 위한 것이라면 버그 패턴은 여러 선배 프로그래머들의 디버깅 테크닉들을 전수받기 위한 것이라 할 수 있다. 이 책은 아무리 잘 디자인된 프로그램일지라도 항상 릴리즈 시점이면 부딪히게 되는 영원 불멸의 문제아(?), "버그"를 매우 체계적이고 자세하게 다루고 있다. 또한, 단순히 여러 버그를 다루는 데 그치는 것이 아니라, 각 버그에 대한 해결책 또한 명쾌하게 제시하고 있다. 따라서 이 책은 항상 버그로 골치를 썩고 있던 프로그래머라면 정독해 볼 만한 가치가 있는 책이다. 더구나 이 책에서는 신조류 방법론의 기수로써 추앙 받고 있는 익스트림 프로그래밍(XP)까지 다루어 놓고 있으니 금상첨화인 셈이다.

    하지만 이 책을 번역하는 역자로써 한가지 걱정스러운 점은 마치 이 책의 내용을 절대 불변의 진리로 여기고 이 책에서 제시한 방법들로만 버그를 해결하려 할까봐 우려된다는 점이다. 물론 이 책에서 제시하고 있는 방법들이 나름대로 근거를 가지고 있으며, 합리적이기는 하지만 그것이 절대적인 기준이 되어서는 곤란할 것 같다. 어디까지나 패턴은 패턴인 법. 항상 자신의 프로젝트에 이 패턴이 들어맞는지를 판단하는 것은 여러분의 몫인 셈이다. 훌륭한 요리사가 요리 책대로만 요리를 만들지 않듯, 이 패턴은 패턴일 뿐 그것이 절대적 진리가 될 수는 없다. 다만 요리 책이 여러 뛰어난 요리사들의 경험을 녹여 만들어 낸 것이므로 참조할만한 가치가 있듯이, 패턴 책들도 뛰어난 개발자들의 경험(그리고 밤샘 작업)을 녹여 만들어낸 것이므로 참조할만한 가치가 있는 것이다. 이는 디자인 패턴과 안티 패턴, 그리고 버그 패턴에 이르기까지 모든 패턴에 해당하는 내용이라 할 수 있다.
    평가하기가 지극히 애매하지만
    김인태님이 쓰신 서평보기 I 평점 I 조회수(1199) I 공감 (0) I 블로그
    보다 화려한(?) 디버깅 테크닉에 대해 배울 수 있기를 기대하고 이 책과 다른 한 권(Debugging Java)을 골랐습니다. 어느 정도 경험이 있는 사람이 본다면 다 아는 이야기를 써 놓은 책이라 할 수도 있겠지만 리마인드한다는 측면에서는 도움이 되었습니다. 수많은 버그를 패턴화시켜 설명한다는 것이 무리일 수도 있겠다는 생각도 들고 그렇게 했다고 하더라도 그런 것들 중 극히 일부만을 이 책에 담아냈을 것입니다. 그리고 버그 패턴이라는 것이 일반적인 개념도 아닐 것입니다. 다...
    프로그램 입문자라면 볼 만한 책
    송재운님이 쓰신 서평보기 I 평점 I 조회수(1205) I 공감 (0) I 블로그
    사실 책을 사고 후회하는 경우는 2가지로 볼 수 있을 거 같다. 정말 책이 형편없을때... 또는 다 아는 내용인 책을 샀을 때... 이 책은 후자에 속한 책이었다. 책을 사서 한시간만에 다 읽어버린 책 중 하나이다. 버그가 일어날 수 있는 경우를 차트 별로 하나씩 설명해 놓았는데.. 사실.. 프로그램 경력이 있는 사람들은 대부분 아는 사실을 나열해 놨을 뿐이다. 버그패턴 이라는 제목을 보고 패턴에 관심이 많았던 터라 덜컥 샀지만.. 돈이 너무 아까웠다.. 물론 이제 프로그램을 공...
    NullPointerException
    이상화님이 쓰신 서평보기 I 평점 I 조회수(3563) I 공감 (0) I 블로그
    처음 자바를 접했을 때 **p, ***p 류의 포인터 개념 및 표현이 존재 하지 않다는 걸 알고 얼마나 안심했었는지 모릅니다. 아~ 적어도 저런 시험문제는 안나오겠구나~ -_-;; 덧붙여 검사형 예외를 통해 try catch문을 통해 처리를 하지 않으면 아예 컴파일이 되지 않기 때문에 그래도 다른 언어에 비해 좀더 예외에 대한 보강된 처리 능력을 보고 한시름 놓았다고 생각했습니다. 그러나 아주 빈번하게 보이는 심지어 프로그래밍을 전혀 모르는 일반인들도 아는 Internet 내부 서버 오류...
    [Review] 버그때문에 행복하십니까? 살림살이 좀 나아지셨습니까?
    김진회님이 쓰신 서평보기 I 평점 I 조회수(1795) I 공감 (0) I 블로그
    책 對 책 이제는 버그패턴이다! "버그 패턴과 자바" vs. 버그 영원히 안녕 "Writing Solid Code (버그안녕)"우리 개발자들은 버그 없는 세상에서 살고 싶습니다. 버그가 여자친구와 데이트 할 시간을 뺏으며, 버그가 팀장에게 쪼임을 당하게 하고, 버그가 여자친구도 못사귀게 하고,버그가 밤샘을 시키게 하네요. 개발자의 필수 능력 중 하나가 아마도, 디버깅이 아닐까 합니다. 프로그래밍을 잘하는 것도 필요하지만, 완벽한 인간이 아닌 이상, 아무리 열심히 해도 버그 없는 프로그램...
    처음 만나는 전자기학...
    곽동주
    선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
    쉽게 배우는 소프트웨어 공학...
    김치수
    선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
    최신 통신이론...
    윤남일
    선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
     
    전체평균(27)
    회원평점   회원서평수 4
    평가하기가 지극히 애매하지만
    김인태 님  2005-12-21
    프로그램 입문자라면 볼 만한 책
    송재운 님  2004-12-24
    NullPointerException
    이상화 님  2004-02-25
    [Review] 버그때문에 행복하십니까? 살림살이 좀 나아지셨습니까?
    김진회 님  2003-06-02
    오늘의 키워드 : "패턴"
    [추천] Patterns
    [Inter-view] 벌레의 유형 - 세스코 제공 -[완료]
    Eric Allen 의 최근 저서
     
    Logan the Lion: Loves to Go Camping
    25,860원
    (23%↓+1%)
     
    The New Way
    12,930원
    (16%↓+1%)
     
    Mastering Maya 2009
    72,510원
    (26%↓+1%)
     
    Body Language: Advanced 3D Character Rigging
    51,790원
    (26%↓+1%)
     
    Edgeloop Character Modeling for 3D Professionals Only
    45,910원
    (18%↓+1%)
     
    인포북 출판사의 신간
    (노무현의)외로운 전쟁
    김용한 저
    9,900원
    (10%↓+5%)
     
    (요리 톱스타 보라돌이맘의)집밥 365일
    박미경 저
    10,800원
    (10%↓+5%)
     
    청춘남미
    차유진 저
    11,700원
    (10%↓+5%)
     
    JDK 1.4 튜토리얼
    Gregory Michael Travis/송종훈 저
    18,000원
    (10%↓+5%)
     
    STL 튜토리얼 및 레퍼런스 가이드 (2/E)
    David R. Musser/정승진 저
    22,500원
    (10%↓+5%)
     
    이메일주소수집거부