-
Notifications
You must be signed in to change notification settings - Fork 9
패키지 관리, 모듈 의존성
jiho lee edited this page Oct 27, 2021
·
23 revisions
현재 pipenv로 패키지 관리 중
virtualenv보다 더 간편하게 의존성을 격리시키고 파이썬 버전을 맞출 수 있다.
virtualenv는 requirements.txt와 의존성 목록이 다를 수 있다. 이에 대한 해결 방법은 pip freeze나 pigar가 있는데 둘 다 불완전하다.
- pip freeze - 현재 pip로 설치된 모든 패키지를 표시하기 때문에 사용하지 않는 패키지나 의존성의 의존성까지도 전부 표시됨
- pigar - 로컬 모듈을 구분하지 못하는 오류가 있고 패키지 버전이 고정되어 표시되므로 의존성 관리 없이 진행되던 프로젝트를 마이그레이션 하는 용도로만 적합
즉 이런 작업을 하더라도 virtualenv 환경에서 추후 의존성 추가는 수동으로 이루어져야 한다.
반면에 pipenv를 쓰면 의존성 추가 -> 의존성 사용의 단방향으로만 워크플로우가 이루어지기에 의존성이 명시되지 않는 문제가 없다는 장점이 있다.
보안 취약점 업데이트를 대비할 수 있고, 따라서 dependabot에서 경고가 뜨지 않음
단점으로 가끔 망가진 패키지가 배포되거나 메소드가 deperecated되는 문제가 있지만 산돌이 운영에서는 장애에 대한 리스크가 비교적 작기에 트레이드오프 가능한 범위라고 생각됨.
네 개가 있다.
- requests - http 통신 라이브러리
- boto3 - AWS API 파이썬 포팅
- bs4 - html 파싱 라이브러리
- zappa - AWS Lambda 배포용 라이브러리
zappa를 제외한 나머지 세 개는 범용적으로 사용되는 라이브러리라서 유지보수에 문제가 없음.
zappa는 리드 개발자가 기능 개선을 포기하고 Deprecated 선언을 하였지만 해제하였음. 이슈
공식 문서에서 제안하는 github actions를 사용하는 배포 방법 sam cli를 사용하고 있다.