ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Build a Real-Time Excalidraw-like Collaborative Canvas using Velt MCP and Antigravity๐ŸŽ‰
Dev.toDev.to
Frontend

Velt SDK์™€ CRDT ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ํ˜‘์—… ์บ”๋ฒ„์Šค ์•„ํ‚คํ…์ฒ˜ ๊ตฌํ˜„

Build a Real-Time Excalidraw-like Collaborative Canvas using Velt MCP and Antigravity๐ŸŽ‰

Astrodevil2026๋…„ 5์›” 21์ผ17๋ถ„intermediate

Context

๊ธฐ์กด Canvas ์•ฑ์˜ ๋‹จ์ผ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋กœ ์ธํ•œ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ๋™๊ธฐํ™” ๋ฐ ์ถฉ๋Œ ํ•ด๊ฒฐ์˜ ๋ณต์žก์„ฑ ๋ฐœ์ƒ. WebSocket ์ธํ”„๋ผ ๊ตฌ์ถ• ๋ฐ ๋™์‹œ์„ฑ ์ œ์–ด ๋กœ์ง ๊ตฌํ˜„์— ๋”ฐ๋ฅธ ๊ณผ๋„ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง ๊ณต์ˆ˜ ํˆฌ์ž…์ด ๋ณ‘๋ชฉ ์ง€์ ์œผ๋กœ ์ž‘์šฉ.

Technical Solution

  • CRDT ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ ๋‚ด Conflict-free ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๊ตฌํ˜„
  • Velt SDK ๋„์ž…์„ ํ†ตํ•œ WebSocket ์„œ๋ฒ„ ๋ฐ Sync Engine ๋“ฑ ๋ฐฑ์—”๋“œ ์ธํ”„๋ผ ๊ด€๋ฆฌ ๋น„์šฉ ์ œ๊ฑฐ
  • MCP(Model Context Protocol) ๊ธฐ๋ฐ˜ AI Agent๋ฅผ ํ™œ์šฉํ•œ ๊ธฐ์กด ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ถ„์„ ๋ฐ ๋งž์ถคํ˜• CRDT Store ์„ค๊ณ„
  • VeltProvider ์ค‘์‹ฌ์˜ ๊ณ„์ธต ๊ตฌ์กฐ ์„ค๊ณ„๋ฅผ ํ†ตํ•œ Presence, Cursor, Comments ๊ธฐ๋Šฅ์˜ ๋ชจ๋“ˆ์‹ ํ†ตํ•ฉ
  • ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์‹๋ณ„์ž ํ• ๋‹น์„ ํ†ตํ•œ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ƒํƒœ(Shared State) ๊ด€๋ฆฌ

- ์‹ค์‹œ๊ฐ„ ํ˜‘์—… ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‹œ ์ธํ”„๋ผ ์ง์ ‘ ๊ตฌ์ถ• ๋Œ€์‹  CRDT ๊ธฐ๋ฐ˜ SDK ๋„์ž… ๊ฒ€ํ†  - AI Agent์˜ ์ฝ”๋“œ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ ๋„๋ฉ”์ธ ํŠนํ™” ์ƒํƒœ ๋™๊ธฐํ™” ์ „๋žต ์ˆ˜๋ฆฝ - ์‚ฌ์šฉ์ž Presence ๋ฐ Cursor ์ •๋ณด๋ฅผ ์ƒํƒœ ํŠธ๋ฆฌ์™€ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ Œ๋”๋ง ์ตœ์ ํ™” ์ˆ˜ํ–‰

์›๋ฌธ ์ฝ๊ธฐ