ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿš€ I Built DG Encoder โ€” A Free Cloudflare Worker API for Storing Secrets, Webhooks, and Dynamic Configurations
Dev.toDev.to
Infrastructure

Cloudflare Workers์™€ KV ๊ธฐ๋ฐ˜์˜ No-Auth Secret ๊ด€๋ฆฌ API ๊ตฌ์ถ•

๐Ÿš€ I Built DG Encoder โ€” A Free Cloudflare Worker API for Storing Secrets, Webhooks, and Dynamic Configurations

Daivik Dagar2026๋…„ 6์›” 20์ผ6๋ถ„beginner

Context

ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ ๋‚ด Webhook URL์ด๋‚˜ ์„ค์ •๊ฐ’ ๋…ธ์ถœ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋ฐฑ์—”๋“œ ๊ตฌ์ถ• ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋Ÿ‰ ์Šคํ† ๋ฆฌ์ง€ ํ•„์š”์„ฑ ๋Œ€๋‘. ๊ธฐ์กด์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Secret Management ํˆด์€ ๋ณต์žกํ•œ ์„ค์ •๊ณผ ์œ ๋ฃŒ ํ”Œ๋žœ์œผ๋กœ ์ธํ•ด ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ๋„์ž…์— ์ง„์ž… ์žฅ๋ฒฝ ์กด์žฌ.

Technical Solution

  • Cloudflare Workers ๊ธฐ๋ฐ˜ Edge Computing ํ™˜๊ฒฝ์„ ์ฑ„ํƒํ•˜์—ฌ ๊ธ€๋กœ๋ฒŒ ์ €์ง€์—ฐ ์‘๋‹ต ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ ํ™•๋ณด
  • Cloudflare KV(Key-Value) ์Šคํ† ๋ฆฌ์ง€ ํ™œ์šฉ์„ ํ†ตํ•œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ๋น ๋ฅธ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ตœ์ ํ™”
  • ๊ณ ์œ  ID ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ๋งคํ•‘ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์›๋ณธ ๊ฐ’์˜ ์ง์ ‘ ๋…ธ์ถœ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฐ„์ ‘ ์ฐธ์กฐ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
  • Request Header์˜ ๋„๋ฉ”์ธ ๊ฒ€์ฆ ๋กœ์ง์„ ํ†ตํ•œ ํ—ˆ์šฉ๋œ ๋„๋ฉ”์ธ ์™ธ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ๋ณด์•ˆ ๊ณ„์ธต ๊ตฌํ˜„
  • API Key ์—†๋Š” ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด ๊ณ ์œ  ์‹๋ณ„์ž์™€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ ์šฉ
  • RESTful API ์„ค๊ณ„๋ฅผ ํ†ตํ•œ ์ €์žฅ(POST), ์กฐํšŒ(GET), ์ˆ˜์ •(PATCH), ์‚ญ์ œ(DELETE) ๋ผ์ดํ”„์‚ฌ์ดํด ๊ตฌ์ถ•

์„ค์ •๊ฐ’์˜ ์ •์  ๋…ธ์ถœ์„ ๋ง‰๊ธฐ ์œ„ํ•ด Edge KV ๊ธฐ๋ฐ˜์˜ Proxy ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ๋„๋ฉ”์ธ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ๋ณด์•ˆ ํŒจํ„ด ๊ฒ€ํ†  ๊ฐ€๋Šฅ

์›๋ฌธ ์ฝ๊ธฐ