Cython은 「파이썬 코드에 타입을 명시해 C 수준 속도로 컴파일」하는 도구입니다.
NumPy·pandas·spaCy 같은 큰 라이브러리의 핫스팟이 Cython으로 작성.
순수 파이썬보다 10~100배 빠를 수 있습니다.
기본 사용.
.pyx 파일 작성 — def func(int n): return n * 2.
setup.py로 컴파일 → C 확장 모듈 생성.
파이썬에서 일반 모듈처럼 import.
사용감은 파이썬 그대로, 속도는 C.
타입 명시가 핵심.
cdef int n = 0 — C 정수.
cdef double[:] arr — NumPy 배열의 메모리 뷰.
타입을 명시한 부분만 C 수준이 되고, 명시 안 한 부분은 일반 파이썬 속도.
GIL 풀기.
with nogil: ...
— 그 블록은 GIL 없이 실행.
멀티스레드 진정 병렬 가능.
단, 그 안에서는 파이썬 객체 못 만지고 C 자료구조만.
트레이드오프.
빌드 단계 추가, 디버깅 어려움, 코드가 「파이썬 같은데 다름」.
일반 코드는 그냥 파이썬, 핫스팟(전체 시간의 80% 차지)만 Cython화가 정석.
또는 Cython 대신 Numba(JIT)도 비슷한 효과.
한 줄 요약
Cython은 타입 명시한 파이썬을 C로 컴파일해 10~100배 가속.
nogil로 진정 병렬.
빌드·디버깅 비용 있어 핫스팟만 Cython화가 정석.
더 알아볼 것
- mypyc — mypy 타입을 컴파일
- Numba — JIT 대안
- Rust + PyO3 — 모던 대안