[๋ถ์คํธ์บ ํ AI Tech]WEEK 17_DAY 80
๐ ๊ฐ๋ณํ์ต
[3-3] FastAPI 3
1. FastAPI ์ต์ํด์ง๊ธฐ
1) Event Handler
(1) ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์ฒ๋ฆฌํ๋ ํจ์
(2) Application์ด ์คํํ ๋, ์ข ๋ฃ๋ ๋ ํน์ ํจ์๋ฅผ ์คํํ ์ ์์
(3) app.on_event("startup")
์) startup ํ ๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ Load
(4) app.on_event("shutdown")
์) shutdown ํ ๋ ๋ก๊ทธ ์ ์ฅ
(5) ์ค์ต
- 11_event_handler.py
- console log๋ก ํ์ธ
2) API Router
(1) API Endpoint๋ฅผ ์ ์
(2) Mini FastAPI๋ก ์ฌ๋ฌ API๋ฅผ ์ฐ๊ฒฐํด์ ํ์ฉ
(3) router ํ์ผ์ ๋ฐ๋ก ์ค์ ํ๊ณ app์ importํด์ ์ฌ์ฉ
(4) ์ค์ต
- 12_api_router.py ์์ฑ
- /users
- /orders
(5) ์์ ํ๋ก์ ํธ ๊ตฌ์กฐ
3) Error Handling
(1) ์น ์๋ฒ๋ฅผ ์์ ์ ์ผ๋ก ์ด์ํ๊ธฐ ์ํด ๋ฐ๋์ ํ์ํจ
(2) ์๋ฒ์์ Error๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ -> ์ด๋ค Error์ธ์ง ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์ ๋ฌํด ๋์ํด์ผ ํจ
(3) ์๋ฒ ๊ฐ๋ฐ์๋ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํด Error Log ์์ง
(4) ์์ธ ์ฒ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ผ ํจ
(5) ์ค์ต
- 13_exception_handling.py ์์ฑ
- item_id == 1 --> 200 Return
- item_id == 5 --> 500 Return
4) Background Tasks
(1) ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ๋ค์ background์์ ์คํํจ
(2) Starlett์ด๋ผ๋ ๋น๋๊ธฐ ํ๋ ์์ํฌ๋ฅผ ๋ํํด์ ์ฌ์ฉ
(3) CPU ์ฌ์ฉ์ด ๋ง์ ์์ ๋ค์ Background Task๋ก ์ฌ์ฉํ๋ฉด, ํด๋ผ์ด์ธํธ๋ ์ฆ์ Response๋ฅผ ๋ฐ์ ์ ์์
๐ ์ค๋์ ํ๊ณ
์ด์ ์๊ธฐ ์ ์ ๋ฐ์ดํฐ ์์ถํ์ผ์ ์๋ฒ์ ์ฌ๋ ค๋๊ณ ์ ๋ค์๋๋ฐ ์ผ์ด๋๋ณด๋ vscode๊ฐ ๊บผ์ ธ ์์๋ค... ๋๋๊ทธ๋ก ํ์ผ ์ฎ๊ฒจ๋จ๋๊ฑด๋ฐ ํ์ผ ํฌ๊ธฐ๊ฐ ํฌ๋ค๋ณด๋ ๋ ์ด ๊ฑธ๋ฆฐ๋ฏ..(ใ ใ ) ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผํ๊ณ ๋ค์ ํ์ผ ์ฎ๊ฒผ๋๋ฐ ๋ ์๊ฐ๋ง ์ง๋๋ ์๋์ WinSCP ์ด์ฉํด์ ํ์ผ ์ฎ๊ฒผ๋ค...๋ค์ ์์ถ ํด์ ํ๊ณ annotation ๋ง๋ ๋ค์์ ํ์ต์ํค๋๊น ์ ๋์๋ค(!!!) ์ฃผ๋ง๋์ ์ด์ฌํ.. ์.. ํ์ต๋๊ธฐ๋ฅผ..๐