코딩 문제를 풀다 보면 학생은 먼저 “정답이 무엇인가요?”를 묻고 싶어집니다. 화면에 원하는 숫자가 나오지 않거나 프로그램이 멈추면, 틀린 줄을 빨리 고쳐 다시 실행하는 것이 가장 가까운 목표처럼 보입니다.

하지만 제가 개발자로 오랫동안 일하며 가장 많이 했던 일은 정답 코드를 외우는 일이 아니었습니다. 예상과 다른 결과가 나왔을 때 프로그램을 멈추고, 값과 실행 순서를 확인하며, 원인을 하나씩 좁혀 가는 일이었습니다. 그래서 코딩 수업에서도 완성된 답을 보여 주는 것보다 학생이 자신의 코드가 움직이는 과정을 직접 살펴보는 시간을 중요하게 생각합니다.

정답을 아는 것과 원인을 아는 것은 다릅니다

예를 들어 반복문의 결과가 15가 되어야 하는데 10이 나왔다고 해 보겠습니다. 조건이나 범위를 정답 코드와 똑같이 바꾸면 당장은 문제가 해결됩니다. 그러나 어느 순간부터 값이 달라졌는지 이해하지 못했다면, 비슷한 문제가 생겼을 때 다시 답을 기다리게 됩니다.

디버깅은 프로그램을 원하는 지점에서 잠시 멈추고 한 줄씩 실행하면서 변수의 값과 조건의 판단을 확인하는 과정입니다. 학생은 “이 줄이 틀렸다”는 설명을 듣는 데서 그치지 않고, 자신이 예상한 흐름과 실제 흐름이 어디에서 갈라졌는지 비교할 수 있습니다.

오류 메시지도 프로그램이 주는 정보입니다

처음 코딩을 배우면 빨간 오류 메시지가 실패처럼 느껴질 수 있습니다. 하지만 오류 메시지에는 문제가 발생한 파일과 줄, 오류의 종류가 담겨 있습니다. 모든 내용을 한 번에 해석하지 못하더라도 파일명과 줄 번호부터 확인하는 습관을 들이면 막연한 두려움이 구체적인 질문으로 바뀝니다.

오류가 나지 않는 프로그램도 디버깅이 필요합니다. 실행은 되지만 결과가 다를 때는 문법 오류가 아니라 프로그램의 생각 순서가 어긋난 경우가 많습니다. 이때는 중단점에서 멈춘 뒤 변수가 언제 바뀌었는지, 조건식이 왜 참이나 거짓이 되었는지를 확인해야 합니다.

디버깅은 틀린 코드를 벌주는 시간이 아닙니다.

내가 예상한 프로그램과 실제로 움직이는 프로그램을 비교하며, 생각을 더 정확하게 만드는 과정입니다.

한 줄씩 실행하면 코드가 읽히기 시작합니다

초보 학생에게 반복문과 함수는 종이에 적힌 문장처럼 보이기 쉽습니다. 그러나 디버거로 한 줄씩 진행하면 현재 실행 중인 줄이 표시되고, 반복할 때마다 변수 값이 달라지는 모습을 볼 수 있습니다. 함수 안으로 들어갔다가 다시 돌아오는 흐름도 눈으로 따라갈 수 있습니다.

이 경험은 문제를 고칠 때만 유용한 것이 아닙니다. 아직 완전히 이해하지 못한 코드를 읽는 방법이 됩니다. 긴 코드를 한꺼번에 보지 않고 “지금 실행되는 줄은 어디인가”, “이 줄을 지난 뒤 어떤 값이 바뀌었는가”를 확인하면 프로그램의 구조가 조금씩 보이기 시작합니다.

수업의 질문도 달라져야 합니다

학생이 막혔을 때 바로 정답을 알려 주면 수업은 빠르게 진행됩니다. 하지만 프로그램을 만드는 힘을 기르려면 질문을 조금 바꿀 필요가 있습니다. “정답이 뭐예요?”보다 “어디까지는 예상대로 실행됐나요?”, “이 줄을 지나면 값이 얼마가 될까요?”라고 묻는 편이 좋습니다.

물론 처음부터 학생 혼자 모든 오류를 해결하게 둘 수는 없습니다. 선생님은 확인할 위치를 좁혀 주고, 오류 메시지에서 먼저 볼 부분을 알려 주며, 한 단계씩 살펴보도록 안내해야 합니다. 중요한 것은 답을 감추는 일이 아니라, 답에 도착하는 과정을 학생의 경험으로 남기는 것입니다.

프로그램을 만들기 위한 코딩

기초 문법을 배우는 동안에는 짧은 예제가 많아서 정답과 오답이 분명해 보입니다. 하지만 실제 프로그램은 여러 파일과 함수, 입력값이 연결됩니다. 한 곳을 수정하면 다른 곳의 결과가 달라질 수 있고, 사용자가 예상하지 않은 방식으로 입력할 수도 있습니다.

머스트 컴퓨터학원이 첫 수업부터 VS Code를 사용하는 이유도 이 과정과 연결됩니다. 파일을 관리하고 실행하는 데서 끝나지 않고, 중단점과 변수 확인 같은 개발 도구를 자연스럽게 익혀 가기 위해서입니다. 수업의 목표는 예제의 정답을 많이 기억하는 것이 아니라, 자신이 만든 프로그램을 살펴보고 고칠 수 있는 힘을 기르는 데 있습니다.

직접 따라 해 보고 싶다면
머스트랩의 VS Code 디버깅 시작하기에서 중단점, 한 줄 실행, 변수 확인을 짧은 파이썬 예제로 연습할 수 있습니다.
정답을 한 번 맞히는 것보다, 틀렸을 때 스스로 다시 찾아갈 수 있는 힘이 더 오래 남습니다.
코딩 이야기 전체 글 보기 →