Intro

<aside> ๐Ÿ”ฅ

Windsurf๋Š” Agentic AI๋ผ๊ณ  ํ•˜๋Š” AI assistant tool์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด์ „์— VS Code์˜ Copilot, Cursor ๋“ฑ๊ณผ ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๋Š”์ง€ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

</aside>

Body

1. Previous AI Assistant tool

1.1. Development workflow without AI

VS Code์˜ Copilot์ด๋‚˜ Cursor์—์„œ์˜ AI tool์€ ๋‹จ์ˆœํžˆ ์ž‘์€ ์—…๋ฌด๋ฅผ ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ์ „์ฒด workflow์—์„œ ๊ฐ๊ฐ์˜ task๋“ค์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค!

ํ•˜๋‚˜์˜ workflow

ํ•˜๋‚˜์˜ workflow

์œ„์˜ ๊ทธ๋ฆผ์—์„œ Navigate, Autocomplete, Edits, Command, Execute, Research, grep, Add File ์ด๋ผ๊ณ  ํ•˜๋Š” task๋“ค์„ ์ด์ „์—๋Š” ์‚ฌ๋žŒ์ด ์ „๋ถ€ ์ˆ˜ํ–‰ํ–ˆ์—ˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 2022๋…„ Chat-gpt๊ฐ€ ๋‚˜์˜ค๊ณ  2023๋…„ Chat-gpt๋ฅผ ํ™œ์šฉํ•œ AI Assistant tool๋“ค์ด ๋‚˜์˜ค๋ฉด์„œ ์ƒํ™ฉ์€ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

1.2. Development workflow with AI

AI Assistant tool์ด ๋„์™€์ฃผ๋Š” ์˜์—ญ

AI Assistant tool์ด ๋„์™€์ฃผ๋Š” ์˜์—ญ

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

knowledge Sources

knowledge Sources

๋˜ํ•œ, RAG๋ผ๊ณ  ํ•˜๋Š” ์–ด๋–ค ์™ธ๋ถ€ ์ง€์‹์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์œผ๋กœ ๊ธฐ์กด์˜ ํ•™์Šต ๋ฒ ์ด์Šค์˜ AI๋กœ๋Š” ์ปค๋ฒ„ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ตœ์‹ ์˜ ์ •๋ณด๋“ค๊ณผ ๋กœ์ปฌ ํŒŒ์ผ๋“ค์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์˜์—ญ๊นŒ์ง€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ฐœ์ „ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋‹ค๋ฅธ ์˜์—ญ์—์„œ๋Š” AI๊ฐ€ ํ•˜์ง€ ์•Š๋Š” ์˜์—ญ๋„ ์žˆ๊ณ , ๊ฒฐ๊ตญ์—” ์ „์ฒด workflow๋ฅผ AI๋กœ ์ „๋ถ€ ๋Œ€์ฒดํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ํ•œ๊ณ„์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

2. Current AI Assistant tool

2.1. Development workflow with Agent AI

Agent

Agent

Agentํ–ฅ์˜ ์„œ๋น„์Šค๋Š” ์‚ฌ๋žŒ or AI๊ฐ€ ํ•˜๋˜ task๋“ค์ธ Edits, Execute, Research, grep ์„ ํ†ตํ•ฉ(integrate)ํ•˜๊ณ  ์žฌ๊ตฌ์„ฑํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ๊ฒƒ์€ ์—ฌ์ „ํžˆ LLM ํ˜ธ์ถœ์€ ์—ฌ๋Ÿฌ๋ฒˆ ์ง„ํ–‰ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. Agent๋Š” ํ•˜๋‚˜์˜ LLM ํ˜ธ์ถœ๋กœ ์—ฌ๋Ÿฌ task๋ฅผ ํ‘ธ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์Šค์Šค๋กœ ๊ฐ ๋‹จ๊ณ„์˜ action์„ ์ •์˜ํ•˜๊ณ  ๊ทธ์— ํ•„์š”ํ•œ ๋„๊ตฌ(tool)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น task๋ฅผ ํ‘ธ๋Š” ํ–‰๋™(action)์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ•˜๋‚˜์˜ ์—…๋ฌด ๋‹จ์œ„๋กœ ํ†ตํ•ฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ข€๋” ๋ณต์žกํ•œ task๋“ค์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cursor์—์„œ component๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์œ„์™€ ์œ ์‚ฌํ•  ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2.2. Problems about Agent AI

Problem 1 & 2 : Scoping & Reviewing

Problem 1 & 2 : Scoping & Reviewing

๋ชจ๋“  ๊ฒƒ๋“ค์„ ์•Œ์•„์„œ ํ•  ๊ฒƒ ๊ฐ™์€ Agent๋„ ์—ฌ์ „ํžˆ ์‚ฌ๋žŒ์˜ ๊ฐœ์ž…์ด ํ•„์š”ํ•œ ์ง€์ ์€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Scoping(์—…๋ฌด ๋ฒ”์œ„ ์„ค์ •) : ์–ด๋–ค ๋ฌธ์ œ(problem)์„ ์–ด๋А์ •๋„ ๋ฒ”์œ„๊นŒ์ง€ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š”์ง€๋Š” ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์†์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Reviewing(์—…๋ฌด ๊ฒฐ๊ณผ๋ฌผ ๋ฆฌ๋ทฐ) : Agent๊ฐ€ ํ•ด๊ฒฐํ•œ ๋ฐฉ์•ˆ์ด ์ •๋ง ์ ์ ˆํ•œ์ง€, ๊ทธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ฑ„ํƒํ• ์ง€ ์˜์‚ฌ๊ฒฐ์ •์„ ํ•˜๋Š” ๋ถ€๋ถ„์€ ์—ฌ์ „ํžˆ ์‚ฌ๋žŒ์˜ ์†์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

Problem 3 : Parallel Dev Work

Problem 3 : Parallel Dev Work

  1. Parallel Dev work (๋”ด์ง“) : Agent๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š”๋ฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—(high latency) Agent์—๊ฒŒ ๋ช…๋ น์„ ์ค€ ์‚ฌ๋žŒ์€ ๋ณดํ†ต Agent์—๊ฒŒ ์—…๋ฌด๋ฅผ ์‹œํ‚ค๊ณ  ๋‹ค๋ฅธ ์—…๋ฌด๋ฅผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(๋”ฅ๋ฆฌ์„œ์น˜์˜ ๊ฒฝ์šฐ ๋ณดํ†ต 5๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค). ๊ฒฐ๊ตญ, Agent๊ฐ€ ์‚ฌ๋žŒ์ด ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์—…๋ฌด๋ฅผ ๋‹ค ์†Œํ™”ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ง„์ •ํ•œ ์˜๋ฏธ์˜ Agent๋ผ๊ณ  ๋ณด๊ธฐ ์–ด๋ ค์šด ์ธก๋ฉด๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

2.3. Solve

์œ„์˜ 3๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Windsurf๋Š” Flows ํ˜น์€ collaborative agents ๋ผ๊ณ  ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•œ๊ณ„์ ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

Flows or collaborative agents

Flows or collaborative agents

์ด์ „์—๋Š” AI Agent์— ์—…๋ฌด๋ฅผ ์œ„์ž„ํ•˜๋Š”(delegate) ๋ฐฉ์‹์ด์˜€๋‹ค๋ฉด, Windsurf๋Š” ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ์‹ค์‹œ๊ฐ„ Agent๊ฐ€ ๊ฐ task์˜ ์ „ํ›„๋ฐฉ์—์„œ ์ง€์›์„ ํ•ด์ฃผ๋ฉด์„œ ๊ฐ™์ด ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ์‹(collaborative)์˜ agent ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด scoping ์ž‘์—…์ด ํ•„์š”๊ฐ€ ์—†์–ด์ง€๋ฉด์„œ Parallel Dev work ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ์ด ๋ฉ๋‹ˆ๋‹ค.

2.4. Limitations

ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋‹น์—ฐํžˆ ํ•œ๊ณ„๋Š” ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-03-17 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 12.23.53.png

Windsurf๋Š” ๋‹ค์Œ์˜ 4๊ฐ€์ง€ ํ•œ๊ณ„์ ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

  1. Data-distribution issues (๋ฐ์ดํ„ฐ ๋ถ„ํฌ) : ํ•™์Šตํ•˜์ง€ ์•Š์€ general performance์—์„œ ํ•œ๊ณ„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ์‚ฌ์‹ค agent๋“  non-agent๋“  ๋™์ผํ•˜๊ฒŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. imperfect tool calling (๋ถˆ์™„์ „ํ•œ ๋„๊ตฌ ํ˜ธ์ถœ) : ํ•ด๋‹น task๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ์ ์ ˆํ•œ tool์„ ์„ ํƒํ•˜์ง€ ์•Š์•˜์„ ๊ฐ€๋Šฅ์„ฑ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  3. Limited tool set (ํˆด ์…‹ํŒ… ํ•œ๊ณ„) : ํ•ด๋‹น ํˆด์„ ์‚ฌ๋žŒ์ด ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  4. imcomplete intent (๋ฏธ์™„์„ฑ๋œ ์˜๋„) : Prompt๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•„ Agent๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ์•„๋“ฃ์ง€ ๋ชปํ•  ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

Conclusion

๊ทธ๋Ÿผ์—๋„ ์ œ๊ฐ€ ์จ๋ณธ ๊ฒฐ๊ณผ ์ถฉ๋ถ„ํžˆ ์ข‹์€ IDE๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์–ด๋–ค ๋ถ€๋ถ„์€ ์•Œ์•„์„œ ์ข€ ํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๊ณ , ์–ด๋–ค ๋ถ€๋ถ„์€ ๋‚ด๊ฐ€ ํ•˜๋ฉด ์ข‹์„๊ฑฐ ๊ฐ™์€ ๋ถ€๋ถ„๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Agent๋ผ๋Š” ์ž๋™ํ™” use-case๋Š” ๋‚ด๊ฐ€ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฒดํฌํ•˜์ง€ ์•Š๊ณ  ๊ฒฐ๊ณผ๋ฌผ์ด ์™„์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ **โ€œ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋ƒโ€**์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— collaborative๋ผ๊ณ  ํ•˜๋Š” ์šฉ์–ด๋กœ ์ž˜ ์šฐํšŒํ•œ ๊ฒƒ๋„ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ์—” ์‚ฌ๋žŒ์ด ์ฝ”๋“œ๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์—†์–ด์ง€๋Š” ๋‚ ์ด ์˜ค๊ฒ ์ง€๋งŒ, ์•„์ง์€ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ์‚ฌ๋žŒ์€ ๊ฐœ๋ฐœ์ž์ด๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž์˜ ์‹ ๋ขฐ๋ฅผ ์–ป์–ด์•ผ ํ•˜๋Š” ๋‹จ๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์‹ ๋ขฐ๋ฅผ ์–ป๋Š” ๋‹จ๊ณ„์— Windsurf๊ฐ€ ๋จผ์ € ์น˜๊ณ  ๋‚˜๊ฐ€๋Š” ๋А๋‚Œ์ด๋„ค์š”.


โฌ…๏ธย ์ด์ „ ํŽ˜์ด์ง€

Make snake game

โžก๏ธย ๋‹ค์Œ ํŽ˜์ด์ง€

Reference

https://learn.deeplearning.ai/courses/build-apps-with-windsurfs-ai-coding-agents/lesson/p6p2f/ai-code-assistants-101

<aside>

Topics

How to Install

Make snake game

Difference previous AI assistant tools

</aside>