고무 오리와 디버깅하기

꽈악. 꽈아악.

구 블로그 티스토리에서 간단한 윤문을 거쳐 이동한 글입니다. 사진의 출처 링크가 404가 뜨네요…

image.png

빨간 고무오리가 퍽 인상적입니다.

개발을 하다 보면, 다른 분들에게 문제를 어떻게 해결할지 질문하고 싶어질 때가 있습니다. 하지만 주변에 아무도 없거나, 모두가 나에게 신경을 쓸 수 없을 정도로 바쁜 거 같다면 어떻게 해야 할까요?

그럴 때 사용하는 것이 고무오리입니다. 고무 오리가 아니어도 괜찮아요. 작은 인형이나, 상상 속의 무언가라도 준비하세요. 당신이 오타쿠라면 최애 캐릭터의 굿즈도 좋습니다.

준비한 오리나 오리-유사체를 앞에 두고 오리에게 현재 겪고 있는 문제를 최대한 자세히 설명합니다. 이건 무엇을 위한 어떤 건데, 이 부분은 어떤 역할을 하고… 최대한 오리가 이해할 수 있도록 하나하나 설명해봅시다. 그 과정에서 당신은 높은 확률로 문제의 해결책을 깨닫게 됩니다.

이런 방법을 고무 오리 디버깅 또는 러버 덕킹(Rubber Ducking)이라고 합니다. 문제를 설명하는 과정에서 다시금 흐름을 파악하고, 버그를 수정하게 됩니다. 꽤 오래 전부터 개발자들 사이에 알려져 있는 방법이고, 보기보다 훨씬 유용합니다.

42 서울의 커리큘럼에 따라 동료평가를 하다 보면, 자기가 짠 코드임에도 평가자에게 설명하는 과정에서 문제를 눈치채는 경우가 있으셨을지도 모릅니다.(주 : 당시 42 서울에서 라-피신 과정을 수행 중이였습니다.) 다이소에서 고무오리 하나 사 와서 평가를 맡겨보면, 적어도 그런 일은 일어나지 않을지도 모르지만, 무엇보다 귀엽습니다.

그리고 재미있게도, 꼭 프로그래밍이 아니라도 일상 생활의 문제나 어떤 공부에서도 충분히 유용한 기법입니다. 가르치면서 배우는 법이죠. :)

오리 대신 AI를 쓰면 뚝딱 해결될 거 같은 시대지만, 내 머릿속에서 문제를 해결할 수 있는 건 여전히 좋은 능력입니다.