곰인형 디버깅

곰인형에게 자신의 코드를 설명하다 보면 문제의 원인이나 해결 방법이 갑자기 떠오른다는 얘기는 유명하다. 도저히 모르겠어서 물어보려고 가서 설명하다보면 갑자기 저절로 알게 되는 경험은 누구나 해보았을 거다. 이것이 프로그래밍을 전혀 모르는 사람이나 심지어 사물을 상대로 해도 된다는 것이다.

근데 왜 하필 곰인형인지가 궁금해졌다. 그런데 검색해 보면 적어도 영미권에서는 주로 Rubber duck debugging이라고 불리는 것 같다. 이것의 출처는 The Pragmatic Programmer인데, 이 책의 Debugging 섹션을 보면 Rubber Ducking이라는 부분에서 각주로 왜 고무 오리인지 써 놓았다.

Why “rubber ducking”? While an undergraduate at Imperial College in London, Dave did a lot of work with a research assistant named Greg Pugh, one of the best developers Dave has known. For several months Greg carried around a small yellow rubber duck, which he’d place on his terminal while coding. It was a while before Dave had the courage to ask….

그럼 곰인형은 어디서 나온 것일까. 혹시 역자가 고무 오리보다 곰인형이 한국의 정서에 더 맞다고 생각해서 곰인형으로 번역한건가 했지만 확인해보니 정확히 ‘고무 오리’라고 번역되어 있었다. 사실 고무 오리란 말도 나는 너무 어색하다. 한국 사람은 오리 인형 정도로 말하지 않을까..?

아무튼 같은 내용을 곰인형을 사용해서 설명한 책도 있었다. 바로 The Practice of Programming이다. 딴 얘기지만 저자인 Brian Kernighan은 Dennis Ritchie와 함께 그 유명한 The C Programming Language를 썼으며  여기서 최초의 “hello, world” 프로그램이 탄생했다. K&R에서 K랑 R이 저 두 사람이다. 다시 돌아와서.. 저 책의 Debugging 챕터에는 다음과 같은 내용이 있다.

Explain your code to someone else. Another effective technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed “Never mind, I see what’s wrong. Sorry to bother you.” This works remarkably well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.

굳이 누가 둘 중에 뭐가 먼저인가 따지자면.. 둘다 1999년에 나왔는데 The practice of Programming이 좀 더 일찍 나왔나 보다. 오늘의 뻘짓 끝!

Leave a Reply

Your email address will not be published. Required fields are marked *