๊ฐœ๋…

์›น ํ”„๋ ˆ์ž„์›Œํฌ_'Flask'๋ž€?

PentaApple 2022. 12. 6. 18:13

๐Ÿ“Œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ(Web Framework)๋ž€?

Web(์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด) + Frame(ํ‹€ ์†์—์„œ) + Work(์ž‘์—…)

 ํ”„๋ ˆ์ž„์›Œํฌ(Framework)๋Š” ๊ตฌ์กฐํ™”๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž์˜ ์Šคํฌ๋ฆฝํŠธ ํŒจํ„ด์„ ์ •ํ˜•ํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœ ํ‘œ์ค€์ด ์ •์˜๋˜์–ด ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋œปํ•œ๋‹ค. ๋ฐ˜๋ณต๋˜๋Š” ๊ณตํ†ต๋ถ€๋ถ„ ์ฝ”๋“œ๋ฅผ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ์— ๊ฐœ๋ฐœ์ž๋“ค์€ ์›ํ™œํ•œ ์ž‘์—…๊ณผ ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. 

 

 ์›น ํ”„๋ ˆ์ž„์›Œํฌ(Web Framework)๋Š” ๊ฐ„๋‹จํžˆ ๋งํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ‹€, ํ™˜๊ฒฝ์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋กœ CLI ๊ธฐ๋ฐ˜์˜ ASP.NET, PHP ๊ธฐ๋ฐ˜์˜ ๋ผ๋ผ๋ฒจ(Laravel), JAVA ๊ธฐ๋ฐ˜์˜ ์Šคํ”„๋ง(Spring), Javascript ๊ธฐ๋ฐ˜์˜ Node.js, Python ๊ธฐ๋ฐ˜์˜ Django, Ruby ๊ธฐ๋ฐ˜์˜ Ruby On Rails ๊ฐ€ ์žˆ๋‹ค. 

 

๐Ÿ“Œ Flask๋ž€?

 ํ”Œ๋ผ์Šคํฌ(Flask)๋Š”  Python ๊ธฐ๋ฐ˜์˜ ์›น ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์„œ๋ฒ„์ธก ์›น ๊ฐœ๋ฐœ์— ๋งค์šฐ ์ด์ƒ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ผฝํžŒ๋‹ค.  '๋‹จ์ˆœํ•œ ์—…๋ฌด๋Š” ๋‹จ์ˆœํ•ด์•ผ ํ•œ๋‹ค' ๋ผ๋Š” ์„ค๊ณ„ ์›์น™์ด ์žˆ์–ด, ๋น„๊ต์  ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” Flask๊ฐ€ ์ตœ์†Œํ•œ์˜ ๊ฐœ๋ฐœ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 ๋งˆ์ดํฌ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋น„๊ตํ•˜์—ฌ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์—†์–ด ํ™•์žฅ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Flask๋Š” ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Django์™€ ๋‹ฌ๋ฆฌ ORM(๊ฐ์ฒด-๊ด€๊ณ„ ๋งคํ•‘) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. // 22-2 ์˜คํ”ˆSWํ”Œ๋žซํผ ์ˆ˜์—…๊ณผ Ettopia๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ Flask ๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜์˜€์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•์„ ์œ„ํ•ด Firebase๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋‹ค.

๐Ÿ’ฌ Flask๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•ด๋ณธ ํ›„

 ํŒ€์›๋“ค ๋ชจ๋‘ ๋ฐฑ์—”๋“œ๋ฅผ ์ฒ˜์Œ ๊ฐœ๋ฐœํ•ด๋ณด๋Š” ์‹œ์ ์—์„œ, ์งง์€ ์ฝ”๋“œ๋งŒ์œผ๋กœ๋„ ์•„์ฃผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” Flask๊ฐ€ ๋งค์šฐ ์ ํ•ฉํ–ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋˜ํ•œ ํŒ€์›๋“ค์—๊ฒŒ ์ต์ˆ™ํ•œ ์–ธ์–ด์ธ Python ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ–ˆ๊ธฐ์— ๋น ๋ฅด๊ฒŒ ์ ์‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์— ์ž…๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด Flask ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธธ ๋งค์šฐ ์ถ”์ฒœํ•˜๋Š” ๋ฐ”์ด๋‹ค.

 

 Django์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์— ๋น„ํ•ด ๋‚ด์žฅ ๊ธฐ๋Šฅ์ด ๋งŽ์ด ์—†์–ด, ํ•„์š”์‹œ ํ™•์žฅ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ์— ๊ฐœ๋ฐœ์˜ ์ž์œ ๋„๊ฐ€ ๋†’์€ ๊ฒƒ๋„ ํฐ ๋งค๋ ฅ์ ์ด์—ˆ๋‹ค. ์ด ๋•๋ถ„์— ๊ฐ„ํŽธํ•˜๊ณ  ์‰ฌ์šด Firebase๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™˜๊ฒฝ์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด ์™ธ์—๋„ ๋” ๋งŽ์€ ํ™•์žฅ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ–ˆ์„ ๋•Œ, Flask๋ฅผ ํ†ตํ•ด ๋” ๋งŽ์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์Œ“์•„๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.