Skip to content

Free-threaded

  • Published on
    PEP 779로 free-threaded 빌드는 3.14에서 실험 딱지를 뗐지만, 기본 빌드가 되는 Phase III 앞에는 인터프리터 성능 말고 하나가 더 있었습니다 — 배포입니다. free-threaded 빌드에서는 stable ABI(abi3)를 쓸 수 없어서, C 확장 저자들은 파이썬 버전 × 스레딩 모드마다 휠을 따로 찍어야 했습니다. PEP 803은 이 구멍을 abi3t라는 stable ABI 변종으로 메우고 3.15를 겨냥합니다 — 하나의 바이너리가 3.15 이상의 GIL 빌드와 free-threaded 빌드를 모두 섬깁니다. 대신 abi3t는 abi3보다 좁습니다: PyObject가 불투명해지고, PyObject_HEAD를 쓸 수 없고, PyModExport 훅으로 갈아타야 하고, 가변 크기 타입은 아예 포팅이 안 됩니다. 그리고 가장 중요한 오해 하나 — abi3t는 확장이 free-threaded 파이썬에서 로드되게 해 줄 뿐, 스레드 안전을 만들어 주지 않습니다. 이 글은 왜 하나의 .so가 두 빌드를 못 섬겼는지, abi3t가 정확히 무엇을 요구하는지, 그리고 Phase III가 아직 PEP조차 없는 이유를 정리합니다.
  • Published on
    2026년의 Python은 30년 만에 처음으로 두 개의 거대한 변곡점을 동시에 통과한 언어가 되었다. 하나는 언어 자체의 변화 — Python 3.13의 free-threaded preview와 JIT preview, 그리고 3.14에서 free-threaded가 stable로 승격되며 비로소 GIL 없는 Python이 프로덕션 옵션이 된 것. 다른 하나는 Astral이 주도한 도구 혁명 — uv가 pip/poetry/pipenv를 사실상 대체하고, Ruff가 flake8/black/isort를 통합하고, ty가 mypy/pyright의 자리를 노린다. 거기에 Polars 1.0의 데이터프레임 재발명, Pydantic v2.10의 Rust 코어 검증, FastAPI/Litestar/Robyn/Quart/Sanic/BlackSheep로 다원화된 웹 프레임워크, 그리고 Django 5.x의 클래식한 견고함까지 — 이 글은 2026년 모던 Python 스택 전체를 깊게 훑는다.