'러버덕 디버깅'에 대해서 알아보자
학습방법론 중에 꽤 효과적이라 알려진 방법이 있습니다.
무엇을 배우고 나면 흰 종이를 책상에 꺼내어, 펜을 들고 배운 내용을 그대로 설명하듯 적는 방법인데요.
이를 백지복습법이라고 합니다.
이 학습법을 통해 학습자는 내가 무엇을 알고 있고, 무엇을 잘 알지 못하고 있는지 알 수 있습니다. (메타인지라고 합니다)
사람은 어떤 것을 처음 배울 때, 실제로는 배운 내용을 충분히 알고있지 못함에도 알고 있다고 착각한다는 것입니다.
학습자는 어떠한 힌트도 존재하지 않는 백지에서 처음부터 끝까지 지식을 알고 있는지 온전하게 테스트해볼 수 있습니다
프로그래밍 문제 해결 방법 중에서도 이와 맥을 같이하는 방법이 있습니다.
러버덕 디버깅 Rubber Duck Debugging 이라고 합니다.
백지랑 오리? 디버깅? 무슨 뜬금없는 진행이냐 할 수도 있을텐데요.
방법에 대해 살펴보면 이 둘의 공통점을 알 수 있게 됩니다.
방법은 간단합니다.
어떤 오류가 발생했을 때, 그런데 그 오류가 잘 해결되지 않을 때, 누군가에게 질문하기 전에 책상 위의 오리에게 발생한 문제를 처음부터 설명하고 문제를 다시 해결해보는 것입니다.
그러면 문제가 해결됩니다. 왜 그럴까요?
오류가 났을 때, 사람은 그 현상에만 집중하기 때문입니다. 오류가 나게 되면, 즉각적으로 그 오류를 해결하려 하지만, 문제의 원인을 파악하지 못한 대처는 대개 미봉책일 수 밖에 없습니다.
하지만 이 문제가 왜 일어났는지 모르는 오리에게 문제를 처음부터 설명하다보면 왜 발생했는지 이유를 설명해야하기 때문에 자연스럽게 문제를 제대로 정의하게 됩니다. 그러면 정의된 문제에 따라 올바른 방향으로 문제해결책도 정해집니다.
문제를 잘 파악하고 있다 착각하는 것이 문제인 것입니다.
질문을 하려고 커뮤니티에 글을 작성하는데, 질문 글을 작성하면서 답을 얻게 된다는 말도 같은 이유입니다.
어떤 문제가 발생한다면 오류를 빨리 없애버리려고 하지말고, 한발짝 떨어져서 문제를 생각해보는 시간을 가져야 하겠습니다.