Python 프로젝트에서 Poetry를 사용할 때, 가장 많이 등장하는 두 파일은 바로
- pyproject.toml
- poetry.lock입니다.
이때 흔히 드는 의문 하나:
“pyproject.toml만 있어도 프로젝트 실행 가능한가요?”
가능은 하지만, 안전하지는 않습니다
pyproject.toml은 필요한 패키지를 선언하는 파일입니다.
예를 들어:
[tool.poetry.dependencies]
pandas = "^2.0.0"
이런 식으로 원하는 패키지를 적어두면, Poetry는 해당 조건에 맞는 최신 버전을 설치합니다.
그런데 왜 문제가 될까?
문제는 다음과 같습니다:
- 팀원마다 설치되는 버전이 다를 수 있음
- 서버나 CI/CD 환경에서 예상치 못한 충돌 발생 가능
- 종속 패키지 간 버전 충돌 발생 위험 증가
pyproject.toml의 역할은?
- 이 파일은 "나는 이런 패키지가 필요해!"라는 **요구사항(requirements)**을 기술합니다.
- 하지만 여기에만 의존할 경우, Poetry는 최신 호환 가능한 버전을 설치하게 됩니다.
- → 팀원/서버마다 설치되는 버전이 다를 수 있음
- → 예측 불가한 동작이 생길 수 있음
그래서 poetry.lock이 필요한 이유
poetry.lock은 실제로 설치된 정확한 패키지 버전과 종속성 트리를 저장하는 파일입니다.
이 파일이 있으면:
- 모든 개발자와 서버에서 완전히 동일한 환경 구성 가능
- 충돌 없는, 검증된 패키지 조합 유지
- 배포 환경에서도 신뢰성 확보
결론
🎯 작업의 재현성과 안정성이 중요하다면
꼭 poetry.lock을 함께 사용하세요!
'시스템 개발 및 관리 > 프로젝트 구조 설정' 카테고리의 다른 글
poetry lock이란? — 의존성 관리를 안전하게 만드는 핵심 명령어 (0) | 2025.06.07 |
---|---|
파이썬 프로젝트 구조, 왜 이렇게 해야 할까요? (feat. src 레이아웃, pyproject.toml) (0) | 2025.05.05 |
Python enum – 상수를 깔끔하게 관리하는 방법 (0) | 2025.04.29 |
Python namedtuple – 왜, 언제 사용하는 걸까? (0) | 2025.04.29 |
파이썬에서 언더스코어 두 개(__)와 Name Mangling(맹글링)의 차이 (0) | 2025.04.27 |