πŸ”§ FastAPI 개발 ν™˜κ²½ μ„€μ • (Windows κΈ°μ€€)

πŸ•’ μ•½ 1λΆ„ μ½λŠ” 데 μ†Œμš”λ©λ‹ˆλ‹€

이전글 보기(FastAPI λž€ 무엇인가?)

κ°œλ°œλ³΄λ‹€ 더 μ–΄λ €μš΄ 개발 ν™˜κ²½ 섀정을 μ‹œμž‘ν•΄λ΄…μ‹œλ‹€!
FastAPIλŠ” μ„€μΉ˜μ™€ 싀행이 비ꡐ적 κ°„λ‹¨ν•˜μ§€λ§Œ, μ œλŒ€λ‘œ 된 κ°œλ°œμ„ μœ„ν•΄μ„œλŠ” λͺ‡ κ°€μ§€ ν•„μˆ˜ 도ꡬ와 섀정이 ν•„μš”ν•©λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” Windows ν™˜κ²½μ—μ„œ FastAPI ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜λŠ” 데 ν•„μš”ν•œ λͺ¨λ“  과정을 μžμ„Ένžˆ μ•ˆλ‚΄ν•©λ‹ˆλ‹€.
κ°€μƒν™˜κ²½ 생성뢀터 FastAPI μ‹€ν–‰κΉŒμ§€, ν•˜λ‚˜μ”© μ‹œμž‘ν•΄λ΄…μ‹œλ‹€.


βœ… 1. Python μ„€μΉ˜

FastAPIλŠ” Python 3.7 μ΄μƒμ—μ„œ λ™μž‘ν•©λ‹ˆλ‹€. κ°€μž₯ λ¨Όμ € Python이 μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , μ—†μœΌλ©΄ μ„€μΉ˜ν•΄λ΄…μ‹œλ‹€.

μ„€μΉ˜ 방법:

  1. 곡식 Python λ‹€μš΄λ‘œλ“œ νŽ˜μ΄μ§€λ‘œ 이동
  2. μ΅œμ‹  λ²„μ „μ˜ Windows installer (64-bit) 클릭
  3. μ„€μΉ˜ μ‹œ μ•„λž˜ ν•­λͺ© 체크 ν•„μˆ˜:
    • βœ… Add Python to PATH
    • βœ… Install launcher for all users
  4. μ„€μΉ˜ ν›„ μ»€λ§¨λ“œ ν”„λ‘¬ν”„νŠΈ(cmd) μ—΄κ³  λ‹€μŒ λͺ…λ Ήμ–΄ μž…λ ₯:
python --version

μ •μƒμ μœΌλ‘œ μ„€μΉ˜λ˜μ—ˆλ‹€λ©΄ 버전이 좜λ ₯λ©λ‹ˆλ‹€. 예: Python 3.11.2


πŸ“ 2. ν”„λ‘œμ νŠΈ 폴더 생성

μž‘μ—…ν•  디렉토리λ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄μ£Όμ„Έμš”. 예λ₯Ό λ“€μ–΄:

C:\Users\μ‚¬μš©μžλͺ…\fastapi-tutorial

이제 ν•΄λ‹Ή ν΄λ”λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

cd C:\Users\μ‚¬μš©μžλͺ…\fastapi-tutorial

πŸ§ͺ 3. κ°€μƒν™˜κ²½(Virtual Environment) μ„€μ •

κ°€μƒν™˜κ²½μ„ μ‚¬μš©ν•˜λ©΄ λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ™€ μ˜μ‘΄μ„± 좩돌 없이 λ…λ¦½μ μœΌλ‘œ κ°œλ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€μƒν™˜κ²½ 생성:

python -m venv venv

venvλŠ” κ°€μƒν™˜κ²½ 폴더 μ΄λ¦„μž…λ‹ˆλ‹€. 자유둭게 바꿔도 λ©λ‹ˆλ‹€.

κ°€μƒν™˜κ²½ ν™œμ„±ν™”:

venv\Scripts\activate

ν™œμ„±ν™”λ˜λ©΄ (venv) 같은 ν”„λ‘¬ν”„νŠΈκ°€ μ•žμ— λΆ™μŠ΅λ‹ˆλ‹€. κ°€μƒν™˜κ²½μ΄ μ •μƒμ μœΌλ‘œ ν™œμ„±ν™”λœ κ²ƒμž…λ‹ˆλ‹€.


πŸ“¦ 4. FastAPI & Uvicorn μ„€μΉ˜

FastAPIλŠ” μ›Ή ν”„λ ˆμž„μ›Œν¬, Uvicorn은 μ›Ή μ„œλ²„ 역할을 ν•©λ‹ˆλ‹€. ν•¨κ»˜ μ„€μΉ˜ν•΄μ€λ‹ˆλ‹€.

pip install fastapi uvicorn

μ„€μΉ˜κ°€ μ™„λ£Œλ˜λ©΄ λ‹€μŒ λͺ…λ Ήμ–΄λ‘œ 확인:

pip list

μ—¬κΈ°μ„œ fastapi, uvicorn이 보이면 μ„±κ³΅μž…λ‹ˆλ‹€.


✍️ 5. Hello FastAPI: 첫 번째 μ•± λ§Œλ“€κΈ°

FastAPI의 κΈ°λ³Έ μž‘λ™μ„ 확인해보기 μœ„ν•΄ κ°„λ‹¨ν•œ 예제λ₯Ό λ§Œλ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. 파일 생성

main.pyλΌλŠ” μ΄λ¦„μ˜ νŒŒμΌμ„ μƒμ„±ν•˜κ³ , λ‹€μŒ μ½”λ“œλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, FastAPI!"}

이건 FastAPI의 κ°€μž₯ 기본적인 APIμž…λ‹ˆλ‹€. 루트 경둜(/)에 GET μš”μ²­μ΄ λ“€μ–΄μ˜€λ©΄ JSON ν˜•νƒœλ‘œ λ©”μ‹œμ§€λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.


πŸš€ 6. Uvicorn으둜 μ„œλ²„ μ‹€ν–‰

μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ„Έμš”:

uvicorn main:app --reload
  • main: 파일 이름 (main.py)
  • app: FastAPI μΈμŠ€ν„΄μŠ€ 이름
  • --reload: μ½”λ“œ λ³€κ²½ μ‹œ μžλ™μœΌλ‘œ μ„œλ²„λ₯Ό μž¬μ‹œμž‘ν•΄μ£ΌλŠ” 개발자 λͺ¨λ“œ

μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰λ˜μ—ˆλ‹€λ©΄ μ•„λž˜μ²˜λŸΌ 좜λ ₯λ©λ‹ˆλ‹€:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

🌐 7. λΈŒλΌμš°μ €μ—μ„œ 확인

이제 λΈŒλΌμš°μ €λ₯Ό μ—΄κ³  μ•„λž˜ μ£Όμ†Œλ‘œ μ ‘μ†ν•΄λ³΄μ„Έμš”:

μžλ™μœΌλ‘œ μƒμ„±λœ API λ¬Έμ„œ 덕뢄에 λ°”λ‘œ ν…ŒμŠ€νŠΈλ„ κ°€λŠ₯ν•˜κ³ , λ™μž‘λ„ ν•œλˆˆμ— λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ› οΈ (선택) Visual Studio Code ν™˜κ²½ μ„€μ • 팁

VS CodeλŠ” FastAPI κ°œλ°œμ— 맀우 μ ν•©ν•œ μ—λ””ν„°μž…λ‹ˆλ‹€.

μΆ”μ²œ ν™•μž₯ ν”„λ‘œκ·Έλž¨:

  • Python (Microsoft)
  • Pylance (νƒ€μž… νžŒνŠΈμ™€ μžλ™μ™„μ„± 지원)
  • REST Client (API ν…ŒμŠ€νŠΈμ— 유용)

ν„°λ―Έλ„μ—μ„œ κ°€μƒν™˜κ²½ μžλ™ ν™œμ„±ν™”

VS Codeλ₯Ό ν”„λ‘œμ νŠΈ ν΄λ”μ—μ„œ μ‹€ν–‰ν•˜λ©΄ κΈ°λ³Έ ν„°λ―Έλ„μ—μ„œ venv κ°€μƒν™˜κ²½μ΄ μžλ™μœΌλ‘œ ν™œμ„±ν™”λ©λ‹ˆλ‹€.

code .

🧾 마무리: ν™˜κ²½ μ„ΈνŒ…μ€ ν•œ 번, νš¨κ³ΌλŠ” 평생

FastAPIλŠ” λΉ λ₯΄κ³  생산적인 μ›Ή ν”„λ ˆμž„μ›Œν¬μ΄μ§€λ§Œ, 첫 κ±ΈμŒμ„ 잘 λ–ΌλŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” Windowsμ—μ„œ Python, κ°€μƒν™˜κ²½, FastAPI μ„€μΉ˜, 그리고 첫 μ‹€ν–‰κΉŒμ§€μ˜ μ „ 과정을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.

이제 본격적인 FastAPI κ°œλ°œμ„ μœ„ν•œ μ€€λΉ„κ°€ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€!
λ‹€μŒ κΈ€μ—μ„œλŠ” λΌμš°νŒ…κ³Ό 경둜 λ§€κ°œλ³€μˆ˜, 쿼리 λ§€κ°œλ³€μˆ˜μ— λŒ€ν•΄ 깊이 있게 닀뀄볼 μ˜ˆμ •μž…λ‹ˆλ‹€.

FastAPI 곡식 λ¬Έμ„œ : https://fastapi.tiangolo.com/ko/

fastapi-logo,fastapi-개발-ν™˜κ²½-μ„€μ •