가상환경 생성 및 기본 명령어
- 디렉터리 생성 →
mkdir 디렉터리이름
- 가상환경 생성 →
python -m venv env_name
- 현재 폴더 구조 확인 →
dir
- 가상환경 활성화 →
env_name\Scripts\activate
- 가상환경 비활성화 →
deactivate
패키지 관리
- 패키지 설치 →
pip install 패키지이름
(예:pip install fastapi
) - 설치된 패키지 목록 확인 →
pip list
- 패키지 목록 파일로 저장 →
pip freeze > requirements.txt
- requirements.txt 파일 내용 출력 →
type requirements.txt
requirements.txt 활용
-r
옵션 → 파일에 명시된 패키지를 일괄 설치- 사용 예:
pip install -r requirements.txt
다른 디렉터리에서 동일한 환경 구성
- 다른 디렉터리 이동 후 가상환경 생성 →
python -m venv 새이름
- 가상환경 활성화 →
새이름\Scripts\activate
- 기존 환경의 패키지 설치 →
pip install -r 경로\requirements.txt
- 예:
pip install -r c:\python\prj#1\requirements.txt
개발 환경 세팅
- Python 설치: 백엔드 개발의 기본 언어
- 가상환경(venv) 생성 및 활성화: 프로젝트별 독립적인 패키지 관리
예:python -m venv env_name
→env_name\Scripts\activate
패키지 설치
pip install fastapi uvicorn
- FastAPI: 빠르고 직관적인 Python 웹 프레임워크 (API 개발용)
- Uvicorn: FastAPI 실행용 ASGI 서버
API 라우팅
- FastAPI는 기본적으로 모든 API 경로를 main.py에 작성 가능
- 기능이 많아지면 코드가 길어지고 유지보수 어려움
- APIRouter를 사용하면 라우팅을 파일 단위로 분리 가능
- 기능별로 파일 분리 (예: todo.py, user.py, auth.py 등)
- 코드 가독성 향상
- 유지보수 용이
- 모듈화 설계에 유리 (대규모 프로젝트에 적합)
- 라우터: 여러 기능(API 엔드포인트)을 구조적으로 나누기 위한 도구
- 예: 유저 관련 API는 user.py에, 인증 관련 API는 auth.py에 작성
서버 실행
uvicorn main:app --reload
API 테스트
- Swagger UI: http://127.0.0.1:8000/docs
- Redoc: http://127.0.0.1:8000/redoc
Pydantic
- FastAPI 핵심 라이브러리 (요청/응답 데이터 유효성 검사)
- 자동 데이터 유효성 검사: 파이썬 타입 힌트 기반
- 데이터 직렬화/역직렬화: JSON ↔ Python 객체 변환 자동
- 명확한 오류 메시지 제공
Pydantic 모델 정의
- BaseModel 상속 → 데이터 구조 정의
- 예:
from pydantic import BaseModel class Todo(BaseModel): id: int item: str
- 요청/응답 데이터 구조 정의
- 요청 데이터 유효성 검사 → 자동 오류 처리 (예: 422)
경로 매개변수 (Path Parameter)
- 경로 중 일부를 변수로 사용
- 예:
@app.get("/users/{user_id}")
- 자동 타입 변환: 문자열 → 지정 타입(int 등)
- 잘못된 형식 → FastAPI가 자동 오류 반환
- 예: URL /users/100 → user_id = 100
전체 흐름 정리 (FastAPI 기반)
- Python: 백엔드 개발의 기본 언어
- 가상환경(venv): 프로젝트마다 독립적인 패키지 환경 유지
예:python -m venv env_name
→env_name\Scripts\activate
- 패키지 설치:
- FastAPI: Python 기반 웹 프레임워크 (API 처리용)
- Uvicorn: FastAPI 앱을 실행하는 ASGI 서버 (웹서버 역할)
- 웹 서버 구성:
- FastAPI → API 라우팅 및 비즈니스 로직 작성
- Uvicorn → FastAPI 서버 실행 (비동기 처리 가능)
- Pydantic: 데이터 모델링 및 유효성 검사 (요청/응답 데이터 구조 정의)
- API 설계 및 테스트:
- 라우터 구성 및 경로 매개변수 처리
- Swagger UI 및 Redoc을 통한 문서화 자동 생성
'Python' 카테고리의 다른 글
FastAPI에서 JWT 토큰을 이용한 로그인 인증 구현 (0) | 2025.05.21 |
---|---|
FastAPI + React로 회원관리 시스템 구축 (MySQL 연동) (0) | 2025.05.21 |
React와 Python 연결 (0) | 2025.05.20 |
FastAPI-DB연결 (0) | 2025.05.18 |
FastAPI-CRUD (0) | 2025.05.16 |
Path, Query, Response_model (0) | 2025.05.15 |