반응형
파이썬으로 웹사이트나 API 서버를 만들 때, 예전에는 'Django(장고)'나 'Flask(플라스크)'를 많이 썼습니다. 하지만 요즘 실리콘밸리와 스타트업에서는 압도적으로 FastAPI로 넘어가는 추세입니다.
특히 저처럼 AI 서비스를 개발하거나 데이터를 다루는 분들에게는 선택이 아니라 필수입니다. 도대체 FastAPI가 뭐길래 난리인지, 어떻게 시작하는지 아주 쉽게 정리해 드립니다.
1. FastAPI가 뭔가요? (개념)
이름 그대로 **"엄청나게 빠른(Fast) API 제작 도구"**입니다. 파이썬의 가장 큰 단점이 "느리다"는 것인데, FastAPI는 내부적으로 비동기 처리(Asynchronous)를 지원해서 Node.js나 Go 언어만큼 빠른 속도를 냅니다.
- 쉽게 비유하자면:
- Django: 모든 기능이 다 들어있는 무거운 대형 트럭 (설정이 복잡함)
- Flask: 엔진만 달린 깡통차 (가볍지만 일일이 다 만들어야 함)
- FastAPI: 최신형 전기차 (빠르고, 옵션 좋고, 운전하기 편함)
2. 왜 써야 하나요? (장점)
제가 써보고 느낀 가장 큰 장점 3가지입니다.
- 자동 문서화 (Swagger UI): 코드를 짜면 "사용 설명서(API 문서)"를 알아서 만들어줍니다. (/docs 주소만 치면 나옵니다. 이게 진짜 사기급 기능입니다.)
- 데이터 검증 (Pydantic): "숫자가 들어와야 하는데 문자가 들어왔네?" 같은 오류를 알아서 잡아줍니다.
- 생산성: 코드 양이 적고 직관적이라 개발 속도가 2~3배 빨라집니다.
3. 코드 구조 (어떻게 생겼나?)
가장 기본적인 main.py 파일의 구조는 이렇습니다.
Python
# 1. 필수 도구 가져오기 (Import)
from fastapi import FastAPI
# 2. 앱(가게) 오픈하기
app = FastAPI()
# 3. 경로(메뉴) 만들기
# @app.get("/") : "손님이 주소창에 / 만 치고 들어오면" 이라는 뜻
@app.get("/")
def read_root():
return {"Hello": "World"} # 이 데이터를 줍니다.
- import: FastAPI라는 설계도를 가져옵니다.
- app = FastAPI(): app이라는 이름으로 서버 객체를 만듭니다. (가게 간판 달기)
- @app.get("/"): 데코레이터라고 부르는데, 특정 주소로 요청이 오면 아래 함수를 실행하라는 '신호등' 역할을 합니다.
4. 실행 방법 (터미널 명령어)
코드를 다 짰으면 서버를 켜야겠죠? 이때 등장하는 게 **'Uvicorn(유비콘)'**입니다. FastAPI는 요리사고, Uvicorn은 요리를 나르는 서버(Server) 프로그램입니다.
터미널(VS Code)에서 아래 명령어를 입력합니다.
Bash
python -m uvicorn main:app --reload
[명령어 해부]
- python -m uvicorn: "파이썬아, uvicorn이라는 모듈을 실행해줘."
- main: 파일 이름이 main.py라서 main입니다. (파일 이름이 server.py면 server로 바꿔야 함)
- :: 파일과 앱을 연결하는 구분자입니다.
- app: 코드 안에서 app = FastAPI()라고 변수 이름을 지었기 때문입니다.
- --reload: "내가 코드를 수정하고 저장하면, 알아서 서버를 껏다 켜줘" (개발할 때 필수!)
마무리: AI 모델을 웹으로 서비스하거나, 가벼운 웹페이지 백엔드를 만들 때 FastAPI는 최고의 선택입니다. 설치도 pip install fastapi uvicorn 한 줄이면 끝납니다. 지금 바로 시작해 보세요!
다음 포스팅에서는 FastAPI로 뉴스 데이터를 크롤링해서 뿌려주는 예제를 다뤄보겠습니다.
반응형
'파이썬(Python)' 카테고리의 다른 글
| 윈도우에서 리눅스 쓰기: WSL2 설치 & VS Code 연동 완벽 가이드 (0) | 2026.01.27 |
|---|---|
| [파이썬 프로젝트] HTML/CSS 몰라도 됩니다. 'Streamlit'으로 10분 만에 뉴스 검색 웹사이트 만들기 (0) | 2026.01.26 |
| [파이썬 실전] FastAPI로 '나만의 네이버 뉴스 검색기' 만들기 (크롤링 + API 연동) (0) | 2026.01.25 |
| [파이썬 독학] 개발 환경 세팅, 딱 3개만 설치하면 끝납니다 (VS Code, Anaconda, Git) (0) | 2026.01.25 |
| [파이썬 용어 사전] 코딩 독학러가 꼭 알아야 할 필수 개념 총정리 (이것만 알면 강의 들린다!) (4) | 2026.01.24 |