파이썬은 인터프리터인가? 컴파일인가? 실행 과정 완벽 정리
안녕하세요. 파파대니입니다.
파이썬을 사용하다 보면 인터프리터인지, 컴파일인지 헷갈릴 때가 있습니다.
파이썬은 인터프리터 언어로 알려져 있지만, 내부적으로는 컴파일과 인터프리터 방식을 모두 사용하는 혼합형 언어입니다.
아래에 파이썬의 동작 방식을 설명드리겠습니다.
1. 파이썬의 실행 과정
파이썬 코드가 실행되는 과정은 크게 세 단계로 나뉩니다:
- 소스 코드 → 바이트코드로 컴파일 (컴파일 단계)
- .py로 작성된 파이썬 소스 코드는 먼저 바이트코드(Bytecode)로 변환됩니다.
- 이 바이트코드는 .pyc 파일로 저장될 수도 있으며, 이는 파이썬 가상 머신(PVM)이 실행할 수 있는 중간 코드입니다.
- 이 과정은 자동으로 이루어지며, 사용자가 명시적으로 수행할 필요는 없습니다.
- 바이트코드 → 실행 (인터프리터 단계)
- 생성된 바이트코드는 파이썬 가상 머신(PVM: Python Virtual Machine)에서 실행됩니다.
- PVM은 인터프리터로 동작하며, 바이트코드를 읽고 실행합니다.
2. 혼합형 동작 방식의 장점
- 컴파일 언어의 일부 장점 활용
- 소스 코드를 바이트코드로 변환하기 때문에 실행 속도가 비교적 빠릅니다.
- 한 번 변환된 바이트코드는 재사용이 가능하며, 실행 시마다 컴파일할 필요가 없습니다.
- 인터프리터 언어의 유연성 제공
- 실행 중에 코드를 동적으로 해석하고 실행할 수 있습니다.
- 디버깅과 개발 과정에서 빠르게 수정하고 실행할 수 있는 장점이 있습니다.
3. 파이썬의 다양한 구현 방식
파이썬은 여러 구현체가 있으며, 구현체에 따라 실행 방식이 약간씩 다를 수 있습니다.
- CPython (가장 일반적인 구현체)
- 위에서 설명한 방식으로 작동하며, C 언어로 구현되었습니다.
- 파이썬 표준 구현으로 대부분의 개발자가 사용하는 버전입니다.
- PyPy
- JIT(Just-In-Time) 컴파일러를 사용하여 실행 속도를 높인 구현체입니다.
- 프로그램 실행 중 자주 사용하는 부분을 기계어로 컴파일하여 속도를 개선합니다.
- Jython
- Java 기반 구현체로, 파이썬 코드를 바이트코드로 변환하여 JVM(Java Virtual Machine)에서 실행합니다.
- IronPython
- .NET 플랫폼을 기반으로 실행되며, CLR(Common Language Runtime) 위에서 동작합니다.
- MicroPython
- 소형 임베디드 시스템에서 동작할 수 있도록 설계된 경량 파이썬 구현체입니다.
4. 결론
- 파이썬은 혼합형 언어로, 소스 코드를 바이트코드로 컴파일한 뒤 가상 머신에서 실행하는 구조를 사용합니다.
- 다양한 구현체에서 실행 방식이 다를 수 있지만, 일반적으로 CPython은 위와 같은 단계를 따릅니다.
- 따라서 인터프리터 방식으로 이해하되, 내부적으로 컴파일 단계가 있다는 점을 염두에 두면 좋습니다.
⬇️ 참고하면 좋은 글 ⬇️
C++ EXE vs C# EXE: 윈도우 실행 흐름 완벽 비교
C++ EXE vs C# EXE: 윈도우 실행 흐름 완벽 비교
C++ EXE vs C# EXE: 윈도우 실행 흐름 완벽 비교 안녕하세요. 파파대니입니다.C++로 작성된 EXE 파일과 C#으로 작성된 EXE 파일은 Windows 환경에서 실행되는 방식에 있어 몇 가지 중요한 차이점이 있습니
papa-danny.tistory.com
C# vs Python: 컴파일 언어와 인터프리터 언어의 이해
C# vs Python: 컴파일 언어와 인터프리터 언어의 이해
C# vs Python: 컴파일 언어와 인터프리터 언어의 이해안녕하세요. 파파대니입니다.프로그래밍 언어들은 코드 실행 방식에 따라 컴파일 언어와 인터프리터 언어로 나뉩니다. 대표적인 언어인 C
papa-danny.tistory.com
초보자를 위한 REPL과 인터프리터 개념 이해
초보자를 위한 REPL과 인터프리터 개념 이해안녕하세요. 파파대니입니다."REPL"과 "인터프리터"는 밀접한 관련이 있지만, 동일한 개념은 아닙니다. 차이를 이해하려면 두 용어의 정의와 역할을
papa-danny.tistory.com