๐๐ฎ๐ฉ๐๐ค๐ฃ/๐๐๐จ๐ฉ ๐ผ๐๐5 Fast API๋ก ๋ฐฑ์๋์๋ฒ ๋ง๋ค๊ธฐ [1] ๊ฒ์ํ์ ๋ณด๋ 2์์ Fast API๋ฅผ ๊ณต๋ถํ๋ ํ์ ์ด ์์๋ค. ๊ทธ ๋น์์๋ ์๋ฒ๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ผํ๋ ์ต์ํ์ง ์์ ํ๋ ์์ํฌ๋ณด๋ค flask๋ก ๋ง๋๋๊ฒ ํธํด์ ์ ์ ์ ์ด๋์๋ค. ๊ทธ๋์ flask๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ผ์ ์๊ฐ๋ง๋ค ์ ์ ์ ๋ณด๋ฅผ ์ทจํฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธ๋ฅผ ํ๋ ์๋ฒ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๊ณ ์์๋ค. ์กฐ๊ธ์ฉ ๋ด ์ ๋ฌด ์์ญ์ ๋ํ์ ธ์ ํ๋ก ํธ์ ํต์ ํ๋ ์๋ฒ๋จ์์ ๋ด์ชฝ์ผ๋ก ๊ฐ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด ๊ฒฐ๊ณผ๋ฌผ์ ๋ฆฌํดํด์ฃผ๋ ์๋ฒ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ์ด๋ฒ์๋ flask๋ก ๋ง๋ค๊ณ ํ ์คํธ๋ฅผ ํด๋ด์ ์๋์ด ๋ฐฐํฌ๋ฅผ ํ๋๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ๋ฉ์ฒญํ๊ฒ flask๋ฅผ ์ฌ์ฉํ ๋๋ Flask + uWSGI + Nginx ์ธํธ์ ๊ฐ์ด ์ธ๋ถ ์๋ฃ๋ฅผ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋๋ฐ flask์ ๋ฌด์งํ๋ค. ๊ทธ๋์ ์ด์ฌํ ์ด๊ฒ์ ๊ฒ ๋ง์ ธ๋ณด.. 2023. 10. 26. Fast API ๊ณต๋ถํด๋ณด๊ธฐ #4 body ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #3 pydantic, query, request body Fast API ๊ณต๋ถํด๋ณด๊ธฐ #2 ๊ฒฝ๋ก ๋์ ์์ฑ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #1 ํน์ง ๋ฐ ์ค์น ๋ฐฑ์๋๋ก Django, flask๋ง ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๊ธฐ์ Fast API๋ ์ข๋ค๊ณ ํ์ฌ ํ๋ฒ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ beomcoder.tistory.com body์ ๋ํด์ ์กฐ๊ธ๋ ์์ธํ๊ฒ ๊ณต๋ถํด๋ณด๋ ค ํ๋ค. from typing import Union from fastapi import FastAPI, Path from pydantic import BaseModel app = FastAPI() # FastAPI()๋ฅผ app์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๋ค. class Item(BaseModel): # pydant.. 2023. 2. 23. Fast API ๊ณต๋ถํด๋ณด๊ธฐ #3 pydantic, query, request body Fast API ๊ณต๋ถํด๋ณด๊ธฐ #2 ๊ฒฝ๋ก ๋์ ์์ฑ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #1 ํน์ง ๋ฐ ์ค์น ๋ฐฑ์๋๋ก Django, flask๋ง ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๊ธฐ์ Fast API๋ ์ข๋ค๊ณ ํ์ฌ ํ๋ฒ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ํ๋ค. ์ฐ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ beomcoder.tistory.com REST APIํ์์ผ๋ก ํ๋ฒ ์ฌ์ฉํด๋ณด๋ ค๊ณ ํ๋ค. ๋จผ์ pydantic์ ์์์ผ ํ๋ค. pydantic์ ํ์ ์ ๋ํ ์ด์ ์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํ๊ณ ์ค์ ๋ค์ ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. pydantic์ ๋ฐํ์ ํ๊ฒฝ์์ ํ์ ์ ๊ฐ์ ํ๊ณ ํ์ ์ด ์ ํจํ์ง ์์ ๋ ์๋ฌ๋ฅผ ๋ฐ์์์ผ์ค๋ค. FastAPI, Project Jupyter, Microsoft, AWS ๋ฑ ๋ง์ ๊ณณ์์ ์ฌ์ฉ๋๋ค. from typing im.. 2023. 2. 23. Fast API ๊ณต๋ถํด๋ณด๊ธฐ #2 ๊ฒฝ๋ก ๋์ ์์ฑ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #1 ํน์ง ๋ฐ ์ค์น ๋ฐฑ์๋๋ก Django, flask๋ง ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๊ธฐ์ Fast API๋ ์ข๋ค๊ณ ํ์ฌ ํ๋ฒ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ํ๋ค. ์ฐ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ฃผ์๋ค. from fastapi import FastAPI beomcoder.tistory.com from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} ์ฌ๊ธฐ์ ๋์์ '/' ๋ค์์ ์ค๋ ๋ถ๋ถ์ ๋งํ๋ค. https://example.com/items/foo ์์ /items/foo ๋ฅผ ๊ฒฝ๋ก๋ผ๊ณ ๋งํ๋ค. from fastapi import Fas.. 2023. 2. 22. Fast API ๊ณต๋ถํด๋ณด๊ธฐ #1 ํน์ง ๋ฐ ์ค์น ๋ฐฑ์๋๋ก Django, flask๋ง ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๊ธฐ์ Fast API๋ ์ข๋ค๊ณ ํ์ฌ ํ๋ฒ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ํ๋ค. ์ฐ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ฃผ์๋ค. from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} ๊ทธ๋ฆฌ๊ณ main.py๋ฅผ ๋ง๋ค์ด์ ์ฝ๋๋ฅผ ์ ๋ ฅํด๋ณด๋ฉด ๋๋ค. ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํฐ๋ฏธ๋์ uvicorn main:app --reload ์ ์ ๋ ฅํ๋ฉด ๋๋ค. ์์ ๋๋ก ๋ง๋ค์ง ์์๋ค๋ฉด ์กฐ๊ธ ๋ค๋ฅด๋ค. study.py๋ก ๋ง๋ค์๋ค๋ฉด uvicorn study:app --reload์ด๊ณ , app = FastAPI()๋ฅผ my_.. 2023. 2. 22. ์ด์ 1 ๋ค์