--- id: wiki-2026-0508-serverless-computing title: Serverless Computing category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [auto-wikified, technical-documentation] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # Serverless Computing ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…(Serverless Computing)์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋ฒ„ ์ธํ”„๋ผ๋ฅผ ์ง์ ‘ ํ”„๋กœ๋น„์ €๋‹ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด, ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜(Function) ํ˜•ํƒœ๋กœ ๋ฐฐํฌํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ์˜จ๋””๋งจ๋“œ(on-demand)๋กœ ์‹คํ–‰ํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์‹คํ–‰ ๋ชจ๋ธ์ด๋‹ค[1, 2]. ๋Œ€ํ‘œ์ ์œผ๋กœ AWS Lambda, Azure Functions, Google Cloud Run๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ, HTTP ์š”์ฒญ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—…๋ฐ์ดํŠธ ๋“ฑ์˜ ์ด๋ฒคํŠธ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜์–ด ์ž๋™์œผ๋กœ ํ™•์žฅ ๋ฐ ์ถ•์†Œ๋œ๋‹ค[2, 3]. ์‚ฌ์šฉํ•œ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด์„œ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์œ ํœด ์ž์›์„ ์ตœ์†Œํ™”ํ•˜๋ฉฐ, ์šด์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ณ  ์ง€์† ๊ฐ€๋Šฅํ•œ ์ฝ”๋”ฉ ๊ด€ํ–‰์„ ์‹ค์ฒœํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜๋Š” ํ•ต์‹ฌ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๊ธฐ์ˆ ์ด๋‹ค[2, 4, 5]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์‹คํ–‰ ๋ชจ๋ธ ๋ฐ ์ž์› ๊ด€๋ฆฌ (FaaS):** ์„œ๋ฒ„๋ฆฌ์Šค๋Š” FaaS(Function-as-a-Service) ๋ชจ๋ธ์„ ์ฑ„ํƒํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ž‘์„ฑ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค[1]. ์ธํ”„๋ผ ํ™•์žฅ, ์ž์› ํ• ๋‹น, ์‹œ์Šคํ…œ ์œ ์ง€๋ณด์ˆ˜๋Š” ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž๊ฐ€ ์ „๋‹ดํ•˜๋ฏ€๋กœ, ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ๋งž์ถฐ ์ž๋™์œผ๋กœ ์ž์›์ด ์Šค์ผ€์ผ๋ง(Automatic scalability)๋˜๋ฉฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ์œ ํœด ์ƒํƒœ๋กœ ์ „ํ™˜๋˜์–ด ์ž์› ๋‚ญ๋น„๊ฐ€ ์—†๋‹ค[1, 2, 4]. * **ํ”„๋ ˆ์ž„์›Œํฌ๋ณ„ ์„ฑ๋Šฅ๊ณผ ์•„ํ‚คํ…์ฒ˜ ํŠน์„ฑ:** ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์—์„œ Node.js ํ”„๋ ˆ์ž„์›Œํฌ(Express, Fastify, NestJS)์˜ ์‹ค์ „ ์ ์šฉ์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์„ฑ๋Šฅ ํŒจํ„ด์„ ๋ณด์ธ๋‹ค[6]. * **Express & Fastify:** ๊ฒฝ๋Ÿ‰ํ™”๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ ธ ์ดˆ๊ธฐํ™”(์ฝœ๋“œ ์Šคํƒ€ํŠธ) ์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๊ฐ€ ์ ์–ด ์‘๋‹ต ์†๋„์— ๋ฏผ๊ฐํ•˜๊ฑฐ๋‚˜ ๊ฐ€๋ฒผ์šด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค[7-9]. * **NestJS:** ์˜์กด์„ฑ ์ฃผ์ž…(DI)๊ณผ ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜์˜ ๊ณ„์ธตํ™”๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์—์„œ ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์ง€์—ฐ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ํฌ๊ฒŒ ๋ฐœ์ƒํ•œ๋‹ค[8, 10, 11]. ๊ทธ๋Ÿฌ๋‚˜ ์ดˆ๊ธฐํ™” ์ดํ›„์˜ ์›œ ์Šคํƒ€ํŠธ(Warm start) ์ƒํƒœ์—์„œ๋Š” ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์ƒํ™ฉ์—์„œ๋„ ๋†’์€ ์š”์ฒญ ์ฒ˜๋ฆฌ์œจ(Throughput)๊ณผ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฐ•์ ์„ ์ง€๋‹Œ๋‹ค[12, 13]. * **ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์™€์˜ ์—ฐ๊ณ„:** ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…์€ JAMstack ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ฐฑ์—”๋“œ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” API ๋ฐ JavaScript ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์œผ๋กœ ํ†ตํ•ฉ๋˜๊ฑฐ๋‚˜[14], ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ์ ๊ทน์ ์œผ๋กœ ๋„์ž…๋˜๊ณ  ์žˆ๋‹ค[3, 5]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & Updates) * **์ฝœ๋“œ ์Šคํƒ€ํŠธ(Cold Starts) ์ง€์—ฐ:** ์ผ์ • ๊ธฐ๊ฐ„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•„ ์œ ํœด ์ƒํƒœ์˜€๋˜ ํ•จ์ˆ˜๊ฐ€ ๋‹ค์‹œ ํ˜ธ์ถœ๋  ๋•Œ, ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์ด ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ์ง€์—ฐ ์‹œ๊ฐ„์ด๋‹ค[4]. ์ง€์—ฐ ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ํฐ ๋‹จ์ ์œผ๋กœ ์ž‘์šฉํ•˜๋ฉฐ, ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ณ„์ธต์ด ๋‘๊ป๊ณ  ๋ฌด๊ฑฐ์šธ์ˆ˜๋ก(์˜ˆ: NestJS) ์ด ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค[4, 8, 15]. * **๋ฌด์ƒํƒœ์„ฑ(Stateless) ๋ฐ ๋ฆฌ์†Œ์Šค ํ†ต์ œ ํ•œ๊ณ„:** ์‹คํ–‰ ํ™˜๊ฒฝ์ด ์ผ์‹œ์ ์ด๊ณ  ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์— ์˜ํ•ด ๋™์ ์œผ๋กœ ์ƒ์„ฑ ๋ฐ ์†Œ๋ฉธ๋˜๋ฏ€๋กœ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๊ธฐ๋ฐ˜ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ง์ ‘์ ์ธ ์ œ์–ด๊ถŒ์ด ์ค„์–ด๋“ ๋‹ค[4, 16]. * **์‹คํ–‰ ์‹œ๊ฐ„ ๋ฐ ๋™์‹œ์„ฑ ์ œ์•ฝ:** ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์˜ ํ”Œ๋žซํผ ์ •์ฑ…์— ๋”ฐ๋ผ ๋‹จ์ผ ํ•จ์ˆ˜์˜ ์ตœ๋Œ€ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ œํ•œ๋˜์–ด ์žˆ์–ด ์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์—๋Š” ๋ถ€์ ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค[4]. ๋˜ํ•œ ๊ทน์‹ฌํ•œ ๊ณ ๋ถ€ํ•˜(Heavy load) ์ƒํ™ฉ์—์„œ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๋– ๋‚˜, ํ”Œ๋žซํผ์˜ ์Šค๋กœํ‹€๋ง์ด๋‚˜ ํ™•์žฅ ์ง€์—ฐ์œผ๋กœ ์ธํ•œ DNS ์˜ค๋ฅ˜ ๋ฐ ํƒ€์ž„์•„์›ƒ ๋“ฑ์˜ ํ”Œ๋žซํผ ํ•œ๊ณ„์— ์ง๋ฉดํ•  ์ˆ˜ ์žˆ๋‹ค[17, 18]. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A: ์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[Cloud Native Architecture]] - ์—ฐ๊ฒฐ ์ด์œ : ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ๊ณผ ํ•จ๊ป˜ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์ฑ„ํƒ๋˜๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค[3, 19]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ ํ•˜์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฆฌ๋˜๊ณ  ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์— ๋งž๊ฒŒ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๋˜๋Š”์ง€ ์ „์ฒด์ ์ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค[3, 20]. - [[Function-as-a-Service (FaaS)]] - ์—ฐ๊ฒฐ ์ด์œ : ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…์„ ์‹คํ˜„ํ•˜๋Š” ์‹ค์งˆ์ ์ธ ํด๋ผ์šฐ๋“œ ์‹คํ–‰ ๋ชจ๋ธ๋กœ, ์ฝ”๋“œ๋ฅผ ๋…๋ฆฝ์ ์ธ ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค[1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์˜จ๋””๋งจ๋“œ ํ•จ์ˆ˜ ์‹คํ–‰, ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ ๋ฐฉ์‹ ๋ฐ ๊ทธ์— ๋”ฐ๋ฅธ ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์ง€์—ฐ์˜ ๊ตฌ์กฐ์  ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค[1, 4]. #### [๊ด€๊ณ„ ์œ ํ˜• B: ๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - [[AWS Lambda]] - ์—ฐ๊ฒฐ ์ด์œ : ์ฝ”๋“œ๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ™•์žฅ ๋ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ด ์ฃผ๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ํ”Œ๋žซํผ ์ค‘ ํ•˜๋‚˜์ด๋‹ค[1, 2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ฐ Node.js ํ”„๋ ˆ์ž„์›Œํฌ(Express, Fastify, NestJS)๊ฐ€ ์‹ค์ œ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๋ฐฐํฌ๋  ๋•Œ์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, ์‹คํ–‰ ์‹œ๊ฐ„, ๋Ÿฐํƒ€์ž„ ์ œ์•ฝ ๋“ฑ์˜ ๋ฒค์น˜๋งˆํ‚น ๊ธฐ์ค€๊ณผ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํŒจํ„ด์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค[2, 17, 21, 22]. - [[JAMstack]] - ์—ฐ๊ฒฐ ์ด์œ : ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด์„œ ๋ฐฑ์—”๋“œ ๊ธฐ๋Šฅ์„ ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ API๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํ˜„๋Œ€ ์›น ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๋‹ค[14, 23, 24]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํ’€์Šคํƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ ์‹œ, UI ๋ Œ๋”๋ง ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ํ•จ๊ป˜ ์„œ๋ฒ„๋ฆฌ์Šค API๊ฐ€ ์–ด๋–ป๊ฒŒ ์กฐํ•ฉ๋˜์–ด ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค[23, 25]. ### Deeper Research Questions - ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ(์˜ˆ: NestJS, Express, Fastify)์˜ ๋‚ด๋ถ€ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐฉ์‹(๋ฏธ๋“ค์›จ์–ด ์ฒด์ธ, ํ”Œ๋Ÿฌ๊ทธ์ธ, ์˜์กด์„ฑ ์ฃผ์ž… ๋“ฑ)์ด ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์‹œ๊ฐ„๊ณผ ์›œ ์Šคํƒ€ํŠธ ํšจ์œจ์„ฑ์— ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ธฐ์ˆ ์  ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”๊ฐ€? - ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์ง€์—ฐ์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๋น„์ €๋‹๋œ ๋™์‹œ์„ฑ(Provisioned Concurrency)์ด๋‚˜ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์€ ํ”„๋ ˆ์ž„์›Œํฌ ์ฝ”๋“œ ์ˆ˜์ค€์—์„œ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ณ ๋ถ€ํ•˜(Heavy load) ์ƒํ™ฉ์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ํ”Œ๋žซํผ์˜ ์ž์ฒด์ ์ธ ํ™•์žฅ ์ง€์—ฐ(Auto-scaling delay)์ด ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์„ฑ๊ณต์ ์ธ ์š”์ฒญ ์ฒ˜๋ฆฌ์œจ(Success rate)์— ๋ฏธ์น˜๋Š” ๋ณ‘๋ชฉ ํ•œ๊ณ„์ ์€ ๋ฌด์—‡์ธ๊ฐ€? - ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ FaaS ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„๋ฆฌ์Šค ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ, ๋„๋ฉ”์ธ ๋กœ์ง๊ณผ ์™ธ๋ถ€ ์˜์กด์„ฑ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•œ ์œก๊ฐํ˜• ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture) ํŒจํ„ด์„ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์ ‘๋ชฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์—์ง€ ์ปดํ“จํŒ…(Edge computing) ํ™˜๊ฒฝ์—์„œ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ „์—ญ์ ์œผ๋กœ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์บ์‹ฑ ๋ฐ ์ƒํƒœ ๋™๊ธฐํ™” ์•„ํ‚คํ…์ฒ˜ ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** Node.js ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์˜์กด์„ฑ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ)์ด ์—†๋Š” ์ˆœ์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ API๋ฅผ ๊ตฌ์ถ•ํ•œ ๋’ค, Serverless Framework์™€ ๊ฐ™์€ IaC ๋„๊ตฌ๋ฅผ ํ†ตํ•ด AWS Lambda ์ธํ”„๋ผ์— ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ํŒจํ‚ค์ง• ๋ฐ ๋ฐฐํฌํ•œ๋‹ค[22, 26]. - **System Design:** ์ด๋ฒคํŠธ ์ฃผ๋„ํ˜•(Event-driven) ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ, HTTP ์š”์ฒญ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ ๋ณ€๊ฒฝ ๋“ฑ์˜ ํŠธ๋ฆฌ๊ฑฐ์— ๋”ฐ๋ผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๊ณ  ์ž๋™ ์Šค์ผ€์ผ๋ง๋˜๋Š” ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ๋กœ ํ™œ์šฉํ•œ๋‹ค[2, 3]. - **Operation / Maintenance:** ํŠธ๋ž˜ํ”ฝ ๋ณ€๋™ ํญ์ด ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์„œ๋ฒ„๋ฅผ ์ƒ์‹œ ๊ตฌ๋™ํ•˜์ง€ ์•Š๊ณ  ์š”์ฒญ๋‹น ๊ณผ๊ธˆ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์šด์˜ ๋น„์šฉ์„ ์ตœ์ ํ™”ํ•˜๋ฉฐ, CloudWatch ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ†ตํ•ด ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ์ดˆ๊ธฐํ™” ์ง€์—ฐ(Init Duration)์„ ์ถ”์ ํ•˜์—ฌ ์šด์˜ ์•ˆ์ •์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค[4, 27, 28]. ์œ ํœด ์ž์› ๊ฐ์†Œ๋ฅผ ํ†ตํ•ด ์ง€์† ๊ฐ€๋Šฅํ•œ ์ฝ”๋”ฉ ์ง€ํ‘œ(Sustainability)๋„ ๊ฐœ์„ ํ•œ๋‹ค[5]. - **Learning Path:** HTTP ํ†ต์‹  ๋ฐ API ๋ผ์šฐํŒ… ๊ธฐ์ดˆ๋ฅผ ์ดํ•ดํ•œ ํ›„, ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์˜ FaaS ๋ชจ๋ธ(AWS Lambda ๋™์ž‘ ์›๋ฆฌ ๋“ฑ)์„ ํ•™์Šตํ•˜๊ณ , ๊ฐ€์ƒ ์œ ์ €(Virtual Users) ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ(์˜ˆ: Artillery)๋ฅผ ๊ฑฐ์น˜๋ฉฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ณ„ ๋Ÿฐํƒ€์ž„ ํšจ์œจ์„ฑ ์ฐจ์ด๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค[1, 29-31]. - **My Project Relevance:** ์ง„ํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํŠน์„ฑ์— ๋งž์ถ”์–ด(์˜ˆ: ๊ทน๋„์˜ ๋น ๋ฅธ ๋กœ๋”ฉ ๋ฐ ์ดˆ๊ธฐ ๋ฐ˜์‘์„ฑ์ด ํ•„์š”ํ•œ์ง€, ํ˜น์€ ์žฅ๊ธฐ์  ์œ ์ง€๋ณด์ˆ˜์™€ ๋ณต์žกํ•œ ๊ตฌ์กฐํ™”๊ฐ€ ํ•„์š”ํ•œ์ง€) ์„œ๋ฒ„๋ฆฌ์Šค ํ”Œ๋žซํผ ์ƒ์—์„œ ๊ฐ€์žฅ ํšจ์œจ์ ์œผ๋กœ ๊ตฌ๋™๋  ์ˆ˜ ์žˆ๋Š” ์ตœ์ ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ์ •ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€ ๋ฐ ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ### Adjacent Topics - [[Microservices Architecture]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜๋“ค์ด ๋ชจ์—ฌ ์–ด๋–ป๊ฒŒ ๊ฑฐ๋Œ€ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒํƒœ๊ณ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ†ต์‹ ํ•˜๋Š”์ง€, ์ƒํƒœ(State) ๋น„๊ณต์œ  ๋ชจ๋ธ์—์„œ์˜ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๋ฐ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ด€๋ฆฌ ์ „๋žต์œผ๋กœ ์—ฐ๊ตฌ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. - [[Edge Computing]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๊ธ€๋กœ๋ฒŒ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ์—ฃ์ง€(Edge) ๋…ธ๋“œ์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŒจํ„ด ๋ฐ ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ(CDN) ํ†ตํ•ฉ ์ตœ์ ํ™” ๋ชจ๋ธ์— ๋Œ€ํ•ด ๊นŠ์ด ์žˆ๊ฒŒ ํƒ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. --- *Last updated: 2026-05-02* ## ๐Ÿค– LLM ํ™œ์šฉ ํžŒํŠธ (How to Use This Knowledge) **์–ธ์ œ ์ด ์ง€์‹์„ ์“ฐ๋Š”๊ฐ€:** - *(TODO)* **์–ธ์ œ ์“ฐ๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€:** - *(TODO)* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** needs_review - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** *(P-Reinforce Phase 1 ์ž๋™ ์ •๊ทœํ™”. ๋ณธ๋ฌธ ๊ฒ€์ฆ ํ•„์š”.)* ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** *(TODO: ์ธ๋ฑ์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌํฌํŠธ ์ฐธ์กฐ)* - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** UPDATE (์ž๋™ ์ •๊ทœํ™”) - **์ฒ˜๋ฆฌ ์ด์œ :** Phase 1 ์ •๊ทœํ™” โ€” ์˜› ํ…œํ”Œ๋ฆฟ/๋ˆ„๋ฝ ํ•„๋“œ ๋ณด๊ฐ•. ## ๐Ÿ•“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Changelog) | ๋‚ ์งœ | ๋ณ€๊ฒฝ ๋‚ด์šฉ | ์ฒ˜๋ฆฌ ๋ฐฉ์‹ | ์‹ ๋ขฐ๋„ | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 ์ •๊ทœํ™” (frontmatter + ํ—ค๋” ํ‘œ์ค€ํ™”) | UPDATE | A | ## ๐Ÿ’ป ์ฝ”๋“œ ํŒจํ„ด (Code Patterns) **ํŒจํ„ด 1:** *(TODO: ์ด ํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜ ๋ฐ˜์˜ํ•œ ๊ตฌ์กฐ ์Šค์ผˆ๋ ˆํ†ค)* ```text # TODO ``` ## ๐Ÿค” ์˜์‚ฌ๊ฒฐ์ • ๊ธฐ์ค€ (Decision Criteria) **์„ ํƒ A๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **์„ ํƒ B๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **๊ธฐ๋ณธ๊ฐ’:** > *(TODO)* ## โŒ ์•ˆํ‹ฐํŒจํ„ด (Anti-Patterns) - **[์•ˆํ‹ฐํŒจํ„ด]:** *(TODO: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*