์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

์‹ค์ „! FastAPI ํ™œ์šฉ(๋น„๋™๊ธฐ)

FastAPI๋ฅผ ํ™œ์šฉํ•œ ํŒŒ์ด์ฌ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชจ๋“  ๊ฒƒ

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐฑ์—”๋“œ, FastAPI] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • asyncio

  • ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • fastapi

  • event loop

ํ•œ ๋‹จ๊ณ„ ๋” ์„ฑ์žฅํ•˜๋Š” ๊ธฐํšŒ ๐Ÿ”ฅ
Python ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ œ๋Œ€๋กœ ์•Œ์•„๋ด…์‹œ๋‹ค โœ…

FastAPI๋ฅผ ํ†ตํ•ด ๋ฐฐ์šฐ๋Š” Python ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชจ๋“  ๊ฒƒ!

์›น ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ์ตœ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด์ œ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํ˜„๋Œ€์ ์ธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ธ FastAPI๋ฅผ ํ†ตํ•ด ์ตœ์‹  Python ๊ฐœ๋ฐœ์˜ ํŠธ๋ Œ๋“œ์™€ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด ํ•™์Šตํ•ด๋ด…์‹œ๋‹ค.

์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด ์–ด๋ ต๊ฒŒ๋งŒ ๋А๊ปด์กŒ๋˜ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ •๋ณตํ•˜๊ณ , ํ•œ ๋‹จ๊ณ„ ๋” ์„ฑ์žฅํ•˜์„ธ์š”!

๐Ÿ“Œ ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ

  • Python ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ์ ์ธ ํ™œ์šฉ ๋ฐฅ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ํ‘œ์ค€ ๋น„๋™๊ธฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ asyncio์™€ ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)์— ๋Œ€ํ•ด ๋ฐฐ์›๋‹ˆ๋‹ค.

  • FastAPI์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ์ดํ•ดํ•˜๊ณ , ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ์ž์„ธํ•˜๊ฒŒ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

์„œ๋ฒ„ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์€
Python ์›น ๊ฐœ๋ฐœ์ž

FastAPI๋ฅผ ์ œ๋Œ€๋กœ
์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜
๋‚ด๋ถ€ ์›๋ฆฌ๊ฐ€ ๊ถ๊ธˆํ•˜์‹  ๋ถ„

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”.

[์‹ค์Šต] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋น„๋™๊ธฐ ์ „ํ™˜

sqlalchemy๋ฅผ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค. ๋™๊ธฐ์‹์œผ๋กœ ์ž‘์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ํ•จ๊ป˜ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

[์‹ค์Šต] ์™ธ๋ถ€ API ํ˜ธ์ถœ

HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ API์™€ ํ†ต์‹ ํ•˜๋Š” ๋ถ€๋ถ„์— ์–ด๋–ป๊ฒŒ ๋น„๋™๊ธฐ ๋ฐฉ์‹์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

[์‹ค์Šต] ์›น ์†Œ์ผ“ ์ฑ„ํŒ… & Redis Pub/Sub

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์›น ์†Œ์ผ“์„ ์ด์šฉํ•ด ๊ฐ„๋‹จํ•œ ์˜คํ”ˆ ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•˜๊ณ , Redis Pub/Sub์„ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋กœ ํ™œ์šฉํ•˜์—ฌ ํ™•์žฅ์„ฑ ์žˆ๋Š” ์‹œ์Šคํ…œ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

[์‹ค์Šต] ๋™๊ธฐ/๋น„๋™๊ธฐ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ์„ 

๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” FastAPI ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์•Œ์•„๋ณด๊ณ , ์ด๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ๊ฐ•์˜์—์„œ๋Š” ์‹ค์Šต ํ™˜๊ฒฝ์œผ๋กœ MacOS ๋ฐ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ผ๋ถ€ Docker๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • Windows ํ™˜๊ฒฝ์—์„œ๋„ ์‹ค์Šต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • ๊ธฐ์ดˆ์ ์ธ Python ๋ฌธ๋ฒ•๊ณผ ์›น ์„œ๋ฒ„์˜ ๋™์ž‘์— ๋Œ€ํ•ด ์ดํ•ดํ•œ ์ƒํƒœ์—์„œ ์ˆ˜๊ฐ•ํ•ด์ฃผ์„ธ์š”.


  • ์ด๋ฒˆ ๊ฐ•์ขŒ์—์„œ ๊ธฐ์ดˆ FastAPI ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • ๊ธฐ์ดˆ ๊ฐ•์ขŒ๊ฐ€ ํ•„์š”ํ•˜์‹  ๋ถ„๋“ค์€ ํ• ์ธ ์ฝ”๋“œ๋ฅผ ํ•จ๊ป˜ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ํŒŒ์ด์ฌ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„

  • FastAPI์˜ ์„ฑ๋Šฅ์„ ์ตœ๋Œ€๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Python

์•ˆ๋…•ํ•˜์„ธ์š”
์‹ ๋™ํ˜„์ž…๋‹ˆ๋‹ค.

2,128

๋ช…

์ˆ˜๊ฐ•์ƒ

127

๊ฐœ

์ˆ˜๊ฐ•ํ‰

118

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

5

๊ฐœ

๊ฐ•์˜

  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

    • ์Šคํƒ€ํŠธ์—… ์ฐฝ์—…

    • (์ „) ํ† ์Šค ์ฆ๊ถŒ NoOpsํŒ€

    • (์ „) Asleep ์Šฌ๋ฆฝ๋ฃจํ‹ด ๊ฐœ๋ฐœ

    • (์ „) ABLY ๊ด‘๊ณ  ์‚ฌ์—…ํŒ€

    • PyCon Korea 21/22/23 Speaker

  • ๊ฐ•์˜

    • O ๋ถ€ํŠธ์บ ํ”„ ์˜จ๋ผ์ธ/์˜คํ”„๋ผ์ธ ๊ฐ•์‚ฌ

    • S ๋ถ€ํŠธ์บ ํ”„ ์˜จ๋ผ์ธ ํŠœํ„ฐ

  • ์ž๊ฒฉ์ฆ ๋ฐ ์ˆ˜์ƒ ๋‚ด์—ญ

    • AWS 2023 StartUp Security GameDay 1๋“ฑ

    • 3x AWS Certified

      • AWS Certified Database โ€“ Specialty

      • AWS Certified Solutions Architect - Associate

      • AWS Certified Developer - Associate

    • CKAD(Certified Kubernetes Application Developer)

  • ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ: qu3vipon.com

  • ๊นƒํ—ˆ๋ธŒ: github.com/qu3vipon

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

17๊ฐœ โˆ™ (58๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!