SW 제품의 특정 릴리스에 대한 고유 식별자
SW가 처음 출시되었을 때 혹은 업데이트가 이루어질 때마다 새로운 버전 번호 부여
버전 번호를 할당하는 과정
방법
CalVer (Calendar Versioning)
날짜 기반 시스템을 사용해 버전 번호 할당
연도와 월로 구성
e.g., Ubuntu 20.04 (20년도 4월)
SemVer (Semantic Versioning)
주 번호 + 부 번호 + 패치 번호로 구성
이전 버전과 호환되지 않은 변경이 있으면 주 번호 증가
e.g., Python 3.11.0
HashVer (Hash Versioning)
SHA-1, SHA-256 hash 알고리즘을 사용해 버전에 대해 고유 식별자 생성
코드가 변경될 때마다 해시가 변경되므로 모든 버전이 고유 식별자를 갖도록 보장
e.g., Git commit 7e6d3fd
코드의 특정 상태를 적당히 표현하는 것이 버저닝의 핵심
필요한 상황
팀 내 협업하는 상황
Project Manager와 프로젝트 로드맵 계획 회의를 하는 경우
사용자에게 앱스토어 릴리스 내용 공지할 때 등
한 번 릴리스하고 끝나면 버전이 굳이 필요 없음
지속적으로 개발, 릴리스하는 경우 버전 필요
SemVer을 사용해 버저닝
파이썬 3.x 버전은 2.x 버전에 호환되지 않음
파이썬 공식 홈페이지에서 파일을 다운받아 설치
conda로 설치
conda install python=3.11.0
Docker로 파이썬 이미지 설치
docker pull python:3.11.0
패키치 관리자로 설치
pyenv로 설치
pyenv install 3.11.0
파이썬 설치 시 여러 방법을 섞어쓰면 충돌이 날 가능성이 존재
설치 후 pyenv install 3.11.0
명령어로 python 3.11.0 설치
pyenv shell 3.11.0
명령어로 현재 shell에 파이썬 버전 활성화
pyenv 설치를 지향
가상 환경이 없다면?
프로젝트 한 개만 할 때는 큰 이슈가 되지 않음
여러 프로젝트를 할 땐 이슈가 될 수 있음
가상 환경을 만드는 방법
venv
conda
pyenv-virtualenv
pipenv
가상 환경 구축에 가장 많이 사용되는 방법
python -m venv “가상 환경 폴더를 만들 경로”
보통 프로젝트 최상위 경로에서 .venv로 만드는 것이 관습
source .venv/bin/activate
로 활성화
venv 구조
패키지를 설치하고 버전을 관리
pip, poetry
pip
파이썬 내장 패키지 매니저로 가장 많이 사용
pip list --not required --format=freeze
를 입력하면 꼭 필요한 패키지만 보여줌
최신 버전의 pip를 사용하는 것이 좋음
pip install --upgrade pip
문제점
개발 환경과 배포 환경 패키지가 분리되지 않음
pip list로 패키지 간 의존성을 확인할 수 없음
간접 설치된 패키지들이 직접 설치한 패키지인 black과 의존성이 있는지 확인할 수 없음
pip uninstall 시 의존성이 있던 패키지들은 삭제되지 않음
Poetry
앞선 pip 문제 해결을 위해 대체재 등장
프로젝트 경로에서 poetry init
으로 파이썬 프로젝트 초기화
프로젝트 경로에 pyproject.toml 이라는 파일 생성
poetry add
명령어로 패키지 설치
※ 모든 이미지 및 코드 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※