์ฌ์ฉํ ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ๊ณ , ์ฌ์ฉํ์ง ์์ ๋๋ 0์ผ๋ก ์ค์ผ์ผ๋งํ๋ฉฐ, ์๋ฒ ๊ด๋ฆฌ๋ฅผ ์์ ํ ์ค๋จํ์ธ์ โ ํ์ง๋ง ๊ฒฝ์ ์ฑ์ด ๋ ์ด์ ํตํ์ง ์๋ ์์ ์ ์์๋์ญ์์ค.

๊ทํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ๋ํฝ ๋ณ๋์ด ์ฌํฉ๋๋ค โ ๋ฐค์๋ ์กฐ์ฉํ๊ณ , ์ ๋ฌด ์๊ฐ ์ค์๋ ๊ธ์ฆํ๋ฉฐ, ๋ง์ผํ ์บ ํ์ธ์ด๋ ๊ณ์ ์ ์ด๋ฒคํธ๋ก ์ธํด ์์ธก ๋ถ๊ฐ๋ฅํ ํญ์ฃผ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทํ๋ ์๊ฐ์ 70% ๋์ ์ ํด ์ํ์ธ ์๋ฒ์ ๋น์ฉ์ ์ง๋ถํ๊ณ ์์ต๋๋ค. ๋๋ ์ ์ ํ์ ๊ตฌ์ถ ์ค์ด๋ฉฐ ์ ํ-์์ฅ ์ ํฉ์ฑ์ ๊ฒ์ฆํ๊ธฐ ์ ์ ์ธํ๋ผ ํ๋ก๋น์ ๋, ์ฉ๋ ๊ณํ ๋ฐ ์จ์ฝ ๋กํ ์ด์ ์ ํฌ์ํ๊ณ ์ถ์ง ์์ต๋๋ค. Serverless๋ ์์ฒญ๋น ๊ฐ๊ฒฉ ์ฑ ์ , ์๋ ์ค์ผ์ผ๋ง, ์ ๋ก ์ธํ๋ผ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค โ ํ์ง๋ง ์ํฌ๋ก๋ ํน์ฑ์ด ์ ํฉํ ๋๋ง ํด๋นํฉ๋๋ค.
Explore more design patterns and system architectures
์๋ฒ๋ฆฌ์ค ์ฐ์ (serverless-first) ๋ฐฉ์์ 15๋ถ์ ์ด๊ณผํ๋ ์ฅ๊ธฐ ์คํ ํ๋ก์ธ์ค, ์๊ตฌ์ ์ธ WebSocket ์ฐ๊ฒฐ์ด ํ์ํ ์ํฌ๋ก๋, ์์ฝ ์ฉ๋์ด ๋ ์ ๋ ดํ ์ผ๊ด๋ ๊ณ ์ฒ๋ฆฌ๋ ํธ๋ํฝ์ด ๋ฐ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ , ๊ทธ๋ฆฌ๊ณ ๋ฎ์ ์์ค์ OS ๋๋ ๋คํธ์ํฌ ๊ตฌ์ฑ์ด ํ์ํ ์์คํ ์ ์ ํฉํ์ง ์์ต๋๋ค. MicrocosmWorks๋ ์ํคํ ์ฒ ์ค๊ณ ์ ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ์ํฌ๋ก๋๋ฅผ ํ๊ฐํ๊ณ , ์๋ฒ๋ฆฌ์ค๊ฐ API ์๋ํฌ์ธํธ ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๊ณ ์ปจํ ์ด๋๋ VM์ด ์ง์์ ์ธ ์ปดํจํ ์ด ํ์ํ ์ํฌ๋ก๋๋ฅผ ์คํํ๋ ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ ๋ฐฉ์์ ๊ถ์ฅํฉ๋๋ค. ์ด๋ฌํ ์ค์ฉ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ ํฉํ์ง ์์ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์๋ฒ๋ฆฌ์ค๋ก ๊ฐ์ ํ๋ ค๋ ์ผ๋ฐ์ ์ธ ์ค์๋ฅผ ํผํ ์ ์์ต๋๋ค.
MicrocosmWorks๋ ์ฃผ์ endpoint์ provisioned concurrency๋ฅผ ํ์ฉํ๊ณ , ์ด๊ธฐํ ์๊ฐ์ ์ค์ด๊ธฐ ์ํ function bundle optimization์ ์ํํ๋ฉฐ, Java ์ํฌ๋ก๋์ ๊ฒฝ์ฐ ์ฝ๋ ์คํํธ๋ฅผ ์ด ๋จ์์์ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ๋จ์ถ์ํค๋ Lambda SnapStart๋ฅผ ์ ๋ต์ ์ผ๋ก ์ฌ์ฉํ์ฌ Lambda cold start ๋ฌธ์ ๋ฅผ ์ํํฉ๋๋ค. ๋ํ, latency-sensitiveํ ๊ฒฝ๋ก๋ Node.js๋ Python๊ณผ ๊ฐ์ด ์ต์ํ์ dependencies๋ฅผ ๊ฐ์ง lightweight runtime์ ์ฌ์ฉํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํคํ ์ฒํ์ฌ, provisioned concurrency ์์ด๋ cold start๋ฅผ 200ms ๋ฏธ๋ง์ผ๋ก ์ ์งํฉ๋๋ค. ์ด ์ ๋์ latency์กฐ์ฐจ ํ์ฉ๋์ง ์๋ endpoint์ ๊ฒฝ์ฐ, sub-10ms ์๋ต์ ์ํด Lambda@Edge ๋๋ CloudFront Functions๋ฅผ ์ฌ์ฉํฉ๋๋ค.
MicrocosmWorks๋ ๊ฐ๋ฐ์์ ๋จธ์ ์์ ๊ฑฐ์ production ์์ค์ ์ถฉ์ค๋๋ก cloud ์๋น์ค๋ฅผ ์๋ฎฌ๋ ์ดํธํ๋ SST (Serverless Stack), LocalStack ๋๋ Serverless Framework์ ์คํ๋ผ์ธ ๋ชจ๋์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํฉ๋๋ค. ์ ํฌ๋ ๊ฐ pull request๋ง๋ค ์คํ์ ๋๋ ์์ cloud ํ๊ฒฝ์์ ์คํ๋๋ integration test suites๋ฅผ ๊ตฌํํ์ฌ, ๊ฐ๋ฐ์๋ค์ด staging environment๋ฅผ ๊ณต์ ํ์ง ์๊ณ ๋ ์ค์ AWS ์๋น์ค๋ฅผ ๋์์ผ๋ก ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ฌํ ์ด์ค ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฐ์ ์ํ ๋น ๋ฅธ local iteration loops๋ฅผ ์ ๊ณตํ๋ ๋์์, ์ฝ๋๊ฐ production์ ๋๋ฌํ๊ธฐ ์ ์ cloud-specific issues๋ฅผ ํฌ์ฐฉํ ์ ์๊ฒ ํฉ๋๋ค.
MicrocosmWorks๋ ๊ฐ๋ณ์ ์ด๊ฑฐ๋ ๊ธ์ฆํ๋ ํธ๋ํฝ ํจํด์ ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค๊ฐ ํจ์ฌ ์ ๋ ดํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ด๋ ์์ํ๋ ํญ์ ์ผ์ ธ ์๋ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ณด๋ค 70-90% ์ ๋ ดํ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, ์ 1,000๋ง~2,000๋ง ํธ์ถ ์ด์์ ์ง์์ ์ธ ์ฒ๋ฆฌ๋์์๋ ๋น์ฉ ์ด์ ์ด ์ค์ด๋ญ๋๋ค. ์ ํฌ๋ ์ํคํ ์ฒ ์ค๊ณ ์ค์ ๊ณ ๊ฐ์ ํน์ ํธ๋ํฝ ํจํด์ ๋ง์ถฐ ์๋ฒ๋ฆฌ์ค ํธ์ถ๋น ์๊ธ๊ณผ ์์ฝ๋ ์ปจํ ์ด๋ ์ฉ๋์ ๋น๊ตํ๊ณ , API Gateway ์๊ธ ๋ฐ ๋ฐ์ดํฐ ์ ์ก ์๊ธ๊ณผ ๊ฐ์ ์จ๊ฒจ์ง ๋น์ฉ์ ํฌํจํ๋ ๋น์ฉ ์์ธก ๋ชจ๋ธ์ ๊ตฌ์ถํฉ๋๋ค. ์๊ฐ๋น $10-$35์ ์ปจ์คํ ์๊ธ์ผ๋ก ์ด์ฉ ๊ฐ๋ฅํ ์ ํฌ์ ์ต์ ํ ์๋น์ค๋ ์๋ฒ๋ฆฌ์ค ์ฒญ๊ตฌ ๋ด์ญ์ ์ ๊ธฐ์ ์ผ๋ก ๊ฒํ ํ์ฌ ๊ณผ๋ํ๊ฒ ํ๋ก๋น์ ๋๋ ๋ฉ๋ชจ๋ฆฌ, ๊ณผ๋ํ ํจ์ ์คํ ์๊ฐ ๋๋ ๋ถํ์ํ API Gateway ์ฌ์ฉ์ผ๋ก ์ธํ ๋ญ๋น๋ฅผ ์๋ณํฉ๋๋ค.
MicrocosmWorks๋ Lambda ํจ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์ ์๊ตฌ์ ์ธ ๊ณ์ธต์ผ๋ก ๋ฐฐํฌ๋๋ Amazon RDS Proxy ๋๋ PgBouncer์ ๊ฐ์ ์ฐ๊ฒฐ ํ๋ง ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ, ์์ฒ ๊ฐ์ Lambda ์ฐ๊ฒฐ์ ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํ๋ก ๋ค์คํํฉ๋๋ค. ๋ํ, ์ฐ๊ฒฐ ํ๋ง์ด ์ฌ์ ํ ๋ณ๋ชฉ ํ์์ ์ผ์ผํฌ ์ ์๋ ๋์ ๋์์ฑ ์ํฌ๋ก๋์ ๊ฒฝ์ฐ, MicrocosmWorks๋ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ด DynamoDB ๋๋ ๊ธฐํ ์ฐ๊ฒฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํธํ๋๋ก ์ค๊ณํฉ๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, ๋์ Lambda ํธ์ถ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ ์ฉ๋๊ณผ ์ผ์นํ๋๋ก ์ ํํ๋ ์ฐ๊ฒฐ ์ธ์ ์ค์ผ์ผ๋ง ์ ํ์ ๊ตฌํํฉ๋๋ค.
์ฐ๋ฆฌ์ ์ํคํ ํธ๋ค์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ด ํจํด์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ค๊ณํ๊ณ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ๋๋ฆด ์ ์์ต๋๋ค.
์ฐ๋ฝํ๊ธฐServerless-first ์ํคํ ์ฒ๋ ๊ด๋ฆฌํ ์ด๋ฒคํธ ์๋น์ค (EventBridge, SQS, Step Functions)๋ก ์ฐ๊ฒฐ๋ ๊ด๋ฆฌํ, ์ค์ผ์ผ-ํฌ-์ ๋ก ์ปดํจํธ ์๋น์ค (Lambda, Cloud Functions, Vercel Functions)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ ์ผ๋ก ๊ตฌ์ถํฉ๋๋ค. ํจ์นํ ์๋ฒ๋, ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ํด๋ฌ์คํฐ๋, ๊ณํํ ์ฉ๋๋ ์์ต๋๋ค. ํจ์๋ ์ด๋ฒคํธ(HTTP ์์ฒญ, ํ ๋ฉ์์ง, ์ค์ผ์ค ํธ๋ฆฌ๊ฑฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ)์ ์๋ตํ์ฌ ์คํ๋๋ฉฐ, 0์์ ์์ฒ ๊ฐ์ ๋์ ์ธ์คํด์ค๋ก ์๋ ์ค์ผ์ผ๋ง๋ฉ๋๋ค. ์ด ํจํด์ ์๋ฒ๋ฆฌ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค(DynamoDB, Neon, PlanetScale), ์๋ฒ๋ฆฌ์ค ํ(SQS), ์๋ฒ๋ฆฌ์ค ์ค์ผ์คํธ๋ ์ด์ (Step Functions, Temporal Cloud)์ผ๋ก ํ์ฅ๋ฉ๋๋ค.
์ด ์ํคํ ์ฒ๋ ๋ณธ์ง์ ์ผ๋ก ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ๋๋ค. API Gateway(AWS API Gateway, Vercel)๋ HTTP ์์ฒญ์ ๊ฐ๋ณ ํจ์๋ก ๋ผ์ฐํ ํฉ๋๋ค. ์ด๋ฒคํธ ์์ค(SQS queues, EventBridge rules, S3 notifications, DynamoDB streams)๋ ํจ์๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. Step Functions ๋๋ Temporal์ ๊ฐ ๋จ๊ณ๊ฐ ์ฌ์๋, ํ์์์, ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ๋ด์ฅ๋ ํจ์์ธ ๋ค๋จ๊ณ ์ํฌํ๋ก์ฐ๋ฅผ ์ค์ผ์คํธ๋ ์ด์ ํฉ๋๋ค. ์๋ฒ๋ฆฌ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค(ํค-๊ฐ์ฉ DynamoDB, ๊ด๊ณํ์ฉ Neon/PlanetScale)๋ ์ฉ๋ ๊ด๋ฆฌ ์์ด ์คํ ๋ฆฌ์ง๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์คํธ๋ญ๊ธ๋ฌ ํผ๊ทธ(strangler fig) ํจํด์ ๊ธฐ์กด ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์์ ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
| ๊ณ์ธต | ๊ธฐ์ |
|---|---|
| ์ปดํจํธ | AWS Lambda, Vercel Functions (Fluid Compute), Google Cloud Functions, Cloudflare Workers |
| API | API Gateway (REST/WebSocket), Vercel, AppSync (GraphQL) |
| ์ค์ผ์คํธ๋ ์ด์ | AWS Step Functions, Temporal Cloud, Vercel Workflow DevKit |
| ๋ฐ์ดํฐ | DynamoDB, Neon Postgres, PlanetScale, Upstash Redis, S3 |
| ์ด๋ฒคํธ | EventBridge, SQS, SNS, Vercel Queues |
| ๊ด์ธก ๊ฐ๋ฅ์ฑ | CloudWatch, Datadog (์๋ฒ๋ฆฌ์ค ๋ชจ๋ํฐ๋ง), Lumigo, X-Ray |
| ์ฌ์ฉ ์์ | ํํผ ์์ |
|---|---|
| ํธ๋ํฝ์ด ์ ํด ๊ธฐ๊ฐ์ด ๊ธธ์ด ๊ฐ๋ณ์ ์ผ ๋ (์ค์ผ์ผ-ํฌ-์ ๋ก๊ฐ ๋น์ฉ ์ ๊ฐ) | ํธ๋ํฝ์ด ๊พธ์คํ๊ณ ๋๋์ผ ๋ โ ์ง์์ ์ธ ๋ก๋์์๋ ์์ฝ ์ธ์คํด์ค๊ฐ 50-70% ๋ ์ ๋ ดํฉ๋๋ค |
| ์ ๋ก ์ธํ๋ผ ๊ด๋ฆฌ ๋ฐ ์ด์ ์ค๋ฒํค๋๋ฅผ ์ํ ๋ | ์๊ตฌ์ ์ธ ์ฐ๊ฒฐ์ด ํ์ํ ๋ (WebSocket ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํ) โ Vercel์ด ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธด ํ์ง๋ง |
| ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ฒคํธ ๊ธฐ๋ฐ ํจ์๋ก ์์ฐ์ค๋ฝ๊ฒ ๋ถํด๋ ๋ | ์ํฌ๋ก๋๊ฐ ์์ฒญ๋น 15๋ถ ์ด์์ ์ฐ์ ์คํ์ ์๊ตฌํ ๋ |
| ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์์ ์ ์ง์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉฐ ์๋ํฌ์ธํธ๋ณ ๋กค์์์ ์ํ ๋ | ํ์ด ๋ถ์ฐ ์์คํ ์ ์ต์ํ์ง ์์ ๋ โ ์๋ฒ๋ฆฌ์ค๋ ๋ถ์ฐ ๋๋ฒ๊น ์ ๋ณต์ก์ฑ์ ์ผ๊ธฐํฉ๋๋ค |
MW๋ ์๋ฒ๋ฆฌ์ค๋ฅผ ์ข ๊ต์ ์ธ ๊ฒฐ์ ์ด ์๋ ๊ฒฝ์ ์ ์ธ ๊ฒฐ์ ์ผ๋ก ๋ค๋ฃน๋๋ค. ์ฐ๋ฆฌ๋ ๊ทํ์ ์ค์ ํธ๋ํฝ ํจํด(์ด๋ก ์ ์ด ์๋)์ ๋ํด ์๋ฒ๋ฆฌ์ค, ์ปจํ ์ด๋, ์์ฝ ์ธ์คํด์ค์ ๋น์ฉ์ ๋ชจ๋ธ๋งํ๊ณ , ์ด์์ ์ํ ์์ง๋์ด๋ง ์๊ฐ์ ํฌํจํ์ฌ ์ด ์์ ๋น์ฉ์ ์ต์ํํ๋ ์ต์ ์ ์ถ์ฒํฉ๋๋ค. ์ฐ๋ฆฌ์ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ ํจ์๋ณ ๋น์ฉ ํ ๋น(๋ชจ๋ ํธ์ถ์ ํด๋น ํธ์ถ์ ํธ๋ฆฌ๊ฑฐํ ๊ธฐ๋ฅ ํ๊ทธ ์ง์ ), P99๊ฐ ์๊ณ๊ฐ์ ์ด๊ณผํ ๋ ๊ฒฝ๊ณ ๋ฅผ ํฌํจํ๋ ์ฝ๋ ์คํํธ ๋ชจ๋ํฐ๋ง, ๊ทธ๋ฆฌ๊ณ ์คํ๋ฆฐํธ๋น ํ๋์ ์๋ํฌ์ธํธ๋ฅผ ์ด๋ํ๋ ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ์ด๋ถ์ ํฌํจํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฏธ๋์ด ํ์ฌ, SaaS ์ ํ, ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ๋ฅผ ์๋ฒ๋ฆฌ์ค๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ๋ฉฐ โ ๋ ๊ฒฝ์ฐ์๋ ์ํฌ๋ก๋ ํน์ฑ์ด ๋ณ๊ฒฝ๋์์ ๋ ์ผ๋ถ๋ฅผ ๋ค์ ์ปจํ ์ด๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค.
๋ณด์์ ์ถ์ ํ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ ์ํคํ ์ฒ์ ์์ฑ์ ๋๋ค โ ์์คํ ์ด ๋ณด์์ ์ํด ์ค๊ณ๋์๊ฑฐ๋ ๊ทธ๋ ์ง ์๊ฑฐ๋.