본문 바로가기
platform_infra_cloud/python

Python은 어떻게 실행되는가? – 플랫폼 관점에서 본 파이썬 구조

by 죄니안죄니 2025. 4. 20.

platform/python – Python은 어떻게 실행되는가?

들어가며

Python은 인터프리터 언어입니다. 즉, 코드를 한 줄씩 읽고 해석하며 실행합니다.

많은 사람들이 Python을 “스크립트 언어”, “쉽게 배우는 언어”로 알고 있지만, 실제로 Python은 내부적으로 매우 정교한 실행 구조를 가지고 있습니다.


CPython,

PyPy, GIL(Global Interpreter Lock), 바이트코드, 가상 머신 등 복잡한 실행 플랫폼 구조가 숨어 있습니다.

(

Python은 단순히 .py 파일을 읽어 실행하는 것이 아니라, 바이트코드로 변환하고, 가상 머신(PVM)에서 동작하는 구조를 가지고 있습니다.

또한 Python은 CPython 외에도 PyPy, Jython, IronPython 등 다양한 실행 플랫폼을 통해 속도, 확장성, 호환성에 따라 선택적으로 활용될 수 있습니다.

)

이 카테고리에서는 Python의 런타임 구조(Python의 실행 흐름), 인터프리터 종류와 구조, 실행 방식, 메모리 관리 방식, 성능 관련 내부 동작 플랫폼적인 관점에서 Python이 어떻게 돌아가는지를 간단하고 명확하게 설명합니다.

 
 

Python 실행 구조 한눈에 보기(Python 실행의 실제 흐름)

.py 소스 파일
   ↓  (파싱) CPython 인터프리터가 파싱 후 AST(Abstract Syntax Tree) 생성
AST(Abstract Syntax Tree)
   ↓  (컴파일) 바이트코드로 컴파일 → .pyc 파일 생성
Bytecode (.pyc)
   ↓
Python Virtual Machine (PVM) → 바이트코드를 실행
  • Python은 소스 코드를 AST → 바이트코드 → 가상 머신 실행으로 처리함
  • 이 과정을 CPython 인터프리터가 내부적으로 자동으로 처리함

 


주요 플랫폼 개념 정리

✅ CPython

  • 가장 널리 사용되는 Python 구현체 (C언어로 구현됨)
  • 기본적으로 우리가 사용하는 python 명령어는 대부분 CPython을 뜻함

✅ PyPy

  • JIT(Just-In-Time) 컴파일러가 포함된 고성능 구현체
  • 루프 기반 연산에서 CPython보다 훨씬 빠름

✅ Jython

  • JVM 기반에서 실행되는 Python

✅ GIL (Global Interpreter Lock)

  • 멀티스레드 환경에서도 하나의 스레드만 실행 가능한 제약 요소
  • CPU 바운드 작업에서 병렬 처리 성능 저하의 원인

✅ Garbage Collector

  • 참조 카운트 + 순환 감지를 활용한 메모리 관리

✅ 바이트코드 (.pyc)

  • Python은 인터프리터지만, 실행 전 .py 파일을 바이트코드로 컴파일
  • 바이트코드는 플랫폼 독립적이며, Python VM에서 실행됨

 


메모리 관리와 GC

  • Python은 참조 카운트(reference count) 기반으로 메모리 관리
  • 순환 참조는 GC(generation-based garbage collector)가 추가로 처리
  • gc 모듈로 수동 제어 가능
 

앞으로 다룰 주제 예시 (플랫폼 관점)

  • Python 인터프리터 종류별 차이 (CPython vs PyPy vs Jython 비교)
  • GIL(Global Interpreter Lock)의 구조 원리와 병목, 멀티프로세싱 우회 전략 
  • 객체 참조 카운트와 메모리 회수 타이밍 (Python 런타임과 메모리 모델 분석)
  • sys.getrefcount(), gc 모듈 사용법 (.pyc 캐싱 구조와 import 시스템)
  • venv와 conda 환경 구조, 환경 격리 방
  • 실행 최적화 전략과 JIT 기반 구현체 분석
  • C 확장과 Native 라이브러리 연동 구조

Python을 단순한 스크립트 언어가 아닌 런타임 플랫폼으로 이해하는 데 도움이 될 내용을 중심으로 구성해 나갈 예정입니다.


마치며

Python은 단순한 언어가 아니라 유연한 플랫폼입니다.
Python이 어떻게 동작하는지를 이해하면, 단순한 코드 작성에서 벗어나 성능, 메모리 최적화, 병렬 처리 전략까지 확장된 시야로 다룰 수 있게 됩니다.

📂 platform/python 카테고리에서는 Python 내부 구조를 파헤치며, 실무에서 도움이 되는 런타임 기반 지식을 계속 이어갈 예정입니다.

 


📌 
다음 글 미리보기
👉 Python 인터프리터 종류별 차이 (CPython vs PyPy vs Jython 비교)

📚 플랫폼 Python 시리즈 전체 보기
👉 https://jobreview.tistory.com/category/platform_infra_cloud/python

 

댓글