피드로 돌아가기
Python 3.12.3 and 3.13.0a6 released
Python InsiderPython Insider
Backend

Python 재단이 3.12.3 유지보수 릴리스와 3.13.0a6 알파 릴리스를 공개하며 대화형 인터프리터 예외 컬러화, 실험적 JIT, 증분 가비지 컬렉터, 18개 deprecated 모듈 제거 등 기능 적용

Python 3.12.3 and 3.13.0a6 released

Thomas Wouters2024년 4월 9일5intermediate

Context

Python 3.13은 기존 버전 대비 불필요한 모듈 유지, 예외 처리 시 표준 출력의 단조성, 가비지 컬렉션 중 장시간 일시 중지, docstring 메모리 오버헤드 등의 문제를 안고 있었다.

Technical Solution

  • 대화형 인터프리터의 예외 traceback을 기본적으로 컬러화: 개발자가 오류를 시각적으로 더 빠르게 식별 가능
  • 실험적 JIT 컴파일러 추가: 향후 성능 개선을 위한 기초 작업 수행
  • 가비지 컬렉터를 증분 방식으로 변경: 객체 많은 프로그램에서 collection 중 일시 중지 시간 단축
  • docstring 선행 들여쓰기 자동 제거: 메모리 사용량 및 .pyc 파일 크기 감소
  • dbm 모듈의 새로운 dbm.sqlite3 백엔드 도입: 신규 파일 생성 시 기본값으로 사용
  • PEP 594 실행으로 18개 deprecated 모듈 제거: aifc, audioop, chunk, cgi, cgitb, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlib, lib2to3

Key Takeaway

Python은 메이저 버전 업그레이드 사이클에서 오래된 모듈 제거와 런타임 최적화를 단계적으로 진행하여 언어 생태계의 현대화와 성능 향상을 동시에 달성하는 점진적 진화 전략을 취하고 있다.


Python 기반 서비스를 운영하는 개발팀은

3.13 알파 단계부터 코드베이스를 검사하여 제거 예정 모듈(aifc, cgi, telnetlib 등)에 대한 의존성을 확인하고 대체 라이브러리로 마이그레이션하면 향후 메이저 버전 업그레이드 시 호환성 문제를 사전에 방지할 수 있다.

원문 읽기