๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ai

Intent-Based Programming - ๋ฌด์—‡์„ ๋งํ•˜๋ฉด AI๊ฐ€ ์–ด๋–ป๊ฒŒ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ๋Œ€

by bamsik 2026. 2. 16.
๋ฐ˜์‘ํ˜•

๐Ÿง  Intent-Based Programming - "๋ฌด์—‡์„" ๋งํ•˜๋ฉด AI๊ฐ€ "์–ด๋–ป๊ฒŒ"๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ๋Œ€

2026๋…„, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐ”๋€Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ Intent-Based Programming(์˜๋„ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ "์–ด๋–ป๊ฒŒ(How)" ๊ตฌํ˜„ํ• ์ง€ ๋ชจ๋“  ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹ , "๋ฌด์—‡์„(What)" ์›ํ•˜๋Š”์ง€๋งŒ ๋ช…์‹œํ•˜๋ฉด AI๊ฐ€ ์ตœ์ ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋Š” ํ˜๋ช…์  ์ ‘๊ทผ๋ฒ•์ž…๋‹ˆ๋‹ค.

๐Ÿ” ๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ vs Intent-Based Programming

๊ธฐ์กด ๋ฐฉ์‹ (Imperative Programming)

// ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์ •๋ ฌํ•˜๋Š” ์ „ํ†ต์  ์ฝ”๋“œ
const users = await fetch('/api/users');
const activeUsers = users.filter(u => u.status === 'active');
const sortedUsers = activeUsers.sort((a, b) => b.score - a.score);
const top10 = sortedUsers.slice(0, 10);

Intent-Based Programming

// AI๊ฐ€ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ์˜๋„ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ
const top10ActiveUsers = intentQuery`
  Get top 10 active users sorted by score descending
`;

์ฒซ ๋ฒˆ์งธ ๋ฐฉ์‹์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋‘ ๋ฒˆ์งธ ๋ฐฉ์‹์€ "ํ™œ์„ฑ ์‚ฌ์šฉ์ž ์ค‘ ์ ์ˆ˜ ์ˆœ ์ƒ์œ„ 10๋ช…"์ด๋ผ๋Š” ์˜๋„๋งŒ ์ „๋‹ฌํ•˜๋ฉด AI๊ฐ€ ์ตœ์ ์˜ ์ฟผ๋ฆฌ, ํ•„ํ„ฐ๋ง, ์ •๋ ฌ, ์บ์‹ฑ ์ „๋žต๊นŒ์ง€ ์ž๋™์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ Intent-Based Programming์˜ ํ•ต์‹ฌ ์›๋ฆฌ

1. ์„ ์–ธ์  ์˜๋„ ํ‘œํ˜„

๊ฐœ๋ฐœ์ž๋Š” ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ž์—ฐ์–ด๋‚˜ ๊ณ ์ˆ˜์ค€ ์„ ์–ธ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. AI๋Š” ์ด๋ฅผ ํ•ด์„ํ•˜์—ฌ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

2. ์ปจํ…์ŠคํŠธ ์ธ์‹

AI๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค, ์‚ฌ์šฉ ์ค‘์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ, ์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ ๋“ฑ์„ ์ดํ•ดํ•˜๊ณ  ์ตœ์ ์˜ ๊ตฌํ˜„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

3. ์ž๋™ ์ตœ์ ํ™”

AI๋Š” ๋‹จ์ˆœํžˆ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋งŒ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„ฑ๋Šฅ, ๋ณด์•ˆ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ณ ๋ คํ•œ ์ตœ์  ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์œผ๋ฉด ์ž๋™์œผ๋กœ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์บ์‹ฑ ๋ ˆ์ด์–ด๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์‹ค์ œ ๋„๊ตฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ

1. GitHub Copilot Workspace

์ž์—ฐ์–ด ์š”์ฒญ์„ ๋ฐ›์•„ ์ „์ฒด ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ, ํŒŒ์ผ, ํ•จ์ˆ˜๋ฅผ ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. "์‚ฌ์šฉ์ž ์ธ์ฆ์ด ์žˆ๋Š” ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ"๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด, Next.js ํ”„๋กœ์ ํŠธ์— Auth.js, Prisma, ๋ธ”๋กœ๊ทธ CRUD, UI ์ปดํฌ๋„ŒํŠธ๊นŒ์ง€ ์™„์ „ํ•œ ์•ฑ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

2. Cursor IDE

์—๋””ํ„ฐ ์•ˆ์—์„œ Cmd+K๋ฅผ ๋ˆ„๋ฅด๊ณ  "์ด ํ•จ์ˆ˜๋ฅผ TypeScript๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€ํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด, AI๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ  ํ…Œ์ŠคํŠธ๊นŒ์ง€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

3. Replit AI

์ฑ„ํŒ…์ฐฝ์— "๊ฒฐ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด, Stripe API ์—ฐ๋™, ์›นํ›… ์ฒ˜๋ฆฌ, ๊ฒฐ์ œ ์ƒํƒœ ๊ด€๋ฆฌ, UI๊นŒ์ง€ ์ „๋ถ€ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฐ”๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

๐ŸŽฏ Intent-Based Programming์˜ ์‹ค์ „ ํ™œ์šฉ

์‚ฌ๋ก€ 1: ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ

์˜๋„: "์ตœ๊ทผ 30์ผ๊ฐ„ ๊ตฌ๋งค ๊ธˆ์•ก์ด $1000 ์ด์ƒ์ธ ๊ณ ๊ฐ ์ค‘, ๋ฆฌ๋ทฐ๋ฅผ 3๊ฐœ ์ด์ƒ ์ž‘์„ฑํ•˜๊ณ  ํ‰๊ท  ํ‰์  4.5 ์ด์ƒ์ธ ์‚ฌ์šฉ์ž ๋ชฉ๋ก"

AI ์ƒ์„ฑ ์ฝ”๋“œ:

const premiumReviewers = await prisma.user.findMany({
  where: {
    purchases: {
      some: {
        createdAt: { gte: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000) },
        amount: { gte: 1000 }
      }
    },
    reviews: {
      _count: { gte: 3 }
    }
  },
  include: {
    reviews: {
      select: { rating: true }
    }
  }
}).then(users => users.filter(u => 
  u.reviews.reduce((sum, r) => sum + r.rating, 0) / u.reviews.length >= 4.5
));

๊ฐœ๋ฐœ์ž๋Š” ๋ณต์žกํ•œ Prisma ์ฟผ๋ฆฌ ๋ฌธ๋ฒ•์ด๋‚˜ ์ง‘๊ณ„ ๋กœ์ง์„ ์™ธ์šธ ํ•„์š” ์—†์ด, ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ๋งŒ ์„ค๋ช…ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ๋ก€ 2: API ์ž๋™ ์ƒ์„ฑ

์˜๋„: "์‚ฌ์šฉ์ž๊ฐ€ ์ž๊ธฐ ํ”„๋กœํ•„๋งŒ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ๊ด€๋ฆฌ์ž๋Š” ๋ชจ๋“  ํ”„๋กœํ•„์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” REST API"

AI๋Š” ์ž๋™์œผ๋กœ:

  • Express.js ๋ผ์šฐํ„ฐ ์ƒ์„ฑ
  • JWT ์ธ์ฆ ๋ฏธ๋“ค์›จ์–ด ์ถ”๊ฐ€
  • ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด(RBAC) ๊ตฌํ˜„
  • ์ž…๋ ฅ ๊ฒ€์ฆ ๋ฐ ์—๋Ÿฌ ํ•ธ๋“ค๋ง
  • OpenAPI ๋ฌธ์„œ ์ƒ์„ฑ

๐ŸŒŸ Intent-Based Programming์˜ ์žฅ์ 

1. ์ƒ์‚ฐ์„ฑ ํญ๋ฐœ

McKinsey ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด, Intent-Based ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ ์ž‘์„ฑ ์†๋„๊ฐ€ ํ‰๊ท  55% ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐ˜๋ณต์ ์ธ CRUD, API ์—”๋“œํฌ์ธํŠธ, ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์—์„œ ํšจ๊ณผ๊ฐ€ ํฝ๋‹ˆ๋‹ค.

2. ์ง„์ž… ์žฅ๋ฒฝ ๊ฐ์†Œ

์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋„ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "OAuth ๋กœ๊ทธ์ธ ์ถ”๊ฐ€"๋ผ๊ณ  ํ•˜๋ฉด ๋ณต์žกํ•œ OAuth ํ”Œ๋กœ์šฐ๋ฅผ AI๊ฐ€ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

3. ์ผ๊ด€์„ฑ ๋ฐ ํ’ˆ์งˆ ํ–ฅ์ƒ

AI๋Š” ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค๋ฅผ ํ•™์Šตํ•˜์—ฌ, ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด๋‚˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐฉ์ง€ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

4. ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ํ˜„๋Œ€ํ™”

"์ด jQuery ์ฝ”๋“œ๋ฅผ React๋กœ ๋ณ€ํ™˜ํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด, ๊ธฐ์กด ๋กœ์ง์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ตœ์‹  ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ ๋ฐ ํ•œ๊ณ„

1. AI๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ์ง€๋Š” ๋ชปํ•จ

๋งค์šฐ ํŠน์ˆ˜ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ ๋„๋ฉ”์ธ ํŠนํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—ฌ์ „ํžˆ ์ธ๊ฐ„ ๊ฐœ๋ฐœ์ž์˜ ์„ธ๋ฐ€ํ•œ ์ž‘์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

2. ์ƒ์„ฑ๋œ ์ฝ”๋“œ ๊ฒ€์ฆ ํ•„์ˆ˜

AI๊ฐ€ ๋งŒ๋“  ์ฝ”๋“œ๋ฅผ ๋งน๋ชฉ์ ์œผ๋กœ ์‹ ๋ขฐํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์€ ๋ฐ˜๋“œ์‹œ ๋ฆฌ๋ทฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3. ์˜๋„ ํ‘œํ˜„์˜ ์ •ํ™•์„ฑ

๋ชจํ˜ธํ•˜๊ฑฐ๋‚˜ ๋ถˆ์™„์ „ํ•œ ์˜๋„๋Š” ์ž˜๋ชป๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. "์ข‹์€ UI ๋งŒ๋“ค์–ด์ค˜"๋Š” ๋„ˆ๋ฌด ์ถ”์ƒ์ ์ด๊ณ , "Material-UI๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ˜์‘ํ˜• ์‚ฌ์šฉ์ž ๋Œ€์‹œ๋ณด๋“œ"๊ฐ€ ๋” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ฎ ๋ฏธ๋ž˜ ์ „๋ง

2026๋…„ ํ˜„์žฌ, Intent-Based Programming์€ ์ดˆ๊ธฐ ๋‹จ๊ณ„์ด์ง€๋งŒ ๋น ๋ฅด๊ฒŒ ์„ฑ์ˆ™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Gartner๋Š” 2028๋…„๊นŒ์ง€ ์‹ ๊ทœ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ 70%๊ฐ€ Intent-Based ๋„๊ตฌ๋กœ ๊ฐœ๋ฐœ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„: Agentic Development

๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, AI ์—์ด์ „ํŠธ๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„๋ถ€ํ„ฐ ์„ค๊ณ„, ๊ตฌํ˜„, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ, ๋ชจ๋‹ˆํ„ฐ๋ง๊นŒ์ง€ ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์ž์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ๋Œ€๊ฐ€ ๊ณง ์˜ต๋‹ˆ๋‹ค.

๐ŸŽฏ ๊ฒฐ๋ก 

Intent-Based Programming์€ ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋”ฉ ์ž‘์—…์—์„œ ๋ฒ—์–ด๋‚˜, ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ GitHub Copilot, Cursor, Replit ๋“ฑ์˜ ๋„๊ตฌ๊ฐ€ ์ƒ์šฉํ™”๋˜์–ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์•„์ง ์‹œ๋„ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์ง€๊ธˆ์ด ๋ฐ”๋กœ ๋ฏธ๋ž˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ ๊ฒฝํ—˜ํ•  ์ตœ์ ์˜ ์‹œ์ ์ž…๋‹ˆ๋‹ค. ๐Ÿš€

๋ฐ˜์‘ํ˜•