Azure Functions๋Š” Microsoft๊ฐ€ Azure ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๋กœ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์„œ๋น„์Šค๋กœ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋ณธ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๋ฐ˜์‘์„ฑ์ด ๋›ฐ์–ด๋‚œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ด€๋ฆฌ๋ฅผ ์ถ”์ƒํ™”ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๊ฐ€ ๋นจ๋ผ์ง€๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์›Œ์ง€๋ฉฐ ์šด์˜ ๋น„์šฉ์ด ์ ˆ๊ฐ๋ฉ๋‹ˆ๋‹ค. Azure Functions๋Š” C#, F#, JavaScript, Python ๋ฐ Java๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Azure Functions์˜ ํ•ต์‹ฌ ์›์น™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์ธ "ํ•จ์ˆ˜" ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•จ์ˆ˜๋Š” ๋“ค์–ด์˜ค๋Š” HTTP ์š”์ฒญ, Azure Storage ํ์˜ ์ƒˆ ๋ฉ”์‹œ์ง€ ๋˜๋Š” ํƒ€์ด๋จธ ์ด๋ฒคํŠธ์™€ ๊ฐ™์€ ์ด๋ฒคํŠธ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฒคํŠธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๊ธฐ๋Šฅ์ด ์‹คํ–‰๋˜์–ด ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋ฏ€๋กœ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Azure Functions๋Š” ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ ์†๋„์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ˆ˜๋™ ๊ฐœ์ž…์ด๋‚˜ ๋ฆฌ์†Œ์Šค ํ”„๋กœ๋น„์ €๋‹ ์—†์ด ๋†’์€ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Azure Functions๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์–‘ํ•œ ํŠธ๋ฆฌ๊ฑฐ ๋ฐ ๋ฐ”์ธ๋”ฉ ์ค‘์—์„œ ์„ ํƒํ•˜์—ฌ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ์†Œ์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ๋Š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ํ•จ์ˆ˜ ์‹คํ–‰์„ ์‹œ์ž‘ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ๋ฐ”์ธ๋”ฉ์€ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์™€ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๊ณ  ๊ตํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. Azure Functions๋Š” HTTP, ํƒ€์ด๋จธ, Azure Cosmos DB, Azure Event Hubs ๋“ฑ๊ณผ ๊ฐ™์ด ์ ์  ๋Š˜์–ด๋‚˜๋Š” ์‚ฌ์ „ ๋นŒ๋“œ๋œ ํŠธ๋ฆฌ๊ฑฐ ๋ฐ ๋ฐ”์ธ๋”ฉ ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ํ•จ์ˆ˜๋ฅผ ์ˆ˜๋งŽ์€ Azure ์„œ๋น„์Šค ๋ฐ ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Azure Functions๋Š” Azure Functions Core Tools๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๋Š” ํ•จ์ˆ˜๋ฅผ ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊ทธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๊ฐœ๋ฐœ ์™ธ์—๋„ Azure Portal ๋‚ด์—์„œ ๋˜๋Š” CI/CD(์ง€์†์ ์ธ ํ†ตํ•ฉ ๋ฐ ์ง€์†์ ์ธ ๋ฐฐํฌ) ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ Functions๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMasterno-code ํ”Œ๋žซํผ์€ Azure Functions์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜๋ฏ€๋กœ ๊ณ ๊ฐ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ์˜ ๋น„์ฃผ์–ผ ๋””์ž์ด๋„ˆ์™€ drag-and-drop ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ณ ๊ฐ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ, ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ๋ฐ REST API๊ฐ€ ์™„๋น„๋œ ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๋””์ž์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ปดํŒŒ์ผํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ , ํด๋ผ์šฐ๋“œ ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. Azure Functions์™€ AppMaster ์˜ ๊ฐ•๋ ฅํ•œ ์กฐํ•ฉ์„ ํ†ตํ•ด ๊ณ ๊ฐ์€ ์ค‘์†Œ๊ธฐ์—…๊ณผ ๋Œ€๊ธฐ์—… ๋ชจ๋‘์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์‘๋‹ต์„ฑ์ด ๋›ฐ์–ด๋‚˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋น„์šฉ ํšจ๊ณผ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…์€ ๋น„์šฉ ์ ˆ๊ฐ, ์šด์˜ ๋ฏผ์ฒฉ์„ฑ, ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋“ฑ ๋‹ค์–‘ํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Microsoft๊ฐ€ ์‹ค์‹œํ•œ ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ์กฐ์ง์˜ 60%๊ฐ€ ์ด๋ฏธ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…์„ ์ฑ„ํƒํ–ˆ๊ฑฐ๋‚˜ ํ–ฅํ›„ 18๊ฐœ์›” ์ด๋‚ด์— ์ฑ„ํƒํ•  ๊ณ„ํš์ธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. Azure Functions๋Š” ํšจ์œจ์„ฑ, ํ™•์žฅ์„ฑ ๋ฐ ๋ฏผ์ฒฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์„ ํƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

Azure Functions๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ˆ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ผ๋ จ์˜ ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•  ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ํŒŒ์ผ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ Azure Blob Storage ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ๋˜์–ด ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋Œ€์ƒ ์Šคํ† ๋ฆฌ์ง€ ์œ„์น˜์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹œ์Šคํ…œ์€ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž๋™ ํ™•์žฅ ๋ฐ ์ด๋ฒคํŠธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์€ ๋ณ€๋™ํ•˜๋Š” ์›Œํฌ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๋ฉฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ธํ”„๋ผ ์šด์˜ ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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