SKILL 30 min

๐Ÿ›ก ์•ˆ์ „ํ•ด์š”? โ€” AI ๋น„์šฉยท๋ณด์•ˆยท๋ฐฑ์—…

์ด ๋ ˆ์Šจ์ด ๋๋‚˜๋ฉด

  • Anthropic Console์—์„œ ์›” ์‚ฌ์šฉ ํ•œ๋„ + ์•Œ๋žŒ์„ ์ผœ์„œ AI ๋น„์šฉ ํญ์ฃผ๋ฅผ ๋ง‰์•˜๋‹ค
  • API ํ‚ค ๋…ธ์ถœยทOAuth ์„ค์ •ยทSQL injection ๋“ฑ ๊ธฐ๋ณธ ๋ณด์•ˆ ์ ๊ฒ€ 10ํ•ญ๋ชฉ์„ ํ†ต๊ณผํ–ˆ๋‹ค
  • DB ์ž๋™ ๋ฐฑ์—…์ด ๋งค์ผ ๋Œ๊ณ  ์žˆ๊ณ , ๋ณต์› ์ ˆ์ฐจ๋ฅผ ํ•œ ๋ฒˆ ํ™•์ธํ–ˆ๋‹ค

์™œ ์ด ์˜์—ญ์ด ๊ฐ€์žฅ ๋ฌด์„œ์šด๊ฐ€

๋น„๊ฐœ๋ฐœ์ž๊ฐ€ SaaS๋ฅผ ์ถœ์‹œํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ์ž์ฃผ ๊ฒช๋Š” 3๊ฐ€์ง€ ์‚ฌ๊ณ ๊ฐ€ ๋ฐ”๋กœ ์ด ์˜์—ญ์ด์—์š”. ๋ชจ๋‘ "์ถœ์‹œ๋Š” ํ–ˆ๋Š”๋ฐ ์•Œ๋ฆผ ํ•œ ํ†ต ๋ฐ›๊ณ  ์‹์€๋•€ ํ˜๋ฆฌ๋Š”" ์‹œ๋‚˜๋ฆฌ์˜ค๋“ค์ด์—์š”.

์‚ฌ๊ณ  ์‹ค์ œ ์‚ฌ๋ก€ ์˜ˆ๋ฐฉ๋ฒ•(์ด๋ฒˆ lesson)
AI ๋น„์šฉ ํญ์ฃผ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž๋™ํ™” ๋ฃจํ”„ ๋Œ๋ ค์„œ ํ•˜๋ฃจ์— $300 ์ฒญ๊ตฌ ์›” ํ•œ๋„ + ์•Œ๋žŒ (๋‹จ๊ณ„ 1~2)
API ํ‚ค ์œ ์ถœ .env๋ฅผ GitHub public์— ์˜ฌ๋ ค์„œ ํ‚ค ๋„์šฉ โ†’ 24์‹œ๊ฐ„ ๋งŒ์— $5,000 10ํ•ญ๋ชฉ ๋ณด์•ˆ ์ ๊ฒ€ (๋‹จ๊ณ„ 3)
๋ฐ์ดํ„ฐ ๋‚ ์•„๊ฐ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž˜๋ชปํ•ด์„œ user ํ…Œ์ด๋ธ” ํ†ต์งธ๋กœ ์‚ญ์ œ ๋งค์ผ ์ž๋™ ๋ฐฑ์—… + ๋ณต์› ํ…Œ์ŠคํŠธ (๋‹จ๊ณ„ 4)

์ด ์˜์—ญ์€ "ํ•œ ๋ฒˆ ์ผœ๋‘๋ฉด ๊ณ„์† ๋ณดํ˜ธ๋˜๋Š”" ํ•ญ๋ชฉ์ด์—์š”. 30๋ถ„๋งŒ ํˆฌ์žํ•˜๋ฉด ๊ทธ ๋‹ค์Œ 6๊ฐœ์›”์€ ์•ˆ์‹ฌํ•ด๋„ ๋ผ์š”.

์˜† ํƒญ์— checklist "์•ˆ์ „ํ•ด์š”?" ์˜์—ญ + Claude Code์—์„œ /v4-security

์ด๋ฒˆ lesson์€ ๋‘ ํ™˜๊ฒฝ์„ ๊ฐ™์ด ์จ์š”. vuild.kr checklist๋ฅผ ์˜† ํƒญ์— ๋„์šฐ๊ณ , Claude Code ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ ํ•œ ์ค„.

์ž…๋ ฅ (Claude Code ํ„ฐ๋ฏธ๋„)

/v4-security

์ด ์Šคํ‚ฌ์€ ๋ณธ์ธ ๋นŒ๋“œํ‚ท์˜ ์ฝ”๋“œ์™€ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์Šค์บ”ํ•ด์„œ ๋ณด์•ˆ ์œ„ํ—˜ ํ•ญ๋ชฉ์„ ๋ฆฌํฌํŠธํ•ด์š”. API ํ‚ค ๋…ธ์ถœยทOAuth ์ฝœ๋ฐฑยทCSPยทHTTPS ๊ฐ•์ œยทSQL injection ๊ฐ€๋Šฅ์„ฑ ๋“ฑ 10๊ฐ€์ง€๋ฅผ ํ•œ ๋ฒˆ์— ์ ๊ฒ€ํ•ด ์ค˜์š”. ์Šคํ‚ฌ์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ vuild.kr checklist์˜ "์•ˆ์ „ํ•ด์š”?" ์˜์—ญ์„ ์˜†์—์„œ ๋ณด๋ฉด์„œ ๊ฐ™์ด ๋”ฐ๋ผ๊ฐ€์š”.

๐Ÿ“ท ์บก์ณ โ€” vuild.kr launch/checklist์˜ ๐Ÿ›ก "์•ˆ์ „ํ•ด์š”?" ์˜์—ญ ํด๋กœ์ฆˆ์—…. 3๊ฐœ ํ•ญ๋ชฉ(AI ๋น„์šฉ/๋ณด์•ˆ ์ ๊ฒ€/DB ๋ฐฑ์—…) + ํ† ๊ธ€ ๊ฐ•์กฐ.
checklist์˜ ๋‘ ๋ฒˆ์งธ ์˜์—ญ. ๋ชจ๋‘ ์ˆ˜๋™ ํ† ๊ธ€์ด์—์š”.

๋‹จ๊ณ„ 1 โ€” Anthropic Console์—์„œ ์›” ํ•œ๋„ ์„ค์ • (๊ฐ€์žฅ ๋จผ์ €)

Ch.4-13์—์„œ ๋ณธ์ธ ์„œ๋น„์Šค์— Claude API๋ฅผ ๋ถ™์˜€๋‹ค๋ฉด(ANTHROPIC_API_KEY) ๊ฐ€์žฅ ๋จผ์ € ํ•  ์ผ์€ ์›” ํ•œ๋„ ์„ค์ •์ด์—์š”. ํ•œ๋„ ์—†์ด ๋‘๋ฉด ๋ˆ„๊ตฐ๊ฐ€ ์ž๋™ํ™”๋กœ API๋ฅผ ๋ฌดํ•œ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ ๋ณธ์ธ ์‹ ์šฉ์นด๋“œ๊ฐ€ ๋น„๋ช…์„ ์งˆ๋Ÿฌ์š”.

  1. console.anthropic.com ์ ‘์† โ†’ ๋ณธ์ธ ๊ณ„์ • ๋กœ๊ทธ์ธ (LEARN์—์„œ ์“ฐ๋˜ ๊ทธ ๊ณ„์ •)
  2. ์ขŒ์ธก ์‚ฌ์ด๋“œ๋ฐ” "Settings โ†’ Limits" ํด๋ฆญ
  3. "Monthly spend limit" ์ž…๋ ฅ โ†’ ๋ณธ์ธ์ด ๊ฐ๋‹น ๊ฐ€๋Šฅํ•œ ๊ธˆ์•ก (๊ถŒ์žฅ: $20~50)
  4. "Email alerts" ์ฒดํฌ โ†’ 50% / 80% / 95% ๋„๋‹ฌ ์‹œ ์ด๋ฉ”์ผ ๋ฐ›๊ธฐ
  5. "Save" ํด๋ฆญ

์ด๊ฑธ ์ผœ๋‘๋ฉด ํ•œ๋„์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์•Œ๋ฆผ์„ ๋ฐ›์•„์š”. 95%์— ๋„๋‹ฌํ•˜๋ฉด ๊ทธ ์ฆ‰์‹œ API ํ˜ธ์ถœ์ด ๋ฉˆ์ถฐ์š”. ๋ณธ์ธ ์„œ๋น„์Šค๋Š” ์ž ๊น ์•ˆ ๋Œ์ง€๋งŒ ์ฒญ๊ตฌ์„œ ํญํƒ„์€ ๋ง‰์„ ์ˆ˜ ์žˆ์–ด์š”. ์ „ํ˜•์ ์ธ "์ž ๊น ๋ฉˆ์ถค vs ๊ฑฐ์•ก ์†์‹ค" ํŠธ๋ ˆ์ด๋“œ์˜คํ”„์ธ๋ฐ, ๋ฌด์กฐ๊ฑด ์ž ๊น ๋ฉˆ์ถค ์ชฝ์ด ์˜ณ์•„์š”.

๐Ÿ“ท ์บก์ณ โ€” Anthropic Console โ†’ Settings โ†’ Limits ํ™”๋ฉด. Monthly spend limit $30 + Email alerts 50/80/95% ๊ฐ•์กฐ.
"์ž ๊น ๋ฉˆ์ถ”๋Š” ๊ฒŒ ๊ฑฐ์•ก ์†์‹ค๋ณด๋‹ค ํ•ญ์ƒ ๋‚ซ๋‹ค"์˜ ์•ˆ์ „์žฅ์น˜.

๋‹จ๊ณ„ 2 โ€” ๋‹ค๋ฅธ LLM๋„ ๊ฐ™์€ ํŒจํ„ด (OpenAI / Google)

Anthropic ์™ธ์— OpenAI๋‚˜ Google API๋ฅผ ๊ฐ™์ด ์“ฐ๋ฉด ๊ทธ์ชฝ๋„ ๋˜‘๊ฐ™์ด ํ•œ๋„๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ด์š”. ๊ฐ ์ฝ˜์†”์˜ ์œ„์น˜๋งŒ ๋ฉ”๋ชจํ•ด ๋‘ฌ์š”.

  • OpenAI: platform.openai.com/account/billing/limits โ†’ "Set monthly budget" + "Email notifications"
  • Google AI Studio (Gemini): aistudio.google.com โ†’ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ์šฐ์„ , ๊ฒฐ์ œ ๋“ฑ๋ก ์‹œ GCP Billing alerts ํ•จ๊ป˜
  • OpenRouter: openrouter.ai/account โ†’ "Credits" ์ถฉ์ „์‹์ด๋ผ ์ž๋™ ํ•œ๋„. ์ถฉ์ „ํ•œ ๋งŒํผ๋งŒ ์“ฐ์ž„

OpenRouter์ฒ˜๋Ÿผ ์ถฉ์ „์‹ ๋ชจ๋ธ์€ ์‚ฌ์‹ค์ƒ ํ•œ๋„ ์ž์ฒด๊ฐ€ ์ถฉ์ „ ์ž”์•ก์ด๋ผ ๊ฐ€์žฅ ์•ˆ์ „ํ•ด์š”. ์‹ ์šฉ์นด๋“œ ์ž๋™ ๊ฒฐ์ œ๊ฐ€ ๋ฌด์„œ์šฐ๋ฉด OpenRouter๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด์—์š”.

๋‹จ๊ณ„ 3 โ€” ๋ณด์•ˆ ์ ๊ฒ€ 10ํ•ญ๋ชฉ (์Šคํ‚ฌ ์ž๋™ + ๋ณธ์ธ ํ™•์ธ)

/v4-security ์Šคํ‚ฌ์ด ๋ณธ์ธ ์ฝ”๋“œ๋ฅผ ์Šค์บ”ํ•ด์„œ ๋‹ค์Œ 10ํ•ญ๋ชฉ์„ ์ž๋™์œผ๋กœ ๋ฆฌํฌํŠธํ•ด ์ค˜์š”. ๊ฐ ํ•ญ๋ชฉ๋งˆ๋‹ค โœ… ํ†ต๊ณผ / โš ๏ธ ์ฃผ์˜ / โŒ ์œ„ํ—˜์œผ๋กœ ํ‘œ์‹œ. โŒ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์ž๋ฆฌ์—์„œ ๊ณ ์น˜๊ธฐ.

# ์ ๊ฒ€ ํ•ญ๋ชฉ ์œ„ํ—˜๋„
1 .env ํŒŒ์ผ์ด .gitignore์— ์žˆ๋‚˜ (GitHub ๋…ธ์ถœ ๋ฐฉ์ง€) ์น˜๋ช…์ 
2 ์ฝ”๋“œ ์•ˆ์— API ํ‚ค๊ฐ€ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์ง€ ์•Š๋‚˜ ์น˜๋ช…์ 
3 Rails master.key๊ฐ€ .gitignore์— ์žˆ๋‚˜ ์น˜๋ช…์ 
4 production์—์„œ HTTPS ๊ฐ•์ œ(config.force_ssl = true) ๋†’์Œ
5 CSP(Content Security Policy) ํ—ค๋” ์„ค์ • ๋†’์Œ
6 SQL injection ๊ฐ€๋Šฅ์„ฑ (raw SQL ์‚ฌ์šฉ ๊ฒ€์‚ฌ) ๋†’์Œ
7 XSS ๋ฐฉ์–ด (์‚ฌ์šฉ์ž ์ž…๋ ฅ sanitize) ๋†’์Œ
8 OAuth callback URL์ด Railway ๋„๋ฉ”์ธ๊ณผ ์ผ์น˜ ์ค‘๊ฐ„
9 ๊ด€๋ฆฌ์ž ๊ฒฝ๋กœ(/admin) ์ธ์ฆ ํ•„์ˆ˜ ์ค‘๊ฐ„
10 ๊ฐœ๋ฐœ์šฉ ์‹œ๋“œ ์‚ฌ์šฉ์ž(์˜ˆ: admin@test.com) production์—์„œ ๋น„ํ™œ์„ฑ ์ค‘๊ฐ„
๐Ÿ“ท ์บก์ณ โ€” Claude Code ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด. <code>/v4-security</code> ์‹คํ–‰ ํ›„ 10ํ•ญ๋ชฉ ๋ฆฌํฌํŠธ๊ฐ€ โœ…โš ๏ธโŒ ํ‘œ์‹œ๋กœ ์ถœ๋ ฅ๋œ ํ™”๋ฉด.
์Šคํ‚ฌ์ด ํ•œ ๋ฒˆ์— 10ํ•ญ๋ชฉ์„ ์Šค์บ”. โŒ๋งŒ ๊ทธ ์ž๋ฆฌ์—์„œ ๊ณ ์นจ.

โš ๏ธ GitHub์— .env๊ฐ€ ์ด๋ฏธ ์˜ฌ๋ผ๊ฐ€ ์žˆ๋‹ค๋ฉด (๊ฐ€์žฅ ํ”ํ•œ ์‚ฌ๊ณ )

๊ณผ๊ฑฐ ์ปค๋ฐ‹์— .env๋‚˜ ํ‚ค ํŒŒ์ผ์ด ํฌํ•จ๋œ ์ฑ„๋กœ GitHub์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์œผ๋ฉด, .gitignore์— ์ถ”๊ฐ€๋งŒ ํ•ด์„œ๋Š” ๋ถ€์กฑํ•ด์š”. ๊ทธ ํ‚ค๋Š” ์ด๋ฏธ ๋…ธ์ถœ๋œ ๊ฑฐ์˜ˆ์š”. 3๊ฐ€์ง€๋ฅผ ์ฆ‰์‹œ ํ•ด์•ผ ํ•ด์š”.

  1. ๋…ธ์ถœ๋œ ํ‚ค ์ฆ‰์‹œ ํ๊ธฐ โ€” Anthropic/OpenAI ์ฝ˜์†”์—์„œ ๊ทธ ํ‚ค "Revoke" โ†’ ์ƒˆ ํ‚ค ๋ฐœ๊ธ‰.
  2. ์ƒˆ ํ‚ค๋ฅผ Railway Variables์— ๋“ฑ๋ก, ๋ณธ์ธ .env๋„ ๊ฐฑ์‹ .
  3. (์„ ํƒ) git filter-repo๋กœ ๊ณผ๊ฑฐ ์ปค๋ฐ‹์—์„œ .env ์ œ๊ฑฐ + force push. ๋น„๊ฐœ๋ฐœ์ž ํ˜ผ์ž๋Š” ์–ด๋ ค์šฐ๋‹ˆ ์œ„ 1~2๋งŒ ํ•ด๋„ ์ถฉ๋ถ„.

๋‹จ๊ณ„ 4 โ€” DB ์ž๋™ ๋ฐฑ์—… ํ™œ์„ฑํ™” + ๋ณต์› ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธ

๋ฐ์ดํ„ฐ๊ฐ€ ๋‚ ์•„๊ฐ€๋Š” ๊ฐ€์žฅ ํ”ํ•œ ์›์ธ์€ ๋ณธ์ธ์ด ์ž˜๋ชป๋œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ production์— ์ ์šฉํ•œ ๊ฑฐ์˜ˆ์š”. ๋ฐฑ์—…์ด ์žˆ์œผ๋ฉด 5๋ถ„ ์•ˆ์— ๋ณต์› ๊ฐ€๋Šฅ. ์—†์œผ๋ฉด user ์ •๋ณด๊ฐ€ ํ†ต์งธ๋กœ ๋‚ ์•„๊ฐ€์š”. Railway/Render ๋‘˜ ๋‹ค ๋ฌด๋ฃŒ ํ”Œ๋žœ์—์„œ๋„ ์ž๋™ ๋ฐฑ์—… ๊ฐ€๋Šฅํ•ด์š”.

DB Railway Render
SQLite (๊ธฐ๋ณธ ๋ชจ๋“œ) Volume์— ์ €์žฅ โ†’ Volume Snapshot ๋งค์ผ Persistent Disk Snapshot ๋งค์ผ
PostgreSQL (์‹ฌํ™” ๋ชจ๋“œ) Postgres ํ”Œ๋Ÿฌ๊ทธ์ธ โ†’ "Backups" ์ž๋™ ๋งค์ผ Postgres ์„œ๋น„์Šค โ†’ ๋ฌด๋ฃŒ ํ”Œ๋žœ 7์ผ ๋ณด๊ด€

๊ธฐ๋ณธ ๋ชจ๋“œ(SQLite)์ธ ๊ฒฝ์šฐ Railway์—์„œ โ†’ ๋ณธ์ธ ์„œ๋น„์Šค โ†’ "Settings โ†’ Volumes" โ†’ ๋ณธ์ธ Volume ์„ ํƒ โ†’ "Backup Schedule"์„ "Daily"๋กœ. ์‹ฌํ™” ๋ชจ๋“œ(PostgreSQL)๋Š” Railway โ†’ ๋ณธ์ธ Postgres ํ”Œ๋Ÿฌ๊ทธ์ธ โ†’ "Backups" ํƒญ โ†’ "Enable Daily Backups".

๐Ÿ“ท ์บก์ณ โ€” Railway Postgres ํ”Œ๋Ÿฌ๊ทธ์ธ โ†’ "Backups" ํƒญ โ†’ "Daily" ํ™œ์„ฑํ™” ํ™”๋ฉด.
๋งค์ผ ์ž๋™ ๋ฐฑ์—…. 7์ผ์น˜ ๋ณด๊ด€์ด ๋ณดํ†ต์ด์—์š”.

๋ฐฑ์—…์ด ์ผœ์กŒ๋‹ค๊ณ  ๋์ด ์•„๋‹ˆ์—์š”. ๋ณต์›์ด ์ง„์งœ ๋˜๋Š”์ง€ ํ•œ ๋ฒˆ ํ™•์ธํ•ด์•ผ ํ•ด์š”. Railway์—์„œ "Backup โ†’ Restore"๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ทธ ๋ฐฑ์—…์ด ์ƒˆ ์ž„์‹œ ํ™˜๊ฒฝ์— ๋ณต์›๋ผ์š”. ๋ฐฑ์—… ๋ฐ์ดํ„ฐ์— ๋ณธ์ธ user/data๊ฐ€ ๋ณด์ด๋ฉด OK. ์ง„์งœ production์— ๋ฎ์–ด์“ฐ์ง€๋Š” ๋งˆ์„ธ์š”. ๋‹จ์ˆœ "๋ณต์›์ด ๋™์ž‘ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค"๋งŒ ํ™•์ธํ•˜๋Š” ๋‹จ๊ณ„์˜ˆ์š”.

๐ŸŽจ ์ƒ์„ฑ (Codex CLI) โ€” DB ๋ฐฑ์—…ยท๋ณต์› ์‚ฌ์ดํด ๋‹ค์ด์–ด๊ทธ๋žจ. (์šด์˜ DB โ†’ ๋งค์ผ ์ž๋™ ๋ฐฑ์—… โ†’ S3) + (์‚ฌ๊ณ  ๋ฐœ์ƒ โ†’ ๋ฐฑ์—… ์„ ํƒ โ†’ ๋ณต์› โ†’ ์šด์˜ DB ๋ณต๊ตฌ).
๋ฐฑ์—…์€ "์žˆ๋‹ค"๊ฐ€ ์•„๋‹ˆ๋ผ "๋ณต์›์ด ๋œ๋‹ค"๋กœ ๊ฒ€์ฆํ•ด์š”.

๋‹จ๊ณ„ 5 โ€” ๋ณด์•ˆ ์ž๊ฐ€์ง„๋‹จ 10ํ•ญ๋ชฉ ํ†ต๊ณผ ํ›„ ํ† ๊ธ€ โœ…

์œ„ ๋‹จ๊ณ„ 1~4๋ฅผ ๋‹ค ํ–ˆ์œผ๋ฉด vuild.kr checklist์˜ ๐Ÿ›ก "์•ˆ์ „ํ•ด์š”?" ์˜์—ญ์— ๊ฐ€์„œ 3๊ฐœ ํ•ญ๋ชฉ ํ† ๊ธ€์„ โœ…๋กœ ์ผœ์š”.

  • "AI ๋น„์šฉ ํญ์ฃผ ๋ฐฉ์ง€ ์ผœ์ ธ์š”" โ€” Anthropic + OpenAI ๋“ฑ ๋ชจ๋‘ ํ•œ๋„ + ์•Œ๋žŒ ์„ค์ • ์™„๋ฃŒ ์‹œ โœ…
  • "๋ณด์•ˆ ์ ๊ฒ€ ํ†ต๊ณผํ–ˆ์–ด์š”" โ€” /v4-security 10ํ•ญ๋ชฉ ์ค‘ โŒ๊ฐ€ 0๊ฐœ์ผ ๋•Œ โœ… (โš ๏ธ๋Š” ์žˆ์–ด๋„ OK)
  • "๋ฐ์ดํ„ฐ๊ฐ€ ๋งค์ผ ๋ฐฑ์—…๋ผ์š”" โ€” Railway/Render์—์„œ daily backup ํ™œ์„ฑํ™” + ๋ณต์› ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธ ์‹œ โœ…
๐Ÿ“ท ์บก์ณ โ€” vuild.kr checklist ๐Ÿ›ก ์˜์—ญ 3๊ฐœ ํ•ญ๋ชฉ ๋ชจ๋‘ โœ… ํ† ๊ธ€ ์ผœ์ง„ ์ƒํƒœ.
3๊ฐœ ๋ชจ๋‘ โœ…๋ฉด ๊ฐ€์žฅ ๋ฌด์„œ์šด 3๊ฐ€์ง€ ์‚ฌ๊ณ ๋ฅผ ๋ง‰์€ ๊ฑฐ์˜ˆ์š”.

๋ฒˆ์™ธ โ€” Rate Limiting (๋ฐ˜๋ณต ํ˜ธ์ถœ ์ฐจ๋‹จ)

AI ๋น„์šฉ ํญ์ฃผ ๋ฐฉ์ง€์˜ ๋‘ ๋ฒˆ์งธ ๋ณดํ˜ธ๋ง‰์€ ๋ณธ์ธ ์„œ๋น„์Šค ์•ˆ์—์„œ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ถ„๋‹น NํšŒ ์ด์ƒ ํ˜ธ์ถœ ๋ชป ํ•˜๊ฒŒ ๋ง‰๋Š” ๊ฒƒ์ด์—์š”. Rails๋ผ๋ฉด rack-attack gem์ด ํ‘œ์ค€์ด์—์š”. ์ด ๋‹จ๊ณ„๋Š” ์ฒซ ์‚ฌ์šฉ์ž 5๋ช… ๋‹จ๊ณ„์—์„œ๋Š” ์„ ํƒ. ์‚ฌ์šฉ์ž 100๋ช… ๋„˜์–ด๊ฐ€๋ฉด ํ•„์ˆ˜.

Claude Code์— "rack-attack๋กœ Claude API ํ˜ธ์ถœ์„ ์‚ฌ์šฉ์ž๋‹น ๋ถ„๋‹น 5ํšŒ๋กœ ์ œํ•œํ•ด์ค˜" ํ•œ ์ค„. ์Šคํ‚ฌ์ด ์•Œ์•„์„œ Gemfile + ์„ค์ • ํŒŒ์ผ + ํ…Œ์ŠคํŠธ๊นŒ์ง€ ๋งŒ๋“ค์–ด ์ค˜์š”.

๋ง‰ํžˆ๋Š” ์ง€์  โ€” ๋ฏธ๋ฆฌ ๋‹ต

  • "Anthropic Console์— ๊ฒฐ์ œ ์ •๋ณด๊ฐ€ ์—†์–ด์„œ Limits ํŽ˜์ด์ง€๊ฐ€ ์•ˆ ๋– ์š”." โ†’ Free tier๋งŒ ์“ฐ๊ณ  ์žˆ๋‹ค๋Š” ๋œป. Free tier๋Š” ์ž๋™์œผ๋กœ ํ•œ๋„๊ฐ€ ์žˆ์–ด์„œ OK. ๊ฒฐ์ œ ๋“ฑ๋ก ์ „๊นŒ์ง€๋Š” ์ด ๋‹จ๊ณ„ ๊ฑด๋„ˆ๋›ฐ์–ด๋„ ๋จ.
  • "/v4-security๊ฐ€ โŒ 6๊ฐœ๋ฅผ ๋ณด๊ณ ํ–ˆ์–ด์š”." โ†’ ์ •์ƒ์ด์—์š”. ํ•œ ๋ฒˆ์— ๋‹ค ๊ณ ์น˜์ง€ ๋ง๊ณ  ์œ„์—์„œ๋ถ€ํ„ฐ 1๊ฐœ์”ฉ. Claude Code์— "1๋ฒˆ ํ•ญ๋ชฉ๋ถ€ํ„ฐ ๊ณ ์ณ์ค˜" ํ•œ ์ค„. ๋‹ค ๊ณ ์นœ ํ›„ ์Šคํ‚ฌ ์žฌ์‹คํ–‰.
  • "GitHub์— ์˜›๋‚ ์— .env ์˜ฌ๋ ธ๋Š”๋ฐ ์–ด๋–กํ•ด์š”?" โ†’ ํ‚ค ํ๊ธฐ + ์ƒˆ ํ‚ค ๋ฐœ๊ธ‰ + Railway ์žฌ๋“ฑ๋ก๋งŒ ํ•˜๋ฉด ์ผ๋‹จ ์•ˆ์ „. ๊ณผ๊ฑฐ ์ปค๋ฐ‹ ์ •๋ฆฌ๋Š” ์œ„ํ—˜ํ•˜๋‹ˆ ์•ˆ ํ•ด๋„ OK.
  • "Railway ๋ฐฑ์—… ์˜ต์…˜์ด ์•ˆ ๋ณด์—ฌ์š”." โ†’ Free ํ”Œ๋žœ์€ ์ผ๋ถ€ ๋ฐฑ์—… ๊ธฐ๋Šฅ์ด ์ œํ•œ๋จ. Hobby($5/์›”) ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜, Render์˜ Postgres Free ํ”Œ๋žœ์€ 7์ผ ๋ฐฑ์—… ๋ฌด๋ฃŒ.
  • "๋ฐฑ์—… ๋ณต์›ํ•ด๋ณด๋‹ˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด ์žˆ์–ด์š”." โ†’ ๋ฐฑ์—…์ด ๋„ˆ๋ฌด ์ผ์ฐ ์žกํ˜”๊ฑฐ๋‚˜ production์— ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฑฐ์˜ ์—†์–ด์„œ. ๋ฉฐ์น  ์šด์˜ ํ›„ ๋‹ค์‹œ ํ™•์ธ.

์™„๋ฃŒ ์ฒดํฌ๋ฆฌ์ŠคํŠธ (๋ชจ๋‘ โœ…์ด๋ฉด 5-4๋กœ)

  • โ˜ Anthropic Console ์›” ํ•œ๋„ + ์•Œ๋žŒ ์„ค์ • (๋‹ค๋ฅธ LLM๋„ ํ•จ๊ป˜)
  • โ˜ /v4-security ์‹คํ–‰ โ†’ โŒ ํ•ญ๋ชฉ ๋ชจ๋‘ ํ•ด๊ฒฐ
  • โ˜ Railway/Render์— DB ์ž๋™ ๋ฐฑ์—… ํ™œ์„ฑํ™”
  • โ˜ ๋ณต์› ์ ˆ์ฐจ 1ํšŒ ํ…Œ์ŠคํŠธ (์‹ค์ œ ์šด์˜ ๋ฎ์–ด์“ฐ๊ธฐ X)
  • โ˜ vuild.kr checklist ๐Ÿ›ก ์˜์—ญ 3๊ฐœ ํ•ญ๋ชฉ โœ…

๋‹ค์Œ ๋‹จ๊ณ„ โ†’ 5-4 โš–๏ธ ๋ฒ•์ ์œผ๋กœ ๊ดœ์ฐฎ์•„์š”? โ€” ๊ฐœ์ธ์ •๋ณดยท์•ฝ๊ด€

์•ˆ์ „์ด ์žกํ˜”์œผ๋‹ˆ ์ด์ œ ๋ฒ•์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์š”. ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ๊ณผ ์ด์šฉ์•ฝ๊ด€์„ vuild.kr checklist์˜ "์ž๋™ ์ƒ์„ฑ" ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์œผ๋กœ ๋งŒ๋“ค๊ณ , ํ‘ธํ„ฐ์— ์‚ฌ์—…์ž ์ •๋ณด๋ฅผ ๋„ฃ์–ด์š”. ๋น„๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์žฅ ๋ง‰๋ง‰ํ•œ ๋ถ€๋ถ„์„ 5๋ถ„์— ๋๋‚ด์š”.

vuild.kr launch/checklist (์•ˆ์ „ํ•ด์š”? ์˜์—ญ)

๋กœ๊ทธ์ธ ํ›„ ๋ณธ์ธ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ

์‹ค์Šตํ•˜๊ธฐ

๋กœ๊ทธ์ธํ•˜๋ฉด ์Šคํ‚ฌ์„ ์‹ค์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค