콘텐츠로 이동

04. 파이썬 인터프리터 (번역가)

"파이썬 파일(.py)은 그 자체로는 아무 일도 못하는 텍스트 쪼가리입니다. 이것을 읽어주는 번역가가 필요합니다."

1. 인터프리터 (Interpreter)

컴퓨터(CPU)는 0과 1(기계어)밖에 모르는 단순한 기계입니다. print("Hello") 같은 영어 문장은 절대 이해 못합니다. 그래서 우리말(파이썬 코드)을 기계어(CPU가 아는 말)로 번역해주는 번역가가 필요합니다. 그게 바로 우리가 설치한 Python입니다.

  • 우리가 하는 일: 요리 레시피(.py 파일)를 작성한다.
  • 파이썬이 하는 일: 레시피를 한 줄씩 읽으면서 즉석에서 요리(실행)한다.

2. 두 가지 실행 방식

1) 대화형 모드 (REPL: Read-Eval-Print Loop)

터미널에 그냥 python만 치면 나오는 화면입니다. "읽고(Read), 해석하고(Eval), 출력하고(Print), 반복한다(Loop)"라는 뜻입니다.

# 터미널 상태 ($)
$ python

# 파이썬 세상 진입 (>>>)
>>> print("Hello")
Hello
>>> 1 + 1
2

살려주세요! 못 나가겠어요!

많은 초보자가 >>> 상태에서 lscd를 치거나, 나가는 법을 몰라 당황합니다.

  • 나가는 주문: exit() 또는 quit() 입력 후 엔터.
  • 단축키: Ctrl + Z 후 엔터 (윈도우) / Ctrl + D (맥)

2) 스크립트 모드 (파일 실행)

우리가 주로 하게 될 방식입니다. 긴 코드를 파일에 저장해두고 한 번에 실행시킵니다.

python main.py
  • 의미: "파이썬 번역가님(python), 이 파일(main.py) 좀 처음부터 끝까지 읽고 실행해주세요."

3. 에러의 주체 구분하기 (핵심!)

초보자가 가장 많이 헷갈리는 것이 "누가 낸 에러인가?" 입니다. 이걸 알아야 구글링을 하든 AI에게 물어보든 할 수 있습니다.

graph TD
    User["명령어 입력"] --> Check{"프롬프트 모양?"}

    Check -->|"$ 또는 %"| Shell["쉘 (비서)"]
    Check -->|">>>"| Py["파이썬 (번역가)"]

    Shell --> Error1["🔴 쉘 에러<br>Command not found"]
    Py --> Error2["🔴 파이썬 에러<br>Traceback ..."]

    style Error1 fill:#ffcdd2,stroke:#c62828
    style Error2 fill:#ffcdd2,stroke:#c62828

🔴 쉘(Shell) 에러

파이썬 번역가가 도착하기도 전에 문지기(쉘) 선에서 컷 당한 상황입니다.

# 맥
zsh: command not found: pyton

# 윈도우
'pyton'() 내부 또는 외부 명령, 실행할  있는 프로그램...이 아닙니다.
  • 특징: Traceback이라는 단어가 없음.
  • 원인: 명령어 오타(pyton), 또는 설치 안 됨, 또는 PATH 설정 안 됨.
  • 해결: 오타 확인, 파이썬 재설치(PATH 체크).

🔴 파이썬(Python) 에러

파이썬 번역가가 코드를 읽다가 "이건 해석 못하겠는데요?" 하고 뱉은 에러입니다.

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    prnt("Hello")
NameError: name 'prnt' is not defined
  • 특징: Traceback (most recent call last) 라는 문구가 무조건 뜸.
  • 원인: 오타, 문법 오류, 들여쓰기 실수 등.
  • 해결: 에러 메시지 맨 마지막 줄(NameError...)을 읽거나 AI에게 복사해서 물어본다.

AI에게 질문하는 법

  • 쉘 에러일 때: "터미널에서 명령어를 찾을 수 없대. 환경 변수 문제일까?"
  • 파이썬 에러일 때: "코드 실행 중에 Traceback 에러가 났어. 코드랑 에러 메시지 줄게 분석해줘."