CODING · DEBUGGING

코딩 오류 메시지,
재현·범위 축소·가설·수정 순으로 해결합니다

오류가 나면 코드를 무작정 지우거나 검색한 답을 그대로 붙이는 학생이 많습니다. 디버깅은 실패가 아니라 프로그램의 실제 동작을 확인하는 학습 과정입니다.

작성 예시와 점검표 바로 보기 ↓

오류의 종류에 따라 확인 순서가 달라집니다

에러 메시지가 있는 경우와 프로그램은 실행되지만 결과가 틀린 경우를 나누어 봅니다.

문법 오류

괄호, 콜론, 따옴표, 들여쓰기처럼 코드를 해석하기 전에 발견되는 문제입니다.

표시 줄 주변
실행 오류

코드 실행 중 잘못된 자료형, 없는 키, 범위 밖 인덱스 등에서 멈춥니다.

값과 자료형
논리 오류

프로그램은 끝까지 실행되지만 조건이나 계산 순서 때문에 예상과 다른 결과가 나옵니다.

예상-실제 비교
환경·입력 문제

파일 경로, 라이브러리 버전, 입력 형식처럼 코드 밖 조건에서 발생할 수 있습니다.

재현 조건 기록

검색하기 전에 적용하는 디버깅 4단계

학생이 혼자 다시 적용할 수 있도록 각 단계의 행동과 확인 기준을 분리합니다.

같은 오류 재현

사용한 입력, 실행 환경, 오류 메시지를 그대로 기록해 다시 발생하는지 봅니다.

범위 줄이기

관련 없는 코드를 잠시 분리하고 가장 작은 입력에서도 문제가 나는지 확인합니다.

가설 하나 세우기

자료형, 조건식, 변수 값처럼 확인할 원인을 하나만 정하고 출력이나 도구로 검증합니다.

회귀 테스트

수정 후 원래 입력과 경계값을 모두 실행해 다른 기능이 깨지지 않았는지 확인합니다.

오류 메시지를 검색할 때도 맥락을 분리합니다

개인정보나 API 키, 전체 과제 답안을 그대로 올리지 않습니다. 오류 종류와 핵심 메시지, 사용 언어와 버전, 최소 재현 코드만 정리합니다. 찾은 해결책은 코드에 맞는 이유를 설명할 수 있을 때 적용합니다.

디버깅 기록에 남길 세 가지

정답 개수만 보지 않고 설명, 적용, 재현 과정에서 달라진 행동을 확인합니다.

CHECK

재현 조건

어떤 입력과 환경에서 오류가 나는지 씁니다.

CHECK

원인 근거

예상값과 실제값이 처음 달라진 줄을 표시합니다.

CHECK

수정 검증

원래 사례와 경계값이 모두 통과했는지 남깁니다.

오류를 대신 고쳐주기보다 힌트의 크기를 조절합니다

처음에는 오류 줄을 찾는 법과 변수 값을 출력하는 방법을 안내하고, 익숙해지면 학생이 가설과 테스트를 직접 설계하게 합니다. 정답 코드를 바로 주면 디버깅 과정을 배울 기회가 줄어듭니다.

PARENT FAQ

이 주제를 상담할 때 자주 확인하는 질문

오류 메시지는 위에서부터 읽어야 하나요?

언어와 환경에 따라 다르지만 Python traceback은 보통 마지막 줄의 오류 종류와 메시지를 먼저 확인하고, 그 위의 파일·줄 호출 경로를 따라가는 방식이 도움이 됩니다.

검색한 코드를 붙여 넣어도 되나요?

출처와 동작을 이해하고 현재 코드와 환경에 맞는지 테스트해야 합니다. 민감한 정보나 과제 전체를 그대로 공유하지 않습니다.

수정했는데 다른 오류가 생겼어요.

원래 실패 사례를 다시 실행하지 않으면 한 문제를 고치며 다른 기능을 깨뜨릴 수 있습니다. 이전 테스트를 반복하는 회귀 테스트를 남깁니다.

스터디멘토 · 바로 쓰는 학습자료

Python 오류 재현·수정 기록표

본인이 작성한 짧은 코드와 입력 하나를 선택하세요. 전체 코드를 바꾸기 전에 예상 결과와 실제 결과가 처음 달라지는 위치를 찾습니다.

작성 내용은 서버로 전송하거나 저장하지 않습니다. 인쇄할 때 입력한 내용을 함께 남길 수 있습니다.

직접 실행해 확인한 Python 3 학습 예시

23과 5의 차이에서 자료형을 찾습니다

a = "2"
b = "3"
print(a + b)            # 23
print(type(a).__name__) # str
total = int(a) + int(b)
print(total)           # 5

예상과 실제 숫자 합 5를 예상했지만 문자열을 더해 23이 출력됐습니다. 실행 오류 메시지가 없어도 의도와 다른 결과는 점검 대상입니다.

원인과 수정 숫자처럼 보이는 문자열인지 확인하고, 숫자 계산이 목적일 때만 정수 변환을 적용합니다.

다음 테스트 "0"과 "3", "-2"와 "3"으로 다시 확인합니다. "two"처럼 정수로 바꿀 수 없는 입력은 ValueError가 발생하므로 입력 검증을 별도로 설계해야 합니다.

한 문제에서 확인할 행동

체크 수로 능력이나 성적을 판정하지 않습니다. 아직 하지 못한 행동을 다음 학습 순서로 정리하세요.

이렇게 기록해 보세요

학습 예시: 숫자처럼 보이는 입력 두 개를 더했는데 5 대신 23이 나오면, 더하기 연산 전에 값과 자료형을 확인합니다. 문자열 결합인지 확인하고 필요한 변환을 한 뒤 같은 입력을 다시 실행하세요.

예시를 본인 코드에 그대로 적용하지 말고 입력과 자료형을 먼저 확인하세요. 공유할 때는 이름·연락처·비밀번호·API 키를 제거합니다.

기록한 뒤, 다음 공부는 이렇게 정합니다

같은 오류를 재현하지 못한다면

입력·환경·실행 순서를 먼저 기록하고 작은 코드로 줄입니다.

실행은 되지만 값이 다르다면

예상값과 실제값이 처음 달라지는 줄의 변수와 자료형을 확인합니다.

한 입력에서만 맞는다면

0·음수·잘못된 형식처럼 목적에 맞는 경계·예외 입력을 추가합니다.

제작: 스터디멘토학부모와 학생이 최근 학습 기록을 함께 살펴보는 학습용 자료 · 수정 2026.10.16Python 동작 참고: Python 공식 문서 · int()원본 가이드: https://studymentor.kr/guides/coding-error-debugging.html#learning-checklist

현재 교재·최근 풀이·학교 일정을 기준으로

어디에서 막히는지부터
학습 순서를 함께 정리해 보세요.

코딩 학습상담 신청 →