발표에서 확인된 핵심 사실
pandas Series.map에서 66.14배, 기본 파이썬 코드에서 57.73배라는 성능 향상이 확인됐다. 이러한 속도 차이는 Rextio(파이썬 코드를 러스트로 변환해 실행 속도를 높이는 도구)가 정적인 코드와 동적인 코드를 나누어 처리한 결과다. 타입 힌팅(변수에 어떤 종류의 데이터가 들어갈지 미리 적어두는 것)이 된 정적 코드는 Rust(컴퓨터가 바로 이해할 수 있는 기계어로 빠르게 바꿔주는 언어)로 자동 변환한 뒤 바이너리(컴퓨터가 즉시 실행 가능한 이진 파일) 형태로 컴파일해 속도를 끌어올린다. 반면 변환이 어려운 동적 코드는 CPython(파이썬 코드를 해석해 실행하는 표준 프로그램)으로 남겨두는 하이브리드 방식을 취한다. 파이썬의 속도 문제를 해결하기 위해 개발된 실험적 도구다.
네이티브 영역과 CPython 영역 사이에서 데이터를 너무 자주 주고받으면 오히려 속도가 느려질 수 있다. 데이터가 서로 다른 실행 환경의 경계를 넘나들며 변환되는 과정에서 오버헤드(추가적인 계산 비용)가 발생하기 때문이다. Rextio는 이런 경우 해당 구간 전체를 CPython으로 돌려 실행하는 폴백(오류나 성능 저하 시 대체 수단으로 전환하는 것) 방식을 유도해 속도 저하를 막는다. 원본 파이썬 코드의 로직을 그대로 보존하면서 실행 효율을 극대화하려는 설계다.
동작 과정은 분석, 변환, 빌드의 단계를 거쳐 import
타입이 지정된 파이썬 프로젝트를 분석해 네이티브 코드로 바꿀 수 있는 후보를 먼저 가려낸다. 안전하지 않거나 지원하지 않는 함수는 과감히 제외한다. 통과한 함수는 Rust와 PyO3(러스트와 파이썬을 연결해 주는 도구)로 생성하고, 나머지는 파이썬 폴백 래퍼(빠른 버전이 없을 때 원래 코드로 돌려보내는 안전장치)를 만들어 빌드한다. 이렇게 만들어진 결과물은 기존 파이썬 환경에서 그대로 불러와 쓸 수 있는 형태로 제공된다.
rextio-numpy, rextio-pandas, rextio-torch 등 개별 패키지 변환 규칙을 정의한 플러그인들이 핵심 기능을 보조한다. 전체 변환과 컴파일은 Core CLI(명령어 입력창으로 실행하는 메인 제어 도구)가 담당한다. 사용자는 필요한 플러그인을 추가로 붙여 확장할 수 있는 구조다. 현재는 NumPy, NetworkX, TensorFlow 등을 지원하는 플러그인들이 개발되어 있다.
확인해야 할 핵심 지점
66.14배의 성능 향상은 pandas(데이터 분석 도구)의 Series.map 함수를 네이티브 코드로 변환했을 때 기록된 수치다. 기본 파이썬 코드는 57.73배 빨라졌으며, 네트워크 분석 도구인 NetworkX의 다익스트라 알고리즘은 3.68배, 수치 계산 라이브러리인 NumPy는 2.52배 속도가 올랐다. 벤치마크 결과 기본 파이썬 코드와 pandas의 특정 함수에서 특히 극적인 속도 개선이 확인되었다. 파이썬의 느린 실행 구조를 걷어내고 기계가 바로 이해하는 언어로 바꾼 결과다. 이는 파이썬의 유연함 대신 Rust의 엄격한 효율성을 선택해 처리 속도를 극대화한 사례다.
PyTorch의 딥 MLP는 1.02배, TensorFlow의 eager chain은 1.04배 수준으로 성능 변화가 거의 없었다. 이 도구들은 이미 내부적으로 C 확장(컴퓨터가 빠르게 처리하도록 미리 짜놓은 저수준 언어 뭉치)을 사용해 속도를 높여두었기 때문이다. 이미 최적화가 끝난 영역에서는 추가적인 변환 효과가 제한적으로 나타난다. 파이썬 패키지가 이미 저수준 언어로 구현된 부분을 다시 변환하는 것은 실익이 적다는 점이 드러났다.
순수 파이썬 로직이나 특정 데이터 처리 함수의 병목 구간을 찾아 Rust로 전환할 수 있는지 확인하는 것이 Rextio 도입의 핵심 기준이다.




