๋ฌด๋ฃŒ๋‹ˆ ์–ด์„œ ๋ฐ›์•„๋ณด์„ธ์—ฌ AI ํ† ํฐ ๊ด€๋ฆฌ์‚ฌ ์–ด์„œ ์ฑ„์šฉํ•˜์„ธ์—ฌ

์ด๋ฏธ์ง€
  AI ํ† ํฐ ๊ณ„์‚ฐ ํ”„๋กœ๊ทธ๋žจ ๋ฆฌํฌํŠธ 1. ํ”„๋กœ๊ทธ๋žจ ๋ชฉ์  ์‚ฌ์šฉ์ž๊ฐ€ AI์— ์ž…๋ ฅํ•˜๋Š” ๊ธ€๊ณผ AI๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๋‹ต๋ณ€์˜ ํ† ํฐ ์ˆ˜์™€ ์˜ˆ์ƒ ๋น„์šฉ์„ ์ž๋™ ๊ณ„์‚ฐ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๋‹จ์ˆœํžˆ ๊ธ€์ž ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ: ์ž…๋ ฅ → ์‚ฌ์šฉ ๋ชจ๋ธ ์„ ํƒ → ์ž…๋ ฅ ํ† ํฐ ๊ณ„์‚ฐ → ์ถœ๋ ฅ ํ† ํฐ ์˜ˆ์ƒ/์‹ค์ธก → 1ํšŒ ๋น„์šฉ ๊ณ„์‚ฐ → 1์ผ·1๊ฐœ์›” ๋น„์šฉ ๊ณ„์‚ฐ → ์—ฌ๋Ÿฌ AI ๋ชจ๋ธ ๋น„๊ต ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. 2. ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๊ธฐ๋Šฅ ๋‚ด์šฉ ์ž…๋ ฅ ํ† ํฐ ๊ณ„์‚ฐ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋ช‡ ํ† ํฐ์ธ์ง€ ๊ณ„์‚ฐ ์ถœ๋ ฅ ํ† ํฐ ๊ณ„์‚ฐ AI ๋‹ต๋ณ€ ํ† ํฐ ๊ณ„์‚ฐ ์ด ํ† ํฐ Input + Output API ๋น„์šฉ ๋ชจ๋ธ๋ณ„ ์‹ค์ œ ๊ฐ€๊ฒฉ ์ ์šฉ 1ํšŒ ๋น„์šฉ ํ•œ ๋ฒˆ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ ๋น„์šฉ ์ผ์ผ ๋น„์šฉ ํ•˜๋ฃจ ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ์ค€ ์›”๊ฐ„ ๋น„์šฉ 30์ผ ๊ธฐ์ค€ ๋ชจ๋ธ ๋น„๊ต ์—ฌ๋Ÿฌ AI ๋ชจ๋ธ ๋น„์šฉ ๋น„๊ต ํ•œ๊ตญ์–ด ๊ณ„์‚ฐ ํ•œ๊ตญ์–ด ํŠน์„ฑ ๊ณ ๋ ค ์˜์–ด ๊ณ„์‚ฐ ์˜์–ด ํ† ํฐ ๊ณ„์‚ฐ ๊ธด ๋ฌธ์„œ ๊ณ„์‚ฐ PDF/ํ…์ŠคํŠธ ๋“ฑ API ์‚ฌ์šฉ๋Ÿ‰ ๋ถ„์„ ์‹ค์ œ API ๋กœ๊ทธ ๋ถ„์„ ์˜ˆ์‚ฐ ๊ฒฝ๊ณ  ์›” ์˜ˆ์‚ฐ ์ดˆ๊ณผ ์˜ˆ์ƒ ์‹œ ๊ฒฝ๊ณ  3. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„ “๊ธ€์ž ์ˆ˜ × ์–ผ๋งˆ” ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค๋ฉด ์•ˆ ๋œ๋‹ค. AI ํ† ํฐ์€ ๋ชจ๋ธ๋งˆ๋‹ค ํ† ํฌ๋‚˜์ด์ €๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ™์€ ๋ฌธ์žฅ์ด๋ผ๋„ OpenAI Anthropic Google Meta Mistral Cohere ๋“ฑ์—์„œ ํ† ํฐํ™” ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—๋Š” ๋ชจ๋ธ๋ณ„ Tokenizer / ๊ณต์‹ ๊ฐ€๊ฒฉํ‘œ ๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค. 4. ๊ณ„์‚ฐ ๊ตฌ์กฐ ๊ธฐ๋ณธ ๊ณ„์‚ฐ์€ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค. ์ž…๋ ฅ Input Tokens = ํ”„๋กฌํ”„ํŠธ ํ† ํฐ ์ˆ˜ ์ถœ๋ ฅ Output Tokens = AI ๋‹ต๋ณ€ ํ† ํฐ ์ˆ˜ ์ด ํ† ํฐ Total Tokens = Input Tokens + Output Tokens ๋น„์šฉ ๋ชจ๋ธ์˜ ๊ฐ€๊ฒฉ์ด Input $X / 1M tokens Output $Y / 1M tokens ์ด๋ผ๋ฉด, Input Cost = Input Tokens ÷ 1,000,000 × X Output Cost = Output Tokens ÷ 1,000,000 × Y ๊ทธ๋ฆฌ๊ณ  Total Cost = Input Co...

Docker ํ™˜๊ฒฝ์—์„œ ์™ธ๋ถ€ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ ์‹œ ๋ฐœ์ƒํ•˜๋Š” 404 ์—๋Ÿฌ ํ•ด๊ฒฐ๋ฒ•

 Docker ํ™˜๊ฒฝ์—์„œ ์™ธ๋ถ€ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ ์‹œ ๋ฐœ์ƒํ•˜๋Š” 404 ์—๋Ÿฌ ํ•ด๊ฒฐ๋ฒ•

๐Ÿ”Ž 1. 404๊ฐ€ ์–ด๋””์„œ ๋‚˜๋Š”์ง€ ๋จผ์ € ๊ตฌ๋ถ„



๐Ÿ‘‰ ์ด๊ฒŒ ํ•ต์‹ฌ์ด๋‹ค (๋ฌด์กฐ๊ฑด ๋จผ์ € ์ฒดํฌ)


๐Ÿ‘‰ ์ผ€์ด์Šค A: ๋ธŒ๋ผ์šฐ์ € 404 ํ™”๋ฉด์ด “๊น”๋”ํ•œ ๊ธฐ๋ณธ ํŽ˜์ด์ง€”

nginx / Caddy ๋А๋‚Œ

๐Ÿ‘‰ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ๋ฌธ์ œ

๐Ÿ‘‰ ์ผ€์ด์Šค B: ์‚ฌ์ดํŠธ ๋””์ž์ธ์ธ๋ฐ “ํŽ˜์ด์ง€ ์—†์Œ”


๐Ÿ‘‰ ์•ฑ(WordPress, Node ๋“ฑ) ๋ฌธ์ œ


๐ŸŒ 2. DNS ๋ฌธ์ œ (๋„๋ฉ”์ธ์ด ์„œ๋ฒ„๋ฅผ ๋ชป ์ฐพ์Œ)


๐Ÿ‘‰ ๋„๋ฉ”์ธ์ด ์„œ๋ฒ„ IP๋กœ ์•ˆ ๋ถ™์œผ๋ฉด ์ด์ƒํ•œ ์„œ๋ฒ„๋กœ ๊ฐ


ํ™•์ธ

ping example.com


๐Ÿ‘‰ IP๊ฐ€ ๋„ค ์„œ๋ฒ„๋ž‘ ๋‹ค๋ฅด๋ฉด ๋ฌธ์ œ


ํ•ด๊ฒฐ

DNS์—์„œ A๋ ˆ์ฝ”๋“œ ์„ค์ •


์˜ˆ:


example.com → ์„œ๋ฒ„IP


๐Ÿ‘‰ Cloudflare ์“ฐ๋ฉด:


Proxy ON/OFF ํ™•์ธ

๐Ÿ” 3. ํฌํŠธํฌ์›Œ๋”ฉ / ๋ฐฉํ™”๋ฒฝ ๋ฌธ์ œ


๐Ÿ‘‰ ์™ธ๋ถ€ → ์„œ๋ฒ„๋กœ ๋ชป ๋“ค์–ด์˜ด


ํ™•์ธ

curl http://localhost


๐Ÿ‘‰ ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ๋˜๋ฉด → ์™ธ๋ถ€ ๋ฌธ์ œ


ํ•ด๊ฒฐ

sudo ufw allow 80

sudo ufw allow 443


๐Ÿ‘‰ ๊ณต์œ ๊ธฐ:


80 → ์„œ๋ฒ„IP

443 → ์„œ๋ฒ„IP

๐Ÿ”€ 4. Caddy / Nginx ์„ค์ • ๋ฌธ์ œ (๊ฐ€์žฅ ๋งŽ๋‹ค)

5


๐Ÿ‘‰ Caddy ๊ธฐ์ค€ ์„ค๋ช…


❌ ๋ฌธ์ œ ์ƒํ™ฉ

example.com ์ ‘์† → 404


๐Ÿ‘‰ ์ด์œ 


๋„๋ฉ”์ธ ๋งค์นญ ์•ˆ๋จ

์ž˜๋ชป๋œ ํฌํŠธ

✅ ํ•ด๊ฒฐ

Caddyfile ํ™•์ธ

example.com {

    reverse_proxy localhost:3000

}

๐Ÿ”ฅ ํ•ต์‹ฌ ์ฒดํฌ

๋„๋ฉ”์ธ ์ฒ ์ž ๋งž๋ƒ?

www ํฌํ•จํ–ˆ๋ƒ?

example.com, www.example.com {

    reverse_proxy localhost:3000

}

๐Ÿณ 5. Docker ํฌํŠธ ๋งคํ•‘ ๋ฌธ์ œ


๐Ÿ‘‰ ์ด๊ฑฐ ์ดˆ๋ณด 90% ์‹ค์ˆ˜


❌ ๋ฌธ์ œ

docker run -p 3000:3000 app


๊ทผ๋ฐ Caddy๋Š”:


reverse_proxy localhost:80 ❌


๐Ÿ‘‰ ์•ˆ ๋งž์Œ → 404


✅ ํ•ด๊ฒฐ


๐Ÿ‘‰ ํฌํŠธ ๋งž์ถฐ๋ผ


reverse_proxy localhost:3000

๐Ÿ“ฆ 6. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๋ฌธ์ œ


๐Ÿ‘‰ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„์˜ˆ ์•ˆ ๋Œ๊ณ  ์žˆ์Œ


ํ™•์ธ

docker ps


๐Ÿ‘‰ ์—†์œผ๋ฉด ์ฃฝ์€ ์ƒํƒœ


๋กœ๊ทธ ํ™•์ธ

docker logs ์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„

๐Ÿง  7. ๋„๋ฉ”์ธ vs localhost ์ฐจ์ด


๐Ÿ‘‰ ์ด๊ฑฐ ์ค‘์š”


ํ…Œ์ŠคํŠธ

curl localhost:3000


๐Ÿ‘‰ ๋˜๋ฉด ์•ฑ ์ •์ƒ


๐Ÿ‘‰ ๊ทธ๋Ÿผ ๋ฌธ์ œ๋Š”:


Caddy

DNS

ํฌํŠธํฌ์›Œ๋”ฉ

๐Ÿšจ 8. ์›Œ๋“œํ”„๋ ˆ์Šค/์•ฑ URL ์„ค์ • ๋ฌธ์ œ


๐Ÿ‘‰ WordPress ์ž์ฃผ ํ„ฐ์ง


❌ ๋ฌธ์ œ

๋‚ด๋ถ€ URL = localhost

์™ธ๋ถ€ ๋„๋ฉ”์ธ = example.com


๐Ÿ‘‰ ์ถฉ๋Œ → 404


✅ ํ•ด๊ฒฐ

WP_HOME

WP_SITEURL


๐Ÿ‘‰ ๋„๋ฉ”์ธ์œผ๋กœ ๋ณ€๊ฒฝ


๐Ÿ”ฅ ์ตœ์ข… ํ•ด๊ฒฐ ์ฒดํฌ๋ฆฌ์ŠคํŠธ


๐Ÿ‘‰ ์ด ์ˆœ์„œ๋Œ€๋กœ ๋ณด๋ฉด 100% ์žกํžŒ๋‹ค


1️⃣ ๋„๋ฉ”์ธ → ์„œ๋ฒ„IP ๋งž๋ƒ

2️⃣ ํฌํŠธํฌ์›Œ๋”ฉ ์—ด๋ ธ๋ƒ

3️⃣ ๋ฐฉํ™”๋ฒฝ ์—ด๋ ธ๋ƒ

4️⃣ Docker ์ปจํ…Œ์ด๋„ˆ ์‚ด์•„์žˆ๋ƒ

5️⃣ ํฌํŠธ ๋งคํ•‘ ๋งž๋ƒ๐Ÿ’ฅ ํ•œ์ค„ ํ•ต์‹ฌ

6️⃣ Caddy ๋„๋ฉ”์ธ ์„ค์ • ๋งž๋ƒ

7️⃣ ์•ฑ ๋‚ด๋ถ€ URL ๋งž๋ƒ


๐Ÿ’ฅ ํ•œ์ค„ ํ•ต์‹ฌ


๐Ÿ‘‰ 404 = “์—ฐ๊ฒฐ์€ ๋๋Š”๋ฐ ๋ชฉ์ ์ง€ ๋ชป ์ฐพ์Œ”


๋ฆฌ๋ˆ…์Šค ์™•์ดˆ๋ณด ๋ช…๋ น์–ด๋“ค 

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

ํด๋กœ๋“œ ์ฝ”๋“œ React TypeScript ์Šคํƒ€์ผ ์ผ๊ด€์„ฑ ์œ ์ง€ ํŒ

๊ธฐํ˜ธ๋กœ ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ ์‹ค์‹œ๊ฐ„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒ•

ํด๋กœ๋“œ ์ฝ”๋“œ n8n ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™” ์—ฐ๋™ ๊ฐ€์ด๋“œ