๐ FastAPI๋?
- API(Application Programing Interface)๋ ์๋น์ค์ ์์ฒญ๊ณผ ์๋ต์ ๋ํ ๊ท์น์ ์๋ฏธํ์ง๋ง
๋ณดํต API๋ผ๊ณ ํ๋ฉด ์ด๋ฌํ ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๋ ์๋น์ค(๊ธฐ๋ฅ)๋ฅผ ์๋ฏธ
๊ธฐ์กด ํ๋ ์์ํฌ์์ ์ฐจ์ด์
- ํ์ด์ฌ ์น ํ๋ ์์ํฌ ์ค ๊ฐ์ฅ ์ ๋ช
ํ Django์ ํ๋ผ์คํฌ๋ ์ฃผ๋ก ์น ์๋น์ค๋ฅผ ๋ง๋ค๋ ์ฌ์ฉํ๋ค. ํ์ง๋ง FastAPI๋ API๋ฅผ ๋ง๋๋๋ฐ ๋ณด๋ค ์ง์คํ ํ๋ ์์ํฌ์ด๋ค.
- ์ฅ๊ณ ๋ ํ๋ผ์คํฌ๋ก ์น ์๋น์ค๋ฅผ ๋ง๋ค์๋ค๋ฉด ์ด์ ๋์ํ๋ ์๋๋ก์ด๋๋ ์์ดํฐ ์ฑ์ ์ํ API ๊ฐ๋ฐ์ ๋ฐ๋ก ํด์ผ ํ์ง๋ง FastAPI๋ ํ๋ฒ ๋ง๋ API๋ฅผ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ์์ ๋ณ๊ฒฝ์์ด ์ฌ์ฉํ ์ ์๋ค.
์๋๊ฐ ๋น ๋ฆ
- FastAPI๊ฐ ๋ด๋ถ์ ์ผ๋ก Starlette์ด๋ผ๋ ๋น๋๊ธฐ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ NodeJS ๋ฐ Go์ ๋๋ฑํ ์ ๋๋ก ๋์ ์ฑ๋ฅ์ ์๋
๋น ๋ฅด๊ฒ ์์ฑ ๊ฐ๋ฅ
- API ๊ฐ๋ฐ์ ๋ณดํต ์
์ถ๋ ฅ ์คํ์ ์ ํ๊ณ ๊ธฐ๋ฅ์ ๊ตฌํํ ํ ํ
์คํธํ๋ ์์๋ก ์งํ
- FastAPI๋ ์
์ถ๋ ฅ์ ์ ์ํ๊ณ ์
์ถ๋ ฅ ๊ฐ์ ๊ฒ์ฆ์ ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ํ ์ ์๋ค.
- ์์ฑํ API๋ ์๋์ผ๋ก ์์ฑ๋๋ API ๋ฌธ์(์น ๋ฌธ์)๋ฅผ ํตํด ์์ฝ๊ฒ ํ
์คํธํ ์ ์๋ค.
ํ
์คํธ ๊ฐ๋ฅํ API ๋ฌธ์

- API ๋ฌธ์๊ฐ ์๋์ผ๋ก ์์ฑ๋๊ณ , API ๋ฌธ์๋ ์น ํ์ด์ง ํํ๋ก ์ ๊ณต๋๋ฉฐ API ๋์์ ํ
์คํธํ ์ ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)
- FastAPI๋ Django์ฒ๋ผ ์์ฒด ORM(Object Relational Mapping)์ ์ ๊ณตํ์ง๋ ์๋๋ค.
ํ์ง๋ง SQLAlchemy๋ฅผ ์ฌ์ฉํ์ฌ ORM์ ์ฌ์ฉํ ์ ์๋ค.
FastAPI๋ ๊ฒฌ๊ณ ํ API๊ณต์ฅ๊ณผ๋ ๊ฐ๋ค. ์
์ถ๋ ฅ ์ ์์ ์
์ถ๋ ฅ ๊ฐ์ ๊ฒ์ฆํ๋ ๊ฒ์ด ํจํดํ ๋์ด ์์ด ๊ฒฌ๊ณ ํ๋ค๋ ์ธ์์ ์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์๋ ์
์ถ๋ ฅ์ ํตํด API ๋ฌธ์๊ฐ ์๋์ผ๋ก ์์ฑ๋๋ค.
๋ฐ๋ผ์ FastAPI๋ API๋ฅผ ์ ๋ง๋ค์ด๋ด๋ ํ๋ฅญํ ๊ณต์ฅ๊ณผ๋ ๊ฐ๋ค.
โ๊ฐ๋ฐํ๊ฒฝ ์ค์
ํ๋ ์์ํฌ |
๊ตฌ๋ถ |
์๋ํฐ |
์๋ฒ ์คํ ๋ช
๋ น์ด |
FastAPI |
๋ฐฑ์๋(back-end) |
ํ์ด์ฐธ (Pycharm) |
uvicorn main:app --reload --port ํฌํธ๋ฒํธ |
Svelte |
ํ๋ก ํธ์๋(front-end) |
๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋ (VSCode) |
npm run dev |