본문 바로가기

강의와 대상 소개

1. 강의에 대하여

이 책은 FastAPI로 웹 개발에 처음 입문하시는 분을 대상으로 합니다. 따라서 웹의 기본 개념, 서비스 개발을 위한 기본 개념을 함께 설명합니다. 또한 챕터를 이해하기 위한 코드를 제외한 코드를 최대한 줄이고, 핵심적인 내용만을 다루고 있습니다.

챕터마다 과제가 있어, 학습한 내용을 바탕으로 실습을 진행할 수 있게 구성되어 있습니다. 가능하면 직접 과제를 풀어보시고, 막히는 부분은 AI 코딩 도구의 도움을 얻어 해답을 확인하시길 권장합니다.

1.1 AI가 코드를 써주는 시대에 FastAPI를 배우는 이유

지금은 API 코드 한두 개쯤은 AI에게 시키면 몇 초 만에 받아볼 수 있습니다. 그럼에도 이 책을 읽어야 하는 이유는, 받아온 코드를 읽고, 의심하고, 고칠 수 있어야 하기 때문입니다.

AI가 만들어 준 FastAPI 코드에서 자주 마주치는 상황을 몇 가지 들어보겠습니다.

  • 학습 데이터에 오래된 코드가 많아 Pydantic v1 문법(.dict(), class Config)이 섞여 나옵니다.
  • 이미 지원이 끊긴 라이브러리(python-jose, passlib)를 인증 코드에 넣어줍니다.
  • def와 async def를 구분하지 않고 써서, 서버 전체가 느려지는 코드를 만들어 놓고도 아무 경고를 주지 않습니다.

세 가지 모두 실행은 됩니다. 그래서 더 위험합니다. 이 책은 이런 코드를 만났을 때 "이건 예전 방식이다"라고 알아볼 수 있는 눈을 만드는 것을 목표로 합니다.

또 하나, FastAPI는 AI 서비스의 백엔드로 특히 많이 쓰입니다. 파이썬 생태계에서 모델을 다루기 때문이기도 하고, 스트리밍 응답을 다루기 좋기 때문이기도 합니다. LLM을 붙인 서비스를 만들려면 어차피 이런 형태의 서버를 거치게 됩니다.

2. 강의의 대상

강의는 파이썬 기본 문법을 알고 있는 분을 대상으로 합니다. 기본 문법을 설명하지 않기 때문에 파이썬을 모르시는 분들은 Python을 먼저 학습하신 후에 이 강의를 수강하시기 바랍니다.

이상적인 강의 순서로는 아래와 같습니다. 다만, 아래 순서대로 학습하지 않아도 이 강의를 수강하실 수 있습니다. Django와 FastAPI는 별개의 프레임워크이기 때문에 택1로 선택하시면 됩니다.

  1. HTML/CSS 베이스캠프
  2. JavaScript 베이스캠프
  3. Python 베이스캠프
  4. (택1) FastAPI 베이스캠프
  5. (택1) Django 베이스캠프
  6. 네트워크 베이스캠프

아래 수업 전 알고 있어야 할 기본 개념을 확인하셔서 혹시 모르는 부분이 있으면 학습하시고 오시길 권해드립니다.

  • 수업 전 체크해야 할 파이썬 기본 개념

    • 클래스와 인스턴스
    • 함수와 메서드
    • 모듈과 패키지
    • 타입 힌트(name: str 형태의 문법, FastAPI에서 가장 많이 쓰입니다)
    • 데커레이터(원리만 이해하시고, 깊게 공부하지 않아도 됩니다.)
  • 수업 전 알고 있어야 할 웹 개발 기본 개념

    • 기본적인 HTML
    • API
    • JSON 형식

3. 이 책의 실습 환경

책의 모든 코드는 아래 버전을 기준으로 작성하고 동작을 확인했습니다. 버전이 다르면 결과가 달라질 수 있으므로, 코드가 예상대로 동작하지 않을 때 가장 먼저 확인해 볼 표입니다.

항목버전비고
Python3.13 이상3.14 권장, FastAPI는 3.9 이상을 지원합니다
FastAPI0.141 이상fastapi[standard]로 설치합니다
Pydantic2.xFastAPI 설치 시 함께 설치됩니다
SQLAlchemy2.x4장부터 사용합니다
venv + pipPython에 포함가상환경을 만들고 패키지를 설치합니다
에디터Visual Studio Code다른 에디터를 쓰셔도 됩니다

책에서 쓰는 버전 표기

FastAPI는 아직 1.0이 아닌 0.x 버전대를 쓰고 있습니다. 보통 0.x는 미완성이라는 신호로 읽히지만, FastAPI는 이미 대규모 서비스에서 널리 쓰이고 있습니다. 다만 0.x인 만큼 마이너 버전이 올라갈 때 동작이 바뀌는 경우가 있으므로, 실무 프로젝트에서는 설치한 버전을 파일에 기록해 두는 것이 중요합니다. 이 방법은 6장 패키지 관리에서 다룹니다.

4. 무엇을 만들게 되나요

이 책을 끝까지 따라오면 아래와 같은 것을 만들 수 있게 됩니다.

  1. URL 하나에 파이썬 함수 하나를 연결하는 API 서버(1장, 2장)
  2. 데이터를 만들고, 읽고, 고치고, 지우는 CRUD API와 자동 생성되는 문서(3장)
  3. SQLite 데이터베이스에 데이터를 저장하고 로그인을 처리하는 서버(4장)
  4. 프론트엔드 화면까지 붙은 블로그 서비스(5장)
  5. 파일 업로드, 에러 처리, 여러 파일로 나눈 프로젝트 구조(6장)
  6. 설정 분리, 자동 테스트, 배포까지 마친 서비스(7장)

각 장은 앞 장의 결과물 위에 쌓이지만, 실습 폴더는 절마다 새로 만들기 때문에 중간 장부터 시작해도 따라올 수 있습니다.