제목
파이썬 코드가 어떻게 실행되는가?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Python의 실행 원리에 대해 궁금한 초보 개발자 및 중급자
- 컴파일러와 인터프리터의 차이를 이해하고자 하는 학습자
compiler
,interpreter
,PVM
등 핵심 개념을 탐구하는 개발자
핵심 요약
- 인터프리터는
.py
파일을 바이트코드(.pyc
)로 변환하는 역할을 수행 - PVM(Python Virtual Machine)은 바이트코드를 라인-by-라인으로 실행
- 컴파일러 기반 언어(C++, Java)와 달리 Python은 인터프리터 + PVM 기반으로 실행됨
섹션별 세부 요약
1. 컴파일러 vs. 인터프리터
- C++, Java는 컴파일러로
.cpp
,.java
를 머신 레벨 바이너리로 변환 - Python은 인터프리터로
.py
를 바이트코드로 변환 - 바이트코드는
__pycache__
폴더에.pyc
파일로 저장됨
2. 인터프리터의 역할
- 인터프리터는 번역자 역할: 외국어 레시피를 시각적 지시문(바이트코드)로 변환
- 코드 변환 과정에서 원본
.py
파일은 직접 실행되지 않음
3. PVM의 역할
- PVM은 바이트코드를 라인-by-라인으로 실행
- 루프, 조건문 등 런타임 동작을 처리
- 실제 최종 결과(코드 실행 결과)는 PVM이 생성
4. 예시 다이어그램
.py
→ 인터프리터 →.pyc
→ PVM → 실행 결과- 번역자(인터프리터)와 셰프(PVM)의 역할 분리
결론
- 인터프리터와 PVM의 협업이 Python 실행 핵심:
compiler
기반 언어와의 차이점 명확화 .py
→.pyc
→ PVM의 흐름을 이해하면 디버깅 및 성능 최적화에 도움- 예시:
print("Hello")
는 인터프리터가 바이트코드로 변환 후 PVM이 실행 - 핵심 팁:
__pycache__
폴더 확인 시 바이트코드 파일이 생성됨을 확인하세요