Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료
Python 프로그래밍Unit 7: 예외처리와 디버깅Topic 1: 에러 메시지 읽기

Topic 1: 에러 메시지 읽기 🔍

🎯 학습 목표

이번 토픽에서는 파이썬이 보내는 에러 메시지를 읽고 이해하는 방법을 배워요!

  • 에러 메시지의 구조 이해하기
  • 자주 만나는 에러 종류 알아보기
  • 에러 메시지로 문제 찾기

🚨 에러는 무서운 게 아니에요!

프로그래밍을 하다 보면 빨간색 에러 메시지를 자주 만나게 돼요. 처음에는 무서워 보이지만, 사실 에러 메시지는 파이썬이 우리를 도와주려고 보내는 친절한 편지예요!

에러 메시지의 구조

# 일부러 에러를 만들어 봐요 print(안녕하세요)

이 코드를 실행하면 이런 에러가 나타나요:

Traceback (most recent call last): File "example.py", line 1, in <module> print(안녕하세요) NameError: name '안녕하세요' is not defined

에러 메시지는 세 부분으로 나뉘어요:

  1. Traceback: 에러가 어디서 발생했는지 추적 경로
  2. File과 line: 정확한 파일명과 줄 번호
  3. 에러 종류와 설명: 무슨 문제인지 알려주는 메시지

🎭 자주 만나는 에러 친구들

1. NameError - 이름을 모르겠어요!

# 변수를 정의하지 않고 사용했을 때 print(message) # NameError: name 'message' is not defined # 해결 방법 message = "안녕하세요" print(message) # 정상 작동!

2. SyntaxError - 문법이 틀렸어요!

# 괄호를 닫지 않았을 때 print("안녕하세요" # SyntaxError: unexpected EOF while parsing # 해결 방법 print("안녕하세요") # 괄호를 닫아주세요

3. TypeError - 타입이 맞지 않아요!

# 숫자와 문자를 더하려고 할 때 age = 20 print("나이는 " + age + "살입니다") # TypeError # 해결 방법 print("나이는 " + str(age) + "살입니다") # str()로 변환!

4. IndexError - 범위를 벗어났어요!

# 리스트 범위를 벗어난 인덱스 접근 fruits = ["사과", "바나나", "딸기"] print(fruits[3]) # IndexError: list index out of range # 해결 방법 print(fruits[2]) # 인덱스는 0부터 시작해요

🔍 에러 메시지 읽는 꿀팁

1. 맨 아래 줄부터 읽기

에러 메시지의 맨 아래 줄에 가장 중요한 정보가 있어요!

# 예시 에러 result = 10 / 0
Traceback (most recent call last): File "example.py", line 1, in <module> result = 10 / 0 ZeroDivisionError: division by zero # ← 여기가 핵심!

2. 줄 번호 확인하기

line 숫자 부분을 보면 어느 줄에서 에러가 났는지 알 수 있어요.

3. 에러 이름으로 검색하기

NameError, TypeError 같은 에러 이름을 검색하면 해결 방법을 찾을 수 있어요!

💡 퀴즈: 에러 메시지 이해도 체크

Q1. 다음 코드의 에러는 무엇일까요?

name = "철수" print("안녕, " + Name)

정답: NameError가 발생해요!

  • name은 소문자로 정의했는데 Name은 대문자로 사용했어요
  • 파이썬은 대소문자를 구분해요

Q2. 이 에러 메시지가 의미하는 것은?

TypeError: can only concatenate str (not "int") to str

정답: 문자열과 숫자를 더하려고 했을 때 나타나는 에러예요!

  • 문자열끼리만 +로 연결할 수 있어요
  • 숫자를 문자열로 변환해야 해요: str(숫자)

✅ 에러 메시지 읽기 마스터 체크리스트

✅ 에러 메시지 읽기 마스터 체크리스트

🚀 다음 단계

에러 메시지를 읽을 수 있게 되었나요? 이제 try-except를 사용해서 에러를 우아하게 처리하는 방법을 배워볼게요!

Last updated on