FastAPI 백엔드 개발 환경 세팅 & 기본 API 구현 정리

2025. 5. 14. 16:57·Python

가상환경 생성 및 기본 명령어

  • 디렉터리 생성 → 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
'Python' 카테고리의 다른 글
  • React와 Python 연결
  • FastAPI-DB연결
  • FastAPI-CRUD
  • Path, Query, Response_model
jaeon.cloud
jaeon.cloud
  • jaeon.cloud
    JEONG JAE ON
    jaeon.cloud
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • Docker (8)
      • Cloud (7)
      • AWS (14)
      • Network (9)
      • Linux (1)
      • Python (7)
      • Javascript (3)
      • React (5)
      • Project (3)
      • Kubernetes (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    클라우드
    cors
    3-tier Architecture
    AWS
    react
    docker
    lambda
    Python
    http
    kubernetes
    네트워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jaeon.cloud
FastAPI 백엔드 개발 환경 세팅 & 기본 API 구현 정리
상단으로

티스토리툴바