파이썬 코드가 실행되는 과정
파이썬 코드가 실행되는 과정을 이해하기 위해서는 파이썬의 인터프리터 구조, 바이트코드 생성, 그리고 실행 과정을 알아야 함.
파이썬은 인터프리터 언어이며, 일반적으로 CPython이라 불리는 가장 널리 사용되는 구현체를 통해 실행됨.
아래는 CPython 구현을 중심으로 파이썬 코드의 실행 과정을 설명함.
1. 소스 코드 작성 및 실행
모든 것은 사용자가 파이썬 파일(.py)에 소스 코드를 작성하는 것으로 시작됨.
이 코드는 텍스트 형식으로 저장되며, 파이썬 프로그램 실행 시 인터프리터에 의해 읽혀짐.
2. 파싱
파이썬 인터프리터가 소스 코드를 읽으면, 첫 번째 단계는 파싱임.
이 과정에서 소스 코드는 구문 분석을 거쳐 추상 구문 트리(AST)로 변환됨.
AST는 파이썬 코드의 구조를 트리 형태로 나타낸 것으로, 각 노드가 파이썬의 구문 요소를 나타냄.
3. 컴파일링
AST가 생성되면, 다음 단계는 이를 바이트코드로 컴파일하는 것임.
바이트코드는 파이썬 가상 머신(PVM)이 이해하고 실행할 수 있는 저수준, 기계 독립적인 코드임.
이 바이트코드는 .pyc 파일로 저장될 수 있으며, 이는 파이썬이 프로그램을 다시 실행할 때 파싱과 컴파일 단계를 건너뛰고 바로 실행할 수 있게 해줌.
4. 실행
컴파일된 바이트코드는 파이썬 가상 머신에 의해 실행됨.
PVM은 스택 기반의 인터프리터로서, 바이트코드 명령어를 하나씩 읽고 실행함.
각 명령어는 스택을 사용하여 계산을 수행하며, 결과를 다시 스택에 저장하거나, 필요에 필요에 따라 변수에 할당함.
5. 런타임 환경
실행 과정 중, 파이썬은 다양한 런타임 서비스를 제공함.
이에는 메모리 관리(가비지 컬렉션 포함), 예외 처리, 모듈 관리 등이 포함됨.
파이썬의 다양한 라이브러리와 프레임워크는 이러한 서비스를 활용하여 더 풍부한 기능을 제공함.
최적화
CPython 이외도 파이썬 코드 실행을 최적화하기 위해 여러 다른 구현체가 있음.
예를 들어, PyPy는 Just-In-Time(JIT) 컴파일러를 사용하여 실행 시점에 코드를 컴파일하고, 이를 통해 실행 속도를 향상시킴.
Jython, IronPython 등 다른 구현체들은 각각 Java와 .NET 플랫폼 위에서 실행되며, 해당 환경의 기능과 라이브러리를 활용할 수 있음.
'Operating System > Computer' 카테고리의 다른 글
[Computer] 메모리 (0) | 2024.07.08 |
---|---|
[Computer] RAM (0) | 2024.07.07 |
[Computer] 컴퓨터과학 (1) | 2024.06.23 |
[Computer] 보조기억장치, 클라우드 스토리지 (0) | 2024.06.23 |
[Computer] 파이썬에서 리스트와 집합의 차이 (0) | 2024.06.16 |