진행률을 불러오는 중...
백엔드 기초집: Python FastAPI
웹 개발 베이스에서 익힌 HTTP와 JavaScript 요청 흐름을 실제 서버 구현으로 연결합니다. 26강 동안 하나의 game-ranking-api를 확장하며 입력 검증, 데이터베이스, JWT 인증, 권한, 테스트, 프론트엔드 연동을 차례로 완성합니다.
과정 목표
- REST 원칙에 맞는 요청 경로, HTTP 메서드, 상태 코드를 설계합니다.
- Pydantic v2로 신뢰할 수 없는 요청을 검증하고 응답 계약을 고정합니다.
- SQLAlchemy 2.x ORM으로 SQLite에 저장한 뒤 PostgreSQL로 확장합니다.
- 비밀번호 해싱과 JWT 인증, 소유권·관리자 권한을 구현합니다.
- CORS, 자동화 테스트, 환경 변수와 마이그레이션을 적용합니다.
- 프론트엔드에서 호출할 수 있는 게임 기록·랭킹 REST API를 완성합니다.
선수지식
- HTML, CSS, JavaScript와
fetch의 기본 사용법 - HTTP 요청·응답, JSON, 상태 코드의 기초
- Git add, commit, branch의 기본 흐름
- 변수, 함수, 클래스, 타입 힌트를 읽을 수 있는 Python 기초 문법
Python 웹 프레임워크와 SQL 경험은 없어도 됩니다. SQLite로 데이터 흐름을 확인한 뒤 PostgreSQL과 운영 준비로 이동합니다.
기술 기준
- Python 3.13 이상
- FastAPI와 Uvicorn
- Pydantic v2
- SQLAlchemy 2.x, SQLite, PostgreSQL과 Psycopg 3
- python-dotenv, Alembic
- pwdlib의 Argon2 해싱과 PyJWT
- pytest, FastAPI TestClient
설치와 API 사용은 FastAPI 공식 튜토리얼, Pydantic 모델 문서, SQLAlchemy 2.0 문서, Alembic 문서의 현재 방식을 따릅니다.
최종 결과물
완성할 게임 기록·랭킹 API는 다음 기능을 갖습니다.
- 회원가입과 JWT 로그인
- 로그인 사용자의 게임 점수 기록 생성·조회·수정·삭제
- 검색, 정렬, 페이지네이션이 있는 기록 목록
- 게임별 최고 점수 랭킹
- 사용자 소유권과 관리자 권한 검사
- SQLite 개발 환경과 PostgreSQL 운영 환경
- Alembic 마이그레이션, CORS, API 테스트, 배포 전 점검
26강 학습 순서
- 백엔드와 API 서버의 역할
- Python 가상환경과 패키지 관리
- FastAPI 프로젝트 생성과 서버 실행
- HTTP 요청·응답과 REST API 설계
- Path Parameter와 Query Parameter
- Pydantic 모델과 요청 검증
- 응답 모델과 상태 코드
- 예외 처리와 일관된 오류 응답
- Swagger UI와 ReDoc
- 프로젝트 폴더 구조와 Router 분리
- 의존성 주입
- 설정 파일과 환경 변수 관리
- 데이터베이스와 ORM의 역할
- SQLAlchemy 2.x와 SQLite 연결
- 테이블 모델과 Create, Read
- Update, Delete와 데이터 검증
- 관계형 데이터와 Foreign Key
- 페이지네이션, 정렬, 검색 API
- PostgreSQL로 확장
- Alembic 마이그레이션
- 비밀번호 해싱과 회원가입
- JWT 로그인과 인증 의존성
- 권한 처리와 보안 기초
- CORS와 프론트엔드 연동
- 테스트 기초와 API 테스트
- 최종 프로젝트 완성과 배포 준비
COURSE ORIENTATION
과정 선택 안내
- 학습 대상
- Python과 HTTP 기초를 실제 REST API와 인증·데이터베이스 구현으로 연결하려는 학습자
- 선수지식
- 웹 개발 베이스와 Python 기초
- 최종 결과물
- 인증과 데이터베이스를 갖춘 게임 기록·랭킹 API