๋ฌด๋ฃŒ๋‹ˆ ์–ด์„œ ๋ฐ›์•„๋ณด์„ธ์—ฌ 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...

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

๋กœ๋“œ ์ฝ”๋“œ(ํด๋กœ๋“œ ์ฝ”๋“œ)๋กœ React + TypeScript ์Šคํƒ€์ผ ์ผ๊ด€์„ฑ ์œ ์ง€ํ•˜๋Š” ์‹ค์ „ ํŒ (2026๋…„ ๊ธฐ์ค€)



React + TypeScript ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ์–ด๋А ์ˆœ๊ฐ„ ์ด๋Ÿฐ ๋А๋‚Œ์ด ๋“ญ๋‹ˆ๋‹ค.

“์ด ์ฝ”๋“œ… ๋ˆ„๊ฐ€ ์“ด ๊ฑฐ์ง€?”

๊ฐ™์€ ํŒ€, ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์ธ๋ฐ ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ์€ ์ œ๊ฐ๊ฐ์ด๊ณ  ํƒ€์ž… ์„ ์–ธ ๋ฐฉ์‹๋„ ํ†ต์ผ์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿด ๋•Œ ์ง„์งœ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๊ฐ€ ํด๋กœ๋“œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํด๋กœ๋“œ ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•ด React + TypeScript ์Šคํƒ€์ผ์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‰ฝ๊ณ  ์žฌ๋ฏธ์žˆ๊ฒŒ ํ’€์–ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.



๐Ÿ“Œ ๋ชฉ์ฐจ



์™œ ์Šคํƒ€์ผ ์ผ๊ด€์„ฑ์ด ๋ฌด๋„ˆ์ง€๋Š”๊ฐ€

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ์ ํŠธ๋Š” ์ฒ˜์Œ์—” ๊น”๋”ํ•˜๊ฒŒ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์‚ฌ๋žŒ๋„ ๋Š˜๊ณ , ์ฝ”๋“œ๋„ ๋Š˜๊ณ , ๊ธ‰ํ•œ ์ˆ˜์ •์ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค.

๊ทธ ๊ฒฐ๊ณผ
props ๊ตฌ์กฐ๋Š” ์ œ๊ฐ๊ฐ,
ํƒ€์ž… ์„ ์–ธ ์œ„์น˜๋„ ์ œ๋ฉ‹๋Œ€๋กœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ด๊ฒŒ ๊ธฐ๋Šฅ ์˜ค๋ฅ˜๋ณด๋‹ค ๋” ํ”ผ๋กœํ•˜๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

์ฝ๊ธฐ ํž˜๋“  ์ฝ”๋“œ = ์œ ์ง€๋ณด์ˆ˜ ์ง€์˜ฅ



ํด๋กœ๋“œ ์ฝ”๋“œ๊ฐ€ ์Šคํƒ€์ผ์„ ์žก์•„์ฃผ๋Š” ์ด์œ 

ํด๋กœ๋“œ ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ “๊ณ ์ณ์ฃผ๋Š” AI”๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋™์‹œ์— ์ฝ๊ณ  ๊ณตํ†ต ํŒจํ„ด์„ ์ฐพ์•„๋‚ด๋Š” ๋ฐ ์•„์ฃผ ๊ฐ•ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Header.tsx, Footer.tsx, Layout.tsx๋ฅผ ํ•จ๊ป˜ ๋ณด๋ฉด “์•„, ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ด๋Ÿฐ ์Šคํƒ€์ผ์ด๊ตฌ๋‚˜”๋ฅผ ๋งฅ๋ฝ์œผ๋กœ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํ•œ ํŒŒ์ผ๋งŒ ๋˜์ ธ์ค˜๋„ ๊ธฐ์กด ์Šคํƒ€์ผ์— ๋งž์ถฐ ์ˆ˜์ •์•ˆ์„ ์ œ์‹œํ•ด ์ค๋‹ˆ๋‹ค.

์ด๊ฒŒ ์‚ฌ๋žŒ์ด ๋ฆฌ๋ทฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋น ๋ฅผ ๋•Œ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค.



React ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ ํ†ต์ผ ์‹ค์ „ ์˜ˆ์‹œ

๊ฐ€์žฅ ๋จผ์ € ํ†ต์ผํ•ด์•ผ ํ•  ๊ฒƒ์€ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋Ÿฐ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

@components/Header.tsx @components/Footer.tsx ์ด ํ”„๋กœ์ ํŠธ ๊ธฐ์ค€์œผ๋กœ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ๋ฅผ ํ†ต์ผํ•ด์ค˜

ํด๋กœ๋“œ ์ฝ”๋“œ๋Š” props ์œ„์น˜, ํ•จ์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹, JSX ์ •๋ ฌ๊นŒ์ง€ ๊ธฐ์กด ์Šคํƒ€์ผ์„ ๊ธฐ์ค€์œผ๋กœ ๋งž์ถฅ๋‹ˆ๋‹ค.

์ƒˆ ๊ทœ์น™์„ ๋งŒ๋“œ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ด๋ฏธ ์žˆ๋Š” ๊ทœ์น™์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋А๋‚Œ

๊ทธ๋ž˜์„œ ๊ฑฐ๋ถ€๊ฐ ์—†์ด ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



TypeScript ํƒ€์ž… ์Šคํƒ€์ผ ์œ ์ง€ํ•˜๋Š” ๋ฒ•

TypeScript์—์„œ ๊ฐ€์žฅ ํ”ํ•œ ํ˜ผ๋ž€์€ type๊ณผ interface์˜ ํ˜ผ์šฉ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ํŒŒ์ผ์€ type, ์–ด๋–ค ํŒŒ์ผ์€ interface๋ฅผ ์”๋‹ˆ๋‹ค.

์ด๋Ÿด ๋•Œ ํด๋กœ๋“œ ์ฝ”๋“œ์— ์ด๋ ‡๊ฒŒ ์š”์ฒญํ•ด ๋ณด์„ธ์š”.

@src/types ๊ธฐ์ค€์œผ๋กœ ์ด ํ”„๋กœ์ ํŠธ ํƒ€์ž… ์„ ์–ธ ์Šคํƒ€์ผ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ค˜

๊ทธ๋Ÿฌ๋ฉด ํƒ€์ž… ์œ„์น˜, ๋„ค์ด๋ฐ ๊ทœ์น™, export ๋ฐฉ์‹๊นŒ์ง€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งž์ถฐ์ค๋‹ˆ๋‹ค.

์ด๊ฑด ์‚ฌ๋žŒ์ด ์ผ์ผ์ด ๋ง๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.



ํŒ€ ์ „์ฒด์— ์ผ๊ด€์„ฑ ํผ๋œจ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•

๊ฐœ์ธ๋งŒ ์ž˜ ์จ์„œ๋Š” ์Šคํƒ€์ผ์ด ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ธฐ์ค€ ํŒŒ์ผ์„ ๋ช‡ ๊ฐœ ์ •ํ•ด๋‘๋Š” ๊ฒƒ

Header, Footer, ๊ณตํ†ต Button ๊ฐ™์€ ํŒŒ์ผ์„ ํด๋กœ๋“œ ์ฝ”๋“œ์— ์ž์ฃผ ์ฐธ์กฐ์‹œํ‚ค๋ฉด ๊ทธ๊ฒŒ ๊ณง ํ”„๋กœ์ ํŠธ ํ‘œ์ค€์ด ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค “์ด ์Šคํƒ€์ผ์— ๋งž๊ฒŒ ์ •๋ฆฌํ•ด์ค˜”๋ผ๊ณ  ์š”์ฒญํ•˜๋ฉด ๋ฆฌ๋ทฐ ๋ถ€๋‹ด๋„ ํ™• ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

ํด๋กœ๋“œ ์ฝ”๋“œ๋Š” ํŒ€ ๋ฌธํ™”๊นŒ์ง€ ์ •๋ฆฌํ•ด ์ฃผ๋Š” ๋„๊ตฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.





React + TypeScript ํ”„๋กœ์ ํŠธ์—์„œ ์‹ค๋ ฅ ์ฐจ์ด๋Š” ๊ฒฐ๊ตญ ์—ฌ๊ธฐ์„œ ๋‚ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์“ฐ๋А๋ƒ๊ฐ€ ์•„๋‹ˆ๋ผ ์–ผ๋งˆ๋‚˜ ๊ฐ™์€ ์Šคํƒ€์ผ๋กœ ์“ฐ๋А๋ƒ์ž…๋‹ˆ๋‹ค.

ํด๋กœ๋“œ ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ทœ์น™์„ ๊ฐ•์š”ํ•˜์ง€ ์•Š์•„๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ต์ผ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์— ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด ๋ณด์ธ๋‹ค๋ฉด ํ˜ผ๋‚ด์ง€ ๋ง๊ณ , ํด๋กœ๋“œ ์ฝ”๋“œ์—๊ฒŒ ๋จผ์ € ๋ฌผ์–ด๋ณด์„ธ์š”.

๊ทธ๊ฒŒ ๋” ๋น ๋ฅด๊ณ , ํŒ€ ๋ถ„์œ„๊ธฐ๋„ ํ›จ์”ฌ ์ข‹์•„์ง‘๋‹ˆ๋‹ค ๐Ÿ™‚

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

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

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