이 시리즈를 통해 pyproject.toml
파일을 중심으로 한 현대적 파이썬 패키징 표준과 생태계에 대해 폭넓게 다뤄보았습니다. 기존에 setup.py
, requirements.txt
, MANIFEST.in
등 산재한 설정 파일과 비일관적 빌드 과정에서 벗어나, PEP 518/PEP 621 등 표준에 따라 빌드 백엔드, 메타데이터, 의존성, 스크립트, 도구 설정을 한 곳에서 관리할 수 있음을 확인했습니다.
이 마지막 글에서는 지금까지 정리한 내용을 요약하고, 추가로 탐색할 만한 고급 주제와 참고 자료를 제안합니다.
시리즈 요약 정리
- pyproject.toml 등장 배경 및 기본 구조 (1편)
- 과거 패키징 혼란 해결 위해 PEP 518/621 등장, 단일 파일(
pyproject.toml
)로 설정 통합
- 과거 패키징 혼란 해결 위해 PEP 518/621 등장, 단일 파일(
- [build-system] 섹션 (2편)
- 빌드 백엔드(예: setuptools, flit, poetry, hatch)와 빌드 시 의존성 지정
- 일관된 빌드 환경, 재현성 높은 빌드 가능
- [project] 섹션 (3편)
- 이름, 버전, 라이선스 등 패키지 메타데이터를 표준화
[project.dependencies]
,[project.optional-dependencies]
로 의존성 관리 고도화[project.scripts]
로 CLI 명령 선언
- 의존성, 스크립트 정의 심화 (4편)
- optional-dependencies로 기능 모듈화, 부분적 환경 설치 가능
scripts
로 CLI 단축 명령 제공
- [tool.*] 섹션 (5편)
- 빌드 백엔드나 린터, 포매터(mypy, black, isort) 등 개발 도구 설정을 한 곳에 통합
- 설정파일 난립 문제 해소, 유지보수성↑
- 빌드 백엔드 비교 및 전략 (6편)
- setuptools, flit, poetry, hatch 등 특성 비교
- 프로젝트 성격(규모, 의존성 관리 필요성, 릴리즈 전략)에 맞는 빌드 백엔드 선택 가이드
- 실제 프로젝트 예제 실습 (7편)
- 가상의 예제 프로젝트에 pyproject.toml 적용
- 빌드 백엔드 선택, 의존성/스크립트 설정, 도구 설정 종합 시연
- 마이그레이션 전략 및 베스트 프랙티스 (8편)
- 기존 setup.py/requirements.txt 기반 프로젝트에서 점진적으로 pyproject.toml로 이전하는 방법
- 팀 내 합의, CI 파이프라인 조정, 의존성 범위 명확화 등 실무적 전략
- 시리즈 마무리 (현재 편)
- 전체 요약, 추가 학습 자료, 앞으로의 방향 제안
추가 학습 자료
- Python Packaging User Guide: https://packaging.python.org/
파이썬 패키징에 대한 공식 가이드, PEP 정리, 추천 관행 소개 - PEP 문서 읽기:
- PEP 518, PEP 621, PEP 517 등 패키징 관련 표준 PEP 읽기
- 빌드 백엔드별 공식 문서(Flit, Poetry, Hatch, setuptools) 참조
- Real Python, PyPA 블로그 포스트:
패키징 모범사례, 최신 동향, Q&A 참고
앞으로 나아갈 방향
- 고급 패키징 기법: Editable install(개발 모드 설치), pyproject.toml 기반 test runner 설정, multi-platform 빌드 전략
- Docker, Conda 연계: Pyproject.toml 기반 환경 정의 후 Docker 컨테이너나 Conda 환경과 결합, 배포 프로세스 최적화
- CI/CD 파이프라인 통합: 깃허브 액션, GitLab CI에서 pyproject.toml 활용하여 빌드/테스트/배포 자동화
- 멀티 파이썬 런타임 테스트:
tox
나nox
를 pyproject.toml로 설정 관리하여 다중 파이썬 버전 테스트 체계 간소화
결론
이 시리즈를 통해 pyproject.toml의 기본 개념, PEP 표준, 빌드 백엔드 선정, 의존성/스크립트 관리, 도구 설정 통합, 실제 프로젝트 적용, 마이그레이션 전략까지 폭넓게 다뤄보았습니다. pyproject.toml은 이제 파이썬 패키징 생태계의 사실상 표준이 되었으며, 새로운 프로젝트나 기존 프로젝트 모두 이 표준 기반의 현대적 패키징 전략을 수립하여 유지보수성과 생산성을 높일 수 있습니다.
앞으로도 파이썬 패키징 분야는 지속 발전 중이므로, 최신 PEP나 빌드 백엔드 동향을 주시하며 프로젝트를 지속적으로 현대화해나가길 바랍니다.
반응형
'개발 이야기 > Python (파이썬)' 카테고리의 다른 글
pybind11 + CMake + pyproject.toml로 파이썬 확장 모듈 세팅하기 (1) | 2024.12.17 |
---|---|
[pyproject.toml 완전 정복 8편] 마이그레이션 전략 및 베스트 프랙티스 (0) | 2024.12.17 |
[pyproject.toml 완전 정복 7편] 실제 프로젝트 예제 종합 실습 (0) | 2024.12.17 |
[pyproject.toml 완전 정복 6편] 다양한 빌드 백엔드 비교 및 전략 수립 (0) | 2024.12.17 |
[pyproject.toml 완전 정복 5편] [tool.*] 섹션으로 빌드 백엔드 및 린터·포매터 설정 통합 (0) | 2024.12.17 |