Notice
Recent Posts
Recent Comments
Link
- Korea times
- 끌리면 오라...BGM 광고음악 라이브러리
- KartOO visual meta search engi…
- E-Book
- Channel9
- MSDN
- 여리의 작업실
- 유경상의 .NET 블로그
- window 쪼물딱 거리기
- 블루 홈(소현이 누님)
- IT 관련 전반 내용(정환이네)
- 비너스의 정보 공유(유틸리티들)
- 형기의 자료공간(디지털ERA에서 콘텐츠ERA로)
- EzineArticles (여러 분야의 글들이 올라옴)
- Relationship을 보여주는 라이브러리
- OpenRCE
- 젠틀의 블로그(무선 통신의 모든것)
- 헐랭이와 IT보안
- 워니. 추억ㅇㅔ ㅂㅣ추ㅇㅓ.
- Computer Forensics
- 토익 광장(YBM)
- Korea Times 이용하기
- Larkware Software
- TCP/UDP
- Black Hat
- DEF CON
- Slashdot
- ReallyUsefulEbooks.com Update
- 실리콘밸리 뉴스
- Application Development Trends
- Visual Studio Hacks
- MIT OCW
- Redmond Developer News
- SecurityFocus
- Microsoft Window Hacking Porta…
- Darknet - Don't Learn to Hack …
- Windows Tips, Tricks and Hacks
- Hack In the Box
- (IN)SECURE Magazine
- SuperSite Windows Vista
- Government Security
- Life is Still Talking (Good)
- PHRACK
- Found+Read(resource for startu…
- Jonathan Boutelle
- Venture Hacks
- 스마트플레이스
- All about Intellipedia
- Undocumented Windows 2000 Secr…
- HexBlog (Decompiler)
- TED (Ideas worth spreading)
- Crash Dump Analysis and Debugg…
- Rootkit
- DDK Developers(MS)
- 미친 감자의 블로그
- The Art of Assembly Language
- Chpie (키보드 후킹)
- Drivers Online
- (음악) Delicate SONG
- Reverse Engineering Community
- Software Best Practices
- Sara Ford's WebLog
- Cheat Happens
- Debugging,Unpacking,Assembling…
- 윤석찬님 블로그
- OK 괜찮아 다 잘 될거야
- RingBlog
- Art Life :: 하늘소
- IT's Paradise
- John Robbins!
- Wintellect
- Hacked Gadgets
- 소프트웨어 이야기
- Ryan Naraine's Zero Day
- VULN
- Stay Secure
- EBS 영어 공부(블루워터)
- 101BLoG : "Bright Size Life" o…
- Hacker Challenge
- Hackers Center
- White Hat, Chicago Con
- Ethical Hacker Network
- ChaseNet (Security)
- TechTarget
- Entrepreneur
- Infopackets
- Popular Science
- Dark Reading - The Business of…
- How Stuff Works
- codeDriver - Crack (역공학)
- Gadget (Windows)
- Serious Code
- Iguacu Blog(블루문)
- SecurityProof
- Power of Community(Hacker)
- Crack ?
- Security Freak
- Data Network Resource
- FoundStone - Security Consulti…
- Google Online Security Blog
- (BOOK) Cool DogBooks
- SachaBarber (좋은 개발자)
- System Software Incorporation
- 스카이 벤처
- NewsTorrent
- 글로벌 IT 네트워크
- Ethical Hacking and Infosec
- Realms of Hacking tricks
- CodeBreakers Journal
- Anti Rootkit Blog
- The Reverse Code Engineering C…
- Anti-Debug Tools
- Reverse Code Engineering Video…
- Damn Vulnerable linux
- Security Problems
- French Reverse Engineering Tea…
- Monac
- Open Source Vulnerability Data…
- Viruschaser 검사(바이러스)
- Windows Tips
- 보안 대처 연습
- [Download] Kartz CD
- [Download] FlMS Download
- [Download] DDL2
- 중국 해킹 사이트(안전중국)
- 바이러스 분석
- Javascript 전문가
- Virus Alert Zone (바이러스 분석)
- Computer World
- 문스랩닷컴(보안)
- Unpack China
- Black Storm Reverse Engineerin…
- 역공학 Reverser
- 문화 망명지 - 시, 소설
- WPF MVP
- Research Channel
- The Problem Solver - C# MVP
- Reversing - 리버스 엔지니어링
- Nigel Spencer's Blog (.NET)
- Kirill Osenkov (.NET C# IDE Te…
- H33T (BitTorrnet 검색 사이트)
- ITL (해킹, 보안)
- ITL (Invisible Things Lab) Blo…
- ebook, pdf, chm
- 주식 - 멘토클리닉
- CherryLove - 바이러스, 백신, 악성코드
- PMP
- 영원한 해커, hacker
- 리버싱, PE
- 신호철 - dsphome
- TechEd 2009
- SHOUT
- [도서] 오디오북
- [도서] 전자책
- [도서] 국내도서요약
- [도서] 해외도서요약
- TopCorder - 프로그래밍 연습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- security
- Microsoft
- VSTS
- 디버그랩
- english
- C#
- visual studio 2010
- WPF
- Windows
- 구글
- 디버깅
- 마이크로소프트
- .NET Framework
- 해킹
- 비주얼스튜디오
- VSTS 2010
- 책
- Windows 7
- 비주얼 스튜디오
- MVP
- 닷넷
- .net
- 보안
- .net framework 4
- hacking
- debugging
- 역공학
- Visual Studio
Archives
- Today
- Total
NaggingMachine
책 이야기 #6 - 프로그램은 왜 실패하는가? Why Programs Fail? 본문
이 글은 이 책의 역자이신 류광님으로부터 부탁을 받아 작성한 추천사입니다. 정말 좋은 책인데, 강컴에서 인기도 많아 흐믓해하고 있습니다. ^^ (이미지를 클릭하시면 구매 페이지로 이동합니다) 또한 이와 관련해서 다음달 2월 12일에 INETA 세미나를 개최합니다. 많은 분들의 참여 부탁드립니다.
추천사
'왜 프로그램이 실패할까?' 이 책의 제목이기도 한 이 문구는 소프트웨어 개발자들의 수명을 단축시키는 가장 큰 요인 중의 하나일 것이다. 많은 소프트웨어 개발자가 하루에도 수없이 되뇌이는 말이자, 그에 대한 답을 스스로 찾아내야 하는 고난의 시작을 알리는 신호탄이기도 하다. 하지만 이 책의 제목은 많은 사람들의 관심을 끌기 위한 일명 '낚시(trolling)'용일뿐, 실제로 저자가 하고자 했던 핵심적인 말은 부제로 사용된 '시스템적인 디버깅을 위한 지침서(A Guide to Systematic Debugging)'라고 생각한다. 디버깅 관련 컨퍼런스를 진행하거나 컨설팅을 해보면 쉽게 해결할 수 있는 문제를 몇일 동안 고생하고도 해결하지 못하는 개발자들을 심심찮게 만날 수 있다. 조금만 더 '시스템적'으로 접근했다면 나의 도움 없이도 쉽게 해결할 수 있지 않았을까라는 생각을 많이 하게 된다. 그렇다면 과연 시스템적인 디버깅이란 과연 무엇을 말하는 것일까? 결론부터 말하자면, 이 책에서 그 답을 얻을 수 있다.
오늘날에는 소프트웨어를 아무런 계획이나 절차 없이 개발하는 경우는 드물다. 왜? 실패할 확률이 높기 때문이다. 우리의 선배 개발자, 그 선배의 선배 개발자들이 맨땅에 헤딩하기 식으로 프로젝트를 진행하면서 얼마나 많은 프로젝트를 실패했는가? 자신을 스스로 소프트웨어 개발자라고 부르는 사람이라면, 소프트웨어를 개발하기 위해서 적어도 '요구 사항 분석 - 설계 - 개발 - 테스트 - 유지 보수' 단계가 필요하다는 것쯤은 다 알고 있을 것이다. 자, 그럼 디버깅을 잘하기 위해서는 어떻게 해야 할까? 오류가 난 부분에 중단점(BreakPoint)을 설정하고 하나씩 따라가 보는가? 반복문에서 오류가 발생하면 '작거나 같다(<=)'를 '작다(<)' 또는 '크다(>)'로 바꿔보며 문제를 해결하고 있지는 않는가? 만약 그렇다면, 여러분은 디버깅 프로세스를 학습할 필요가 있다. 이 책은 내용 구성 자체가 디버깅 프로세스를 따르고 있다.
상식적으로 생각해보자. 문제가 발생하면 그 문제가 무엇인지부터 알아내야 한다. 문제가 무엇인지도 모르면서 문제를 해결한다는 것은 어불성설(語不成說)이다. 그렇기에 2장의 제목처럼 '문제점 추적' 과정을 거쳐야 한다. 문제를 해결하기 위해서는 문제를 계속해서 만들어 낼 수 있어야 한다. 문제가 무작위로 발생해서는 문제를 해결할 수 없다. 언제 발생할지도 모르는 문제를 어떻게 해결했다고 할 수 있겠는가? 따라서 4장의 '문제점 재현' 과정이 필요한 것이다. 많은 개발자들은 문제점 재현 과정을 생략하기도 한다. 대부분의 문제는 '언제나' 발생하니까. 하지만 우리가 밤을 지새우고 괴로움에 몸이 지치는 이유는 언제나 발생하는 문제점이 아니라 특정한 상황에서만 발생하는 문제점이기 때문에 문제점의 무작위적인 특성을 없애야만 문제점을 쉽게 해결할 수 있다. 그 다음으로는 실제로 문제점을 해결하는 과정이 필요한데, 자세한 내용은 여러분이 직접 책을 읽어보면서 배웠으면 한다. (영화 예고편에 가장 중요한 내용, 심지어는 결론까지 모든 내용을 다 소개하는 TV 프로가 가장 얄밉다)
나는 번역서가 나오기 전에 이미 이 책을 읽어보았고 주위의 많은 사람들에게 추천을 했다. 그만큼 이 책의 내용이 만족스러웠고 이 책만큼 번역이 되어 국내 개발자들에게 디버깅에 관한 새로운 인식을 심어주었으면 좋겠다라고 생각한 책도 드물다. 그리고 이 책에 가장 적합한 역자로 '류광'님을 떠올렸다. (나의 바램이 이루어진 걸까?) 국내 개발자 서적의 대표 역자이신 '류광'님으로부터 번역에 관한 완성물을 전달받게 되었고 책을 읽고 난 후, 이 책이 '류광'님의 책으로 다시 태어났음을 알게 되었다. 이해하기 쉽게 쓰였음은 물론이거니와 독자들을 위한 '역주'에 많은 노력을 기울였음을 알 수 있다. 쉽지 않은 내용과 많은 분량에도 불구하고 작업을 마무리해주신 류광님께 박수를 보내고 싶고, 많은 국내 개발자분들이 이 책으로부터 시스템적인 디버깅에 관한 개념과 실무에 대해서 배울 수 있기를 기대한다.
'Book' 카테고리의 다른 글
책 이야기 #8 - Things That Make Us Smart (4) | 2007.02.07 |
---|---|
책 이야기 #7 - Smart Question - 창조적 리더의 핵심능력 (4) | 2007.01.24 |
책 이야기 #5 - The OldNewThing (0) | 2007.01.23 |
번역과 집필, 합이 10권 (0) | 2006.10.10 |
책 이야기 #4 - Applications = Code + Markup by Charles Petzold (0) | 2006.09.21 |