Skip to main content

Command Palette

Search for a command to run...

Python - FastAPI

Updated
•2 min read•View as Markdown
Python - FastAPI
H

Front-End Developer at Autolabs Co., Ltd.

이 글에서는 파이썬 백엔드 환경을 구축할 때 마주치는 필수 개념과 명령어를 정리한다.


1. 가상환경(venv) 생성 및 활성화

파이썬은 시스템 전체에 라이브러리를 설치하면 프로젝트 간 버전 충돌이 발생할 수 있다. 따라서 프로젝트마다 독립적인 공간을 만들어야 한다.

가상환경(venv) 생성 및 활성화

가상환경(venv) 생성 및 활성화 :

python -m venv .venv
가상환경 활성화 :
source .venv/bin/activate

활성화가 완료되면 터미널 프롬프트 앞에 .(venv) 표시가 나타난다. 이는 현재 내가 전용 공간을 사용 중임을 의미한다.


2. 패키지 관리(pip)와 의존성 저장

npm과 유사한 역할을 하는 pip를 사용한다. 하지만 파이썬은 패키지를 설치해도 목록이 자동으로 저장되지 않으므로 수동으로 명세서를 관리해야 한다.

패키지 설치 :
pip install fastapi uvicorn
의존성 목록 추출(package.json 역할) :
pip freeze > requirements.txt
새로운 환경에서 라이브러리 복구 :
pip install -r requirements.txt

3. FastAPI 서버 실행(Uvicorn)

FastAPI는 자체적으로 서버를 띄우는 기능이 없으므로 Uvicorn이라는 ASGI 서버를 이용한다.

서버 실행 :
uvicorn main:app --reload
  • --reload : 코드가 변경될 때마다 서버를 자동으로 재시작한다. (Next.js의 개발 모드와 유사)

맥 전용 실행 스크립트 작성(run.sh) :

매번 긴 명령어를 입력하기 번거롭다면 쉘 스크립트를 활용한다.

echo "uvicorn main:app --reload" > run.sh
chmod +x run.sh
./run.sh

프론트엔드 개발자에게 익숙한 node_module 비유를 통해 파이썬 환경을 이해하면 진입장벽이 낮아진다.

.venv 폴더는 용량이 크고 OS 종속적이므로 .gitignore에 반드시 포함하고, 대신 requirement.txt를 통해 팀원과 환경을 공유해야 한다.

More from this blog

Process Manager 2 - PM2

PM2란 무엇인가? PM2란 Node.js 기반 프론트엔드 서비스를 운영 환경에서 안정적으로 실행하기 위한 프로세스 관리자이다. 프론트엔드 개발을 하다 보면 보통 이런 단계로 배포를 시작한다. npm run build npm run start 혹은 Next.js라면 npx next start 이 방식은 개발 & 테스트 환경에서는 문제없다. 하지만 이 상태로는 운영 서비스라고 부르기 어렵다. 이 글에서는 아래의 내용을 정리한다. 왜 필요한지 프...

Jan 12, 20263 min read76
Process Manager 2 - PM2

Hwiiron Dev

5 posts