Loading...

[EOST2023] CPython 성능 최적화를 위한 코어팀, 커뮤니티 그리고 기업의 노력

한국전자통신연구원오픈소스 테크데이
  • 공학·기술
영상요약

파이썬은 오늘날 대안 언어를 넘어 기술 생태계 전반에서 압도적인 점유율을 차지하는 핵심 언어로 자리 잡았습니다. 특히 우리가 흔히 사용하는 파이썬의 표준 구현체인 CPython은 귀도 반 로섬에 의해 만들어진 이래 지속적으로 발전해 왔습니다. 최근에는 파이썬의 전력 효율성 문제가 제기되기도 했으나, 이는 역설적으로 파이썬에 대한 사회적 요구 수준이 그만큼 높아졌음을 의미합니다. 이제 파이썬 코어 팀은 대규모 사용자 기반을 뒷받침하기 위해 단순한 기능 구현을 넘어 체계적인 빌드 시스템과 보안 체크 시스템을 갖춘 전문적인 테크 부서와 같은 구조로 운영되며 성능 개선에 박차를 가하고 있습니다.

2020년대에 들어 머신러닝 수요가 폭발적으로 증가하면서 마이크로소프트, 메타, 블룸버그와 같은 글로벌 빅테크 기업들이 파이썬 성능 개선에 직접적으로 참여하기 시작했습니다. 과거에는 거대 프로젝트의 언어를 통째로 교체하는 방식이 선호되기도 했으나, 최근에는 수천 명의 개발자가 참여하는 기존 코드베이스를 유지하면서 숙련된 컴파일러 엔지니어를 투입해 언어 구현체 자체를 개선하는 전략이 훨씬 효율적이라는 인식이 확산되었습니다. 이러한 흐름 속에서 풀타임 파이썬 코어 엔지니어가 크게 늘어났으며, 기업들은 자사 코드베이스의 특성을 엔진에 반영하기 위해 적극적으로 기술력을 투입하고 있습니다.

프로그래밍 언어의 성능이 획기적으로 개선되기 위해서는 무엇보다 자본과 인력의 집중적인 투자가 절실합니다.

파이썬의 최적화 역사는 꽤나 길고 다채로운 시도들로 가득합니다. 처음부터 다시 짜는 전략을 택한 PyPy는 아카데믹한 의미와 함께 훌륭한 성과를 거두었으나 C API 호환성 문제로 표준을 완전히 대체하지는 못했습니다. 구글의 'Unladen Swallow'나 드롭박스의 'Piston' 역시 LLVM 기반의 JIT 컴파일러 구현을 시도했지만, 실행 시점의 타입을 예측하기 어려운 동적 언어의 특성과 복잡한 호환성 유지의 벽에 부딪혀 프로젝트를 마무리해야 했습니다. 최근 인스타그램의 'Cinder'는 자사 워크로드에 최적화된 포크 버전을 통해 성능 향상을 이뤄냈지만, 결국 유저들이 원하는 것은 최신 기능과 완벽한 하위 호환성이라는 점이 다시금 증명되었습니다.

현재 CPython은 마이크로소프트의 주도 아래 3.10 버전 대비 5배 빠른 성능을 목표로 'Faster CPython' 프로젝트를 진행하고 있습니다. 그 첫 성과인 3.11 버전은 별도의 JIT 컴파일러 도입 없이도 인터프리터 개선만으로 약 25%의 성능 향상을 이뤄내며 큰 주목을 받았습니다. 이어지는 3.12 버전에서는 멀티 티어 인터프리터 구조를 위한 기반을 닦았고, 현재 개발 중인 3.13 버전에서는 슈퍼블록 옵티마이저 기반의 티어 2 인터프리터를 통해 더 높은 수준의 최적화를 시도하고 있습니다. 특히 플러거블 옵티마이저 API의 제공은 학계나 다른 기업들이 파이썬 엔진 최적화에 더 쉽게 실험적으로 참여할 수 있는 통로를 열어줄 것입니다.

파이썬의 오랜 숙제였던 글로벌 인터프리터 락(GIL) 제거 논의도 새로운 국면을 맞이했습니다. 최근 샘 그로스의 'nogil' 제안이 PEP 703으로 승인되면서 장기적으로 병렬성을 저해하던 제약을 해결할 수 있는 길이 열렸습니다. 비록 이 과정에서 약간의 성능 오버헤드가 발생할 수 있지만, 머신러닝 등 병렬 연산이 중요한 분야에서의 강력한 요구가 이를 뒷받침했습니다. 파이썬 코어 팀은 하위 호환성을 최우선 가치로 두기에 베타나 RC 릴리스를 통해 유저들의 피드백을 수집하며 신중하게 변화를 이끌어가고 있습니다. 커뮤니티의 목소리가 실제 의사결정에 큰 영향을 미치는 만큼, 사용자들이 새로운 버전을 미리 테스트하는 과정은 파이썬의 미래에 필수적입니다.

영상노트
채널 정보를 찾을 수 없습니다.
이 페이지는 유튜브 콘텐츠를 기반으로, AI 기술을 활용해 자동 구성한 콘텐츠입니다.
[EOST2023] CPython 성능 최적화를 위한 코어팀, 커뮤니티 그리고 기업의 노력 | iKAOS