전체 커리큘럼
모든 강의는 game-ranking-api의 이전 결과물을 이어서 수정합니다. 서버 실행과 요청 확인이 끝난 상태에서 커밋한 뒤 다음 강의로 이동하세요.
| 강 | 주제 | 핵심 목표 | 실습 결과물 |
|---|---|---|---|
| 1 | 백엔드와 API 서버의 역할 | 프론트엔드·API·DB 책임 구분 | 시스템 요청 흐름 설계도 |
| 2 | 가상환경과 패키지 관리 | Python 3.13 격리 환경 구성 | 재현 가능한 requirements.txt |
| 3 | FastAPI 프로젝트와 서버 | ASGI 앱과 Uvicorn 실행 | /health API |
| 4 | HTTP와 REST 설계 | 리소스·메서드·상태 코드 설계 | 기록 API 명세 |
| 5 | Path와 Query Parameter | URL 입력 검증 | 기록 상세·필터 API |
| 6 | Pydantic 요청 검증 | 본문 계약과 제약 작성 | 검증되는 기록 생성 API |
| 7 | 응답 모델과 상태 코드 | 출력 필터와 의미 있는 상태 | 생성·조회 응답 계약 |
| 8 | 예외와 오류 응답 | 실패 형식 통일 | 일관된 오류 JSON |
| 9 | Swagger UI와 ReDoc | OpenAPI 문서 품질 향상 | 테스트 가능한 API 문서 |
| 10 | 폴더 구조와 Router | 기능별 모듈 분리 | 확장 가능한 app 패키지 |
| 11 | 의존성 주입 | 공통 자원 생명주기 관리 | 교체 가능한 기록 저장소 |
| 12 | 설정과 환경 변수 | 비밀·환경별 설정 분리 | .env.example과 Settings |
| 13 | 데이터베이스와 ORM | 영속성·트랜잭션 이해 | 데이터 모델 설계 |
| 14 | SQLAlchemy와 SQLite | Engine·Session·Base 구성 | SQLite 연결 계층 |
| 15 | 모델과 Create, Read | ORM 삽입·조회 | 영구 저장 기록 API |
| 16 | Update, Delete | 부분 수정·삭제·404 처리 | 완성된 기본 CRUD |
| 17 | 관계와 Foreign Key | 사용자와 기록 관계 모델링 | 소유자가 있는 기록 |
| 18 | 페이지네이션·정렬·검색 | 제한된 목록 쿼리 설계 | 탐색 가능한 기록 API |
| 19 | PostgreSQL 확장 | DB URL과 드라이버 전환 | PostgreSQL 실행 환경 |
| 20 | Alembic | 스키마 변경 이력 관리 | 재현 가능한 migration |
| 21 | 해싱과 회원가입 | 평문 비밀번호 제거 | 안전한 사용자 등록 |
| 22 | JWT 로그인 | 토큰 발급·검증·현재 사용자 | 인증된 API 요청 |
| 23 | 권한과 보안 | 소유권·역할·입력 보안 | 보호된 수정·삭제 API |
| 24 | CORS와 프론트엔드 | 허용 Origin과 fetch 연결 | 브라우저 연동 |
| 25 | API 테스트 | 성공·실패 회귀 테스트 | pytest 테스트 모음 |
| 26 | 최종 프로젝트 | 기능·운영 품질 통합 | 게임 기록·랭킹 REST API |
권장 학습 방법
- 각 강의의 문제를 먼저 읽고 현재 코드에서 책임질 위치를 찾습니다.
- 파일 경로를 확인하며 예제를 입력하고 실행 명령으로 직접 요청합니다.
- 정상 입력뿐 아니라 강의의 “자주 하는 실수”도 재현합니다.
- 이해 점검 질문에 답하고 실행되는 상태를 Git 커밋으로 남깁니다.