Flask๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, RESTful API ๋ฐ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์˜ ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๊ฐ€๋ณ๊ณ  ๊ฐ•๋ ฅํ•˜๋ฉฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” Python ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. 2010๋…„ Armin Ronacher๊ฐ€ ๊ฐœ๋ฐœํ•œ Flask๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์šฉ๋„ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ƒ๋‹นํ•œ ์ฃผ๋ชฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์œ ์—ฐ์„ฑ, ๋‹จ์ˆœ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์œผ๋กœ ์œ ๋ช…ํ•œ Flask๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฏธ๋‹ˆ๋ฉ€ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ๊ณผ ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด Flask๋Š” ํ˜„๋Œ€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ, ํŠนํžˆ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐ API ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์—์„œ ์ตœ๊ณ ์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

Flask๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์ปจํ…์ŠคํŠธ์—์„œ RESTful API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๊ธฐํƒ€ ์„œ๋ฒ„ ์ธก ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ๋ผ์šฐํŒ…, ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง๊ณผ ๊ฐ™์€ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ์ผ๋ จ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ Flask๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜์ง€ ์•Š๊ณ ๋„ ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. "๋งˆ์ดํฌ๋กœํ”„๋ ˆ์ž„์›Œํฌ" ํŠน์„ฑ์œผ๋กœ ์•Œ๋ ค์ง„ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋งŒ ํ™œ์šฉํ•˜๊ณ  ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ™•์žฅ์„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”์šฑ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์ ์‘์„ฑ์„ ์ด‰์ง„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Flask ์—์ฝ”์‹œ์Šคํ…œ์—๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋Šฅ์„ ํฌ๊ฒŒ ํ™•์žฅํ•˜๋Š” ์ˆ˜๋งŽ์€ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ถ€ Flask ํ™•์žฅ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ†ตํ•ฉ์„ ์œ„ํ•œ SQLAlchemy, RESTful API ๊ตฌ์ถ•์„ ์œ„ํ•œ Flask-RESTful ๋ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์œ„ํ•œ Flask-Login์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ํ’๋ถ€ํ•œ ์—์ฝ”์‹œ์Šคํ…œ๊ณผ Flask์˜ ๋‹จ์ˆœ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Flask๋Š” ๊ด‘๋ฒ”์œ„ํ•œ Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํŒจํ‚ค์ง€ ์—์ฝ”์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ๊ฐ•ํ™”ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์ž‘์—…์— ๋Œ€ํ•œ ๋›ฐ์–ด๋‚œ ๋‹ค์šฉ์„ฑ๊ณผ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ ์ธ AppMaster๋Š” ํšจ์œจ์ ์ธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์˜ ์ค‘์š”์„ฑ์„ ์ธ์‹ํ•˜๊ณ  Flask์™€ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ฐ€์น˜๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. AppMaster ํ”Œ๋žซํผ์€ ์ง๊ด€์ ์ธ ์‹œ๊ฐ์  ๋„๊ตฌ์™€ ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, REST API ๋ฐ WSS endpoints ์ƒ์„ฑ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ธฐํƒ€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•จ์œผ๋กœ์จ AppMaster ํ”Œ๋žซํผ์€ Flask์™€ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ฏผ์ฒฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ „๋ก€ ์—†๋Š” ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Flask์˜ ์ธ๊ธฐ์™€ ํŽธ์žฌ์„ฑ์€ ๊ฐ€๋ณ๊ณ  ์ตœ์†Œํ•œ์˜ ํŠน์„ฑ, ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜, ์‚ฌ์šฉ ์šฉ์ด์„ฑ, ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์„ ๋น„๋กฏํ•œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์†์„ฑ์— ๊ธฐ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋Š” LinkedIn, Pinterest ๋ฐ Twilio์™€ ๊ฐ™์€ ์ฃผ์š” ์กฐ์ง์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Flask๋Š” ์†Œ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ณต์žกํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์„œ๋น„์Šค์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ๋งŽ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ด์ƒ์ ์ธ ์„ ํƒ์ž„์ด ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Flask์˜ ๋ฒˆ์ฐฝํ•˜๋Š” ๊ฐœ๋ฐœ์ž, ์‚ฌ์šฉ์ž ๋ฐ ๊ธฐ์—ฌ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” Flask์˜ ์ง€์†์ ์ธ ์„ฑ์žฅ, ๊ฐœ์„  ๋ฐ ์ง€์›์„ ๋ณด์žฅํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ˜„๋Œ€์ ์ธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ์˜ ์ž…์ง€๋ฅผ ํ™•๊ณ ํžˆ ํ•ฉ๋‹ˆ๋‹ค.

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