SMS처리 도우미
E-mail
  ldwin@naver.com
제목
  고무 오리 디버깅(Rubber Duck Debugging) 기법이란? (From. 소스놀이터)


어려운 문제에 부딪혀 고심하던 중, 글로 생각을 정리해나가다 문득 해결책을 떠올린 적이 있습니까?
이러한 방법이 고무 오리 디버깅 기법(Rubber Duck Debugging)과 관련되어 있습니다.
다시 말해, 자신의 생각을 정리하여 얻어낸 해결책인 것이죠.

보통 버그라고 하면, 예상치 못한 에러를 가리킵니다.
그런데 신기한 건, 프로그래머가 찾지 못한 버그를 일반인들은 잘 찾아낸다는 것이죠.
프로그래머는 자신이 짠 코드를 신뢰하게 되어 생각의 틀에 갇힘으로 이런 일이 일어납니다.



그럼 고무 오리 디버깅 기법이란 무엇인가요?
자신이 짠 코드를 고무 오리에게 하나씩 설명해나가는 디버깅 기법입니다.
그러다 보면, 무릎을 팍 치며 해결책을 발견하게 되는 거죠.

제삼자에게 설명할 때, 우리는 흔히 객관적으로 설명하게 됩니다.
여기에 고무 오리 디버깅 기법의 효율성이 숨어있는 것입니다.

그럼 구체적으로 어떻게 할 수 있을까요?
자신의 코드를 줄단위로 고무 오리에게 설명해나갈 수 있습니다.
1. "이 줄은 반복문을 통해 값들을 배열에 할당하는 것이야!"
2. "다음 줄은, 배열의 값들을 무작위로 출력하는 기능이야"
3. "이번 줄은 메모리에 할당된 값을 초기화하는 것이지"

이런 식으로 자신의 생각을 객관적으로 정리해나가는 것이죠.

버그를 잡을 때, 다른 동료직원에게 테스트해달라고 할 수 있지만, 반복되면 싫어하게 되죠.
이 때, 먼저 고무 오리에게 설명하는 것입니다.
그래도 해결되지 않을 때, 동료 직원에게 물어본다면 테스터 역할을 더 잘 받아들일 것입니다.



프로그래밍 언어마다 디버깅 툴 또는 디버깅 도구가 있습니다.
현재 zooo.kr에서 다루는 프로그래밍 동영상 강의가 주로 PHP언어에 대한 것입니다.

그럼 PHP언어에서 고무 오리 디버깅 기법 외에, 실제적인 역할을 하는 디버깅 도구가 있을까요?
"xDebug"라는 디버깅 도구가 있습니다.
이러한 도구를 설치하면, 보다 손쉽게 디버깅할 수 있죠.
물론, 어떤 분들은 자바스크립트 및 HTML 형태로 출력하거나, 중단점을 직접 만들어 디버깅할지 모릅니다.
게다가 디버깅 속도도 빠를 수 있죠.

하지만, 디버깅 도구를 이용하면, 훨씬 정확하고 또 빠르게 디버깅할 수 있습니다.
관련된 내용은 다음 웹사이트를 참조할 수 있습니다.
http://xdebug.org
 

트위터, 페이스북 공유 부탁드립니다~!
트위터   페이스북


  • 패스워드
           
X