Loading...
2020. 12. 25. 15:16

[Python] FastAPI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•œ ๋น„๋™๊ธฐ REST API ๊ฐœ๋ฐœ

Python ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ REST API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตญ๋‚ด ํ˜น์€ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์‚ฌ๋ž‘์„ ๋ฐ›๊ณ  ์žˆ๋Š” Django, ๊ทธ๋ฆฌ๊ณ  ๊ฐ€๋ฒผ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์จ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Flask ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ์š”. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Jetbrains์˜ IDE ๋„๊ตฌ์ธ PyCharm๊ณผ FastAPI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•ด์„œ REST API ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. What is FastAPI? Python์—์„œ๋Š” ์›น ์„œ๋ฒ„์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด WSGI๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ WSGI๋Š” ๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์‚ฌ๋žŒ์ด ๊ณ„์† ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ๋‹จ์ ์„ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. FastAPI๋Š” Starlette์ด๋ผ๋Š” ๋น„๋™๊ธฐ ํ”„..

2020. 12. 20. 11:14

[Python] PyCharm์—์„œ Poetry๋ฅผ ์ด์šฉํ•œ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์‹œ ๋””ํŽœ๋˜์‹œ์˜ ๊ด€๋ฆฌ๋Š” ์ด์ œ ์„ ํƒ์ด ์•„๋‹Œ ํ•„์ˆ˜๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌํƒœ๊นŒ์ง€ Python ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ํ•˜์˜€์„ ๋•Œ๋Š” requirement๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™˜๊ฒฝ๋ณ„๋กœ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ๋ฅผ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ requirements๋Š” ํ•˜๋‚˜์˜ ๋””ํŽœ๋˜์‹œ๋ฅผ ์„ค์น˜ํ•  ๋•Œ ํ•˜์œ„ ์š”์†Œ๊นŒ์ง€ ์„ค์น˜ํ•ด์ฃผ์ง€ ์•Š์•„ ์ข…์†๋˜๋Š” ๋””ํŽœ๋˜์‹œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Poetry Poetry - Python dependency management and packaging made easy. Intuitive CLI Poetry's commands are intuitive and easy to use, with sensible defaults while still being configurable. Soon ex..

2020. 12. 6. 18:42

[Python] REST API ๊ฐœ๋ฐœ๋กœ ์•Œ์•„๋ณด๋Š” WSGI, ASGI

REST API ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด์ œ ํŠน์ • ์–ธ์–ด๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•  ํ•„์š” ์—†์ด ์›ํ•˜๋Š” ์–ธ์–ด๋กœ ์ž์œ ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ์ƒ์ด ์˜ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Python ์–ธ์–ด ๋˜ํ•œ ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ REST API ์„œ๋ฒ„๋ฅผ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์ด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋งŽ์ด ์กด์žฌํ•˜์ง€๋งŒ ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋ณดํŽธํ™” ๋˜์–ด ์•Œ๋ ค์ง„ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Django Flask Django๋Š” MTV ํŒจํ„ด์„ ์ œ๊ณตํ•˜์—ฌ API ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•˜์—ฌ ์ •์  HTML ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ๋ทฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜์—ฌ ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ํ†ตํ•ด ๋†’์€ ์ƒ์‚ฐ์„ฑ์„ ์ž๋ž‘ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด Flask๋Š” ์˜ค์ง API๋งŒ์„ ์‰ฝ๊ฒŒ ์ œ๊ณตํ•˜์—ฌ ๋น ๋ฅธ API ์„œ๋ฒ„๋งŒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด์ฃ . Sprin..

2016. 10. 23. 18:18

๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•œ Python ์„ค์น˜ - Virtualenv, autoenv

์ด๋ฒˆ์—” Python์„ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…์‹œ๋‹ค. ์™œ Python์„ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ํ•ด์•ผ ํ• ๊นŒ์š”? Python์˜ ๋ฒ„์ „์€ ํ˜„์žฌ 2.7 ๋ฒ„์ „๊ณผ 3.x ๋ฒ„์ „์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์กฐ๊ธˆ ํ•ด๋ณด์‹  ๋ถ„๋“ค ์ค‘์— Java ๋ผ๋Š” ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋งŽ์ด ํ•ด๋ณด์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด, ์ด๋Ÿฐ ๋ฒ„์ „์˜ ์ฐจ์ด์— ๊ต‰์žฅํžˆ ๋ฐ˜๊ฐ์„ ํ•˜๊ฑฐ๋‚˜ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ  ์ค‘์— ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๋ฐ”๋กœ "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ"๋ผ๋Š” ๋…€์„ ๋•Œ๋ฌธ์ด์ฃ . ๋ฌผ๋ก  ๊ณต๊ฐœ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์ตœ์‹  ๋ฒ„์ „์— ๋งž์ถฐ ์ˆ˜์ •์ด ๋˜๊ธด ํ•˜์ง€๋งŒ, ์ž์‹ ์ด ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด์ง€ ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ์“ฐ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋ฒ„์ „์„ ๋งž์ถ”๋ ค๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณ ๋ คํ•ด์•ผ๋  ์‚ฌํ•ญ์ด ๋งŽ์•„์ง‘๋‹ˆ..

2016. 10. 15. 15:22

Python ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜์™€ ๋น„๊ต(3) - PyCharm

์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” PyCharm ์„ค์น˜ ํฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์•„์ง Python์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ•˜์…จ๋‹ค๊ตฌ์š”? ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. Python ์„ค์น˜ ๋ฐฉ๋ฒ• ๋ณด๊ธฐ JetBrains PyCharmJetBrains ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ด๋ณด์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด, ์œ ๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๊ทธ ๋งค๋ ฅ์— ์•„๋งˆ ๋งŽ์ด ๋งค๋ฃŒ๋˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. PyCharm์€ JetBrains์—์„œ ๊ฐœ๋ฐœํ•œ Python ๊ฐœ๋ฐœ IDE ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์œ„์—์„œ ๋งํ–ˆ๋‹ค์‹œํ”ผ ์œ ๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์ง€๋งŒ, ๋ฌด๋ฃŒ๋กœ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋Œ€ํ•™์ƒ์˜ ๊ฒฝ์šฐ, 1๋…„์— ํ•œ ๋ฒˆ ์”ฉ ๋ผ์ด์„ผ์Šค ๊ฐฑ์‹ ์„ ํ†ตํ•ด ์ „ ๊ธฐ๋Šฅ์„ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. PyCharm์€ ๋งค์šฐ ๊น”๋”ํ•œ UI์™€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋„๋ก ์ง€์›ํ•จ๊ณผ ๋™์‹œ์— django ๋“ฑ ์›น ๊ฐœ๋ฐœ์—๋„ ์œ ์šฉํ•˜..

2016. 9. 24. 14:54

Python ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜์™€ ๋น„๊ต(2) - Sublime Text 3

ํฌ์ŠคํŒ…์„ ํ•œ์ง€๊ฐ€ ์ฐธ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•™๊ต ์ƒํ™œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ๋‚˜์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ ์ค€๋น„์™€ ๊ณผ์ œ๋“ค์ด ์ด๊ฒƒ์ €๊ฒƒ ์Œ“์ด๋‹ค๋ณด๋‹ˆ, ๋ธ”๋กœ๊ทธ ํ™œ๋™์„ ์†Œํ™€ํžˆ ํ•˜๊ฒŒ ๋˜๋„ค์š” ^^; ์˜ค๋Š˜์€ ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ Python ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์น˜๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ง Python์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ•˜์…จ๋‹ค๊ตฌ์š”? ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. Python ์„ค์น˜ ๋ฐฉ๋ฒ• ๋ณด๊ธฐ Sublime Text ์„œ๋ธŒ๋ผ์ž„ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋Š” Jupyter์™€ ๋‹ฌ๋ฆฌ ์œ ๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์ด์ง€๋งŒ, ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐœ๋ฐœ ๋„๊ตฌ๊ฐ€ ์ •๋ง ์ข‹์€ ๊ฒƒ์€ ์œ ๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ ์ฐจ๋ณ„์ด ์ „ํ˜€ ์—†์œผ๋ฉฐ ๋‹จ์ง€ ๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค๋ฉด, ๊ตฌ๋งคํ•ด๋‹ฌ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€๋” ๋ฟŒ๋ ค์ฃผ๋Š” ๊ฒƒ ๋ฟ์ž…๋‹ˆ๋‹ค. Sublime Text๋Š” UI๊ฐ€ ..

2016. 9. 6. 14:10

Python ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜์™€ ๋น„๊ต(1) - Jupyter

13๋…„๋„์— ์ œ๊ฐ€ ํ•™๋ถ€ ์ˆ˜์—…์—์„œ Python์„ ์›์–ด ์ˆ˜์—…์œผ๋กœ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋งŒํ•ด๋„ ๊ต์žฌ๊ฐ€ ๊ฑฐ์˜ ๋„คํŠธ์›Œํฌ ๊ต์žฌ ์ˆ˜์ค€์œผ๋กœ ๋‘๊บผ์› ์—ˆ๋Š”๋ฐ ์ˆ˜ํ•™์ ์ธ ๋‚ด์šฉ๋„ ๋งŽ์•˜๊ณ , ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๋“ฑ์˜ ๋‚ด์šฉ๋„ ๋งŽ์ด ์žˆ์—ˆ์ง€๋งŒ ํฌ๊ฒŒ ๊ด€์‹ฌ์„ ๊ฐ–์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์ตœ๊ทผ์— Machine Learning์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋‹ค์‹œ Python์„ ์ ‘ํ•™๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ์˜ˆ์ „์—๋„ ๊ทธ๋ ‡์ง€๋งŒ ์ง€๊ธˆ์€ ๋” ๋œจ๊ฑฐ์šด ์–ธ์–ด๊ฐ€ Python์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.. ์–ด๋Š ์ปจํผ๋Ÿฐ์Šค๋‚˜ ๋ฐœํ‘œ๋ฅผ ๊ฐ€๋„ Tensorflow ๋‚ด์ง€ Django์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Python ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Python ์„ค์น˜์™€ ์‹คํ–‰ Python์€ Linux, Mac OS X, Windows ์–ด๋””์„œ๋“ ์ง€ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ž์œ ๋กœ..