๐ ์น ํ๋ ์์ํฌ(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๋ฅผ ํตํด ๋ ๋ง์ ๋ฐฑ์๋ ๊ฐ๋ฐ ๊ฒฝํ์ ์์๋ณด๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.