러버덕 디버깅

안녕하세요? 소프트웨어 교육기업 코드스쿼드에서 잉여로움을 담당하고 있는 클라우드 및 디비 마스터 정호영입니다.

코드스쿼드 / 조회수 : 2066

오늘은 러버덕 디버깅(rubber duck debugging) 이라는 기법을 소개해 드리려고 이 글을 쓰게 되었습니다. 글을 쓰기 위해 먼저 검색을 해 보니 사실 제 글이 아니더라도 이미 좋은 링크의 글들이 있더군요. 그래도 이왕 글을 쓰기로 마음을 먹었으니 짧게나마 글을 써 봅니다.

Rubber Duck (고무오리)

위 사진이 러버덕입니다. 러버덕 디버깅은 문제 해결의 한 방법이고 매우 간단하고 효과적인 방법입니다.

이 방법은 어떤 문제가 잘 해결되지 않을 때 러버덕, 혹은 테디베어, 라이언, 브라운 등등 가상의 인물(?)에게 문제를 설명하고 문제의 해결을 시도해 보는 것입니다.

실제로 저는 이 방법을 ‘동수와 대화하기’라는 저만의 방법으로 오래 전부터 사용하고 있었는데 — 동수는 실존하는 인물이 아니라, 고등학교를 갓 졸업하고 회사에 인턴으로 취업한 가상의 제 친구입니다. — 러버덕 디버깅을 통해서 많은 사람들이 이미 비슷한 방법을 사용하고 있다는 사실을 알았습니다.

제 첫 회사의 팀장님은 문제가 잘 안 풀리면 팔짱을 끼고 사무실을 왔다 갔다 하면서 혼자 중얼중얼 했는데 이것도 비슷한 해결 방법인 듯 합니다. 팀장님은 상당히 멋진 분이셨습니다만.

러버덕 디버깅이 이상하다고 느껴지면 대안이 하나 더 있는데, 이건 현실세계의 동료나 누군가에게 여러분의 문제를 설명하는 것입니다. 커뮤니케이션 비용이 발생하고 조금 더 힘들어지긴 하겠지만, 그래도 여러분이 겪은 문제를 누군가에게 이해시키는 과정을 겪는 과정을 통해 문제 자체가 그냥 해결되는 경우도 있고, 다른 누군가의 조언을 받을수도 있습니다.

문제를 해결하는 과정은 무엇인지도 모르는 문제를 풀려고 이것저것 아무거나 해보는 것이 아닙니다. 문제의 발생이 무엇인지 인식하고, 그 문제를 정확히 정의하고, 해결책에 대한 가설을 세운 후, 실험을 통해 가설의 정확도를 검증하는 과정입니다. 러버덕 디버깅은 이상해 보여도, 여러분의 문제 해결 능력을 향상시켜 주는 좋은 방법임이 분명합니다.

러버덕 디버깅을 쓰려고 마음먹게 한 글 — 신입 프론트엔드 개발자를 위한 면접 조언 https://taegon.kim/archives/5770

한글로 된 러버덕 디버깅에 관한 조금 더 긴 글: http://wikibook.co.kr/article/rubber-duck-problem-solving/

기업문화 엿볼 때, 더팀스

로그인

/