한빛출판네트워크

IT/모바일

[진지한 파이써니스타 인터뷰] 닉 코글런과 패키지에 대해

한빛미디어

|

2021-02-15

by 쥘리앵 당주

 
파이썬 작동 원리에서 확장, 테스트, 배포, 최적화까지
『진지한 파이썬』 중
 

조슈아 할로닉 코글런Nick Coghlan은 레드햇에서 일하는 파이썬 핵심 개발자입니다. PEP 426(파이썬 소프트웨어 패키지 2.0에 대한 정보)와 같은 몇몇 PEP 제안을 만들었으며, 파이썬 창시자이자 자비로운 종신 독재자Benevolent Dictator for Life(BDFL)였던 귀도 반 로섬의 대변인으로도 활동했습니다.
· · ·
Q. distutils, setuptools, distutils2, distlib, bento, pbr 등 파이썬 패키지 방법은 매우 많습니다. 이렇게 다양한 이유는 무엇인가요?
간단히 설명하면 소프트웨어 공개, 배포, 통합은 다양한 사례에 맞게 조정되어 여러 가지 방법이 존재합니다. 최근 이 주제로 논의했는데 이 문제는 시대에 따라 소프트웨어를 배포하는 패키지가 다양하기 때문에 생기는 것이라고 보고 있습니다.
Q. 파이썬 패키지를 위한 새로운 정보 형식을 정의한 PEP 426은 제안되고 있지만, 아직도 승인되지 않았습니다. PEP 426이 현재 패키지 문제를 해결할 것이라고 생각하시나요?
PEP 426은 처음에 Wheel 형식 정의의 일부분으로 시작했습니다. 그러나 대니얼 홀스Daniel Holth가 Wheel은 setuptools에서 정의한 기존 패키지 정보 형식을 활용할 수도 있다는 것을 알게 되었습니다. 그래서 PEP 426은 기존의 setuptools 패키지 정보와 distutils2의 발상과 RPM 및 npm과 같은 다른 패키지 시스템을 통합하려는 것입니다. 서로 다른 디펜던시를 정확히 구별하는 것과 같이 기존의 도구에서 발생했던 문제을 해결할 수 있습니다.
PEP 425의 주요 장점은 패키지 정보를 PyPI에서 REST API로 가져올 수 있으며, 배포 정책을 준수하는 패키지를 자동으로 생성할 수 있다는 점입니다.
Q. Wheel 형식은 최근에 나왔고 앞으로 사용이 기대되는 도구이지만, 아직까진 널리 사용되지 않고 있습니다. 왜 표준 라이브러리에 포함이 되지 않았나요?
표준 라이브러리에서 실제 패키지 표준을 제공하는 것은 맞지 않다고 입증되었습니다. 너무 느리게 개발되고 있으며, 최신 버전 표준 라이브러리에 추가되면 이전 버전의 파이썬에서 사용할 수 없습니다. 그래서 2014년 파이썬 언어 회의에서 distutils-sig로 패키지 관련 PEP에 대한 전체 승인 주기를 관리할 수 있도록 PEP 과정을 수정했습니다. 또한 python-dev는 pip처럼 직접 CPython을 변경하는 제안에만 관여할 것입니다.
Q. Wheel 패키지는 어떻게 될 것이라고 예상하시나요?
리눅스에서 Wheel을 사용할 수 있도록 여전히 개선하고 있습니다. 그러나 pip는 Egg 형식에 대한 대안으로 빠른 가상 환경 생성에 빌드 시 로컬 캐싱이 가능한 Wheel을 선택하고 있습니 다. 그리고 PyPI에 윈도우와 맥 OS 용 Wheel 파일을 업로드할 수 있습니다.
· · ·
댓글 입력