Excalidraw๋ ๊ฐ๋ฐ์์ ๋์์ด๋๋ฅผ ์ํ ์คํ์์ค ํ์ดํธ๋ณด๋ ๋๊ตฌ๋ค. Wireframe๊ณผ diagram ์์ฑ ๋๊ตฌ ์ค์์๋ ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด ๊ฐ์ด๋์์๋ Excalidraw์ ํต์ฌ ๊ธฐ๋ฅ๊ณผ ํ์ฉ ๋ฐฉ๋ฒ์ ๋ค๋ฃฌ๋ค.
์๊ฐ
Excalidraw๋ ์น ๊ธฐ๋ฐ์ ๋๋ก์ ๋๊ตฌ๋ก, ๊ฐ๋ฐ์์ ๋์์ด๋๊ฐ ์์ด๋์ด๋ฅผ ์๊ฐํํ๋ ๋ฐ ์ต์ ํ๋์ด ์๋ค. ์ง๊ด์ ์ธ interface์ ๋ค์ํ function์ ํตํด ๋น ๋ฅด๊ฒ prototype์ ๋ง๋ค ์ ์๋ค. ์น ๋ธ๋ผ์ฐ์ ์์ excalidraw.com์ ์ ์ํ๊ฑฐ๋ ๋ก์ปฌ์ ์ค์นํด์ ์ฌ์ฉํ ์ ์๋ค.
Excalidraw์ ํ์ฉ ๋ถ์ผ๋ ์๋์ ๊ฐ๋ค
- ๋น ๋ฅธ wireframe ์ ์์ด ํ์ํ ๋
- ํ๊ณผ์ ์์ด๋์ด ๊ณต์ ์ ํ์ ์ด ํ์ํ ๋
- ๋ณต์กํ system architecture๋ฅผ ์๊ฐํํ ๋
- UI/UX design์ ๋น ๋ฅด๊ฒ ํ๋กํ ํ์ดํํ ๋
Guide
Getting Started
๋ก์ปฌ์์ ์ฌ์ฉํ๋ ค๋ฉด npm, yarn, pnpm ์ค ์ ํธํ๋ ํจํค์ง ๋งค๋์ ๋ก ์ค์นํ๋ฉด ๋๋ค. pnpm์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋๋ฐ, ์ค์น ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค
pnpm add @excalidraw/excalidraw@latest
์ค์น ํ React ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ ์ฝ๋๋ ์๋์ ๊ฐ๋ค
import { Excalidraw } from "@excalidraw/excalidraw";
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw
initialData={{
appState: { viewBackgroundColor: "#ffffff" },
elements: [],
}}
/>
</div>
);
}
์ค์น๊ฐ ์๋ฃ๋๋ฉด ๋ฐ๋ก ๋๋ก์์ ์์ํ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ธ ๋๋ก์ ๋ฐฉ๋ฒ์ ๋งค์ฐ ์ง๊ด์ ์ด๋ค. R ํค๋ฅผ ๋๋ฅด๋ฉด rectangle์, C ํค๋ฅผ ๋๋ฅด๋ฉด circle์ ๊ทธ๋ฆด ์ ์๋ค. L ํค๋ก line์ ๊ทธ๋ฆฌ๊ณ , D ํค๋ก diamond๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์๋ค. ํ ์คํธ๋ T ํค๋ฅผ ๋๋ฌ ์ ๋ ฅํ ์ ์์ผ๋ฉฐ, ํฐํธ ํฌ๊ธฐ๋ Ctrl/Cmd + +/- ๋ก ์กฐ์ ํ ์ ์๋ค.
์์๋ฅผ ์ ํํ๊ณ ์ด๋ํ ๋๋ V ํค๋ฅผ ์ฌ์ฉํ๋ค. ์์๋ฅผ dragํ์ฌ ์ด๋ํ๊ณ , Shift + drag๋ก ์ฌ๋ฌ ์์๋ฅผ ์ ํํ ์ ์๋ค. Alt + drag๋ฅผ ์ฌ์ฉํ๋ฉด ์์๋ฅผ ๋ณต์ ํ ์ ์์ด ๋น ๋ฅธ ์์ ์ด ๊ฐ๋ฅํ๋ค.
์์ฃผ ์ฌ์ฉํ๋ ์ด๊ธฐ ์ค์ ์ ์๋์ ๊ฐ๋ค
- Dark mode ์ค์ :
appState: { theme: "dark" }
- Grid ์ค์ :
gridSize: 20
- Export ์ค์ :
exportScale: 2
Basic Features
์ฃผ์ tool์ ์๋์ ๊ฐ์ด ๊ตฌ๋ถ๋๋ค
- ๊ธฐ๋ณธ ๋ํ: rectangle, circle, diamond, arrow
- rectangle: UI component, container ํํ์ ํ์ฉ
- circle: icon, button, node ํํ์ ํ์ฉ
- diamond: decision point, condition ํํ์ ํ์ฉ
- arrow: flow, relationship ํํ์ ํ์ฉ
- ํ
์คํธ: ๋ค์ํ font์ ํฌ๊ธฐ ์ง์
- ์ ๋ชฉ: 24px, Bold
- ๋ถ์ ๋ชฉ: 18px, Semi-bold
- ๋ณธ๋ฌธ: 14px, Regular
- ์ค๋ช : 12px, Light
- Line: straight line, curve, arrow, dotted line
- straight line: ๊ธฐ๋ณธ ์ฐ๊ฒฐ์
- curve: ์์ฐ์ค๋ฌ์ด flow ํํ
- arrow: ๋ฐฉํฅ์ฑ ์๋ ๊ด๊ณ ํํ
- dotted line: ์ ํ์ /๊ฐ๋ฅํ ๊ด๊ณ ํํ
- ์์: background color, line color, opacity ์กฐ์
- Primary: #1a73e8 (Google Blue)
- Secondary: #5f6368 (Gray)
- Accent: #ea4335 (Red)
- Background: #ffffff (White)
- Style: line weight, dash style, corner radius
- line weight: 1px (thin), 2px (normal), 4px (bold)
- dash style: solid, dashed, dotted
- corner radius: 0px (sharp), 4px (rounded), 8px (pill)
Additional Features
์ถ๊ฐ์ ์ธ function์ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์๋ค
- Layer Management
- ์์๋ฅผ layer๋ก ๊ตฌ๋ถํ์ฌ ๊ด๋ฆฌ
- Background Layer: ๋ฐฐ๊ฒฝ ์์
- Content Layer: ์ฃผ์ ์ฝํ ์ธ
- Annotation Layer: ์ค๋ช ๊ณผ ์ฃผ์
- UI Layer: ์ธํฐํ์ด์ค ์์
- layer ์์ ๋ณ๊ฒฝ์ผ๋ก ์์ ๊ฒน์นจ ์ ์ด
- Ctrl/Cmd + ]: layer ์๋ก ์ด๋
- Ctrl/Cmd + [: layer ์๋๋ก ์ด๋
- layer ์ ๊ธ์ผ๋ก ์ค์ ๋ฐฉ์ง
- Ctrl/Cmd + Shift + L: layer ์ ๊ธ/ํด์
- layer ๊ทธ๋ฃนํ๋ก ๋ณต์กํ ๊ตฌ์กฐ ๊ด๋ฆฌ
- Ctrl/Cmd + G: ์ ํ ์์ ๊ทธ๋ฃนํ
- Ctrl/Cmd + Shift + G: ๊ทธ๋ฃน ํด์
- ์์๋ฅผ layer๋ก ๊ตฌ๋ถํ์ฌ ๊ด๋ฆฌ
- Grid System
- ์ ๋ฐํ ์ ๋ ฌ์ ์ํ grid ํ์ฑํ
- ๊ธฐ๋ณธ grid: 20px
- ์ธ๋ฐํ grid: 10px
- ๋ํ grid: 40px
- grid ํฌ๊ธฐ ์กฐ์ ๋ก ์ธ๋ฐํ ์์
๊ฐ๋ฅ
- Ctrl/Cmd + ,: grid ์ค์
- Ctrl/Cmd + .: grid ํ์/์จ๊น
- snap ๊ธฐ๋ฅ์ผ๋ก ์์ ์ ๋ ฌ ์ฉ์ด
- Ctrl/Cmd + Shift + S: snap ํ์ฑํ/๋นํ์ฑํ
- custom grid ์ค์ ์ผ๋ก ํ๋ก์ ํธ๋ณ ์ต์ ํ
- UI Design: 8px grid
- Architecture: 20px grid
- Flow Chart: 40px grid
- ์ ๋ฐํ ์ ๋ ฌ์ ์ํ grid ํ์ฑํ
- Style Preset
- ์์ฃผ ์ฌ์ฉํ๋ style์ preset์ผ๋ก ์ ์ฅ
- UI Component Style
- Architecture Style
- Flow Chart Style
- ์ผ๊ด๋ design ์ ์ง
- Color Palette
- Typography
- Spacing
- ํ ํ๋ก์ ํธ์์ design system ๊ตฌ์ถ
- Shared Library
- Component Library
- Style Guide
- AI ๊ธฐ๋ฐ style ์ถ์ฒ ๊ธฐ๋ฅ ํ์ฉ
- Auto Layout
- Style Matching
- Color Harmony
- ์์ฃผ ์ฌ์ฉํ๋ style์ preset์ผ๋ก ์ ์ฅ
Performance & Optimization
ํจ์จ์ ์ธ ์ฌ์ฉ๋ฒ์ ์๋์ ๊ฐ์ด ์ ๋ฆฌํ ์ ์๋ค
- Keyboard Shortcuts
- Basic Operations
- Ctrl/Cmd + Z: undo
- Ctrl/Cmd + Shift + Z: redo
- Ctrl/Cmd + D: duplicate
- Ctrl/Cmd + G: group
- Ctrl/Cmd + Shift + L: layer lock
- Advanced Operations
- Ctrl/Cmd + Shift + C: style ๋ณต์ฌ
- Ctrl/Cmd + Shift + V: style ๋ถ์ฌ๋ฃ๊ธฐ
- Ctrl/Cmd + Shift + A: ์ ์ฒด ์ ํ
- Ctrl/Cmd + Shift + F: ์์ ์ฐพ๊ธฐ
- Ctrl/Cmd + Shift + E: export
- Basic Operations
- Template System
- ์์ฃผ ์ฌ์ฉํ๋ layout์ template์ผ๋ก ์ ์ฅ
- UI Wireframe Template
- System Architecture Template
- Flow Chart Template
- ํ ํ๋ก์ ํธ์์ ์ผ๊ด๋ design ์ ์ง
- Design System Template
- Component Library
- Style Guide
- ๋น ๋ฅธ prototyping ๊ฐ๋ฅ
- Mobile App Template
- Web App Template
- Dashboard Template
- AI ๊ธฐ๋ฐ template ์ถ์ฒ ํ์ฉ
- Layout Suggestion
- Component Arrangement
- Style Matching
- ์์ฃผ ์ฌ์ฉํ๋ layout์ template์ผ๋ก ์ ์ฅ
- ์ค๋ฌด ์ต์ ํ ํ
- ํ์ผ ๊ด๋ฆฌ
- ์ฃผ๊ธฐ์ ์ธ backup (์ต์ 1์ผ 1ํ)
- version ๊ด๋ฆฌ (์ฃผ์ ๋ณ๊ฒฝ์ฌํญ๋ง๋ค)
- cloud sync ํ์ฉ (GitHub, Google Drive)
- ์ฑ๋ฅ ๊ด๋ฆฌ
- ๋ถํ์ํ ์์ ์ ๊ฑฐ
- layer ๊ตฌ์กฐ ์ต์ ํ
- ์ฃผ๊ธฐ์ ์ธ canvas ์ ๋ฆฌ
- ํ์
์ต์ ํ
- ์์ ์์ญ ๋ถ๋ฆฌ
- ์ฃผ๊ธฐ์ save
- ๋ณ๊ฒฝ ์ด๋ ฅ ์ถ์
- ํ์ผ ๊ด๋ฆฌ
Troubleshooting
์์ฃผ ๋ฐ์ํ๋ issue์ solution์ ์๋์ ๊ฐ๋ค
- Performance Issues
- ์์๊ฐ ๋ง์ ๋ ๋๋ ค์ง๋ ํ์
- solution: ๋ถํ์ํ ์์ ์ ๊ฑฐ
- solution: layer ๊ตฌ์กฐ ์ต์ ํ
- solution: groupํ๋ก ์์ ์ ๊ฐ์
- ๋์ฉ๋ ํ์ผ ์ฒ๋ฆฌ ์ memory ๊ด๋ฆฌ
- solution: ์ฃผ๊ธฐ์ ์ธ canvas ์ ๋ฆฌ
- solution: ๋ถํ์ํ history ์ ๊ฑฐ
- solution: export ํ ์ ํ์ผ๋ก ์์
- ๋ ๋๋ง ์ฑ๋ฅ ์ ํ
- solution: ๋ณต์กํ ๋ํ ๋จ์ํ
- solution: text ์์ ์ต์ํ
- solution: layer ์ ์ ํ
- ์์๊ฐ ๋ง์ ๋ ๋๋ ค์ง๋ ํ์
- Collaboration Issues
- ๋์ ํธ์ง ์ conflict
- solution: ์์ ์์ญ ๋ถ๋ฆฌ
- solution: ์ฃผ๊ธฐ์ save
- solution: version ๊ด๋ฆฌ ์ ๋ต ์๋ฆฝ
- ๋ณ๊ฒฝ ์ด๋ ฅ ์ถ์
- solution: GitHub ํตํฉ
- solution: ์ฃผ๊ธฐ์ commit
- solution: ๋ณ๊ฒฝ์ฌํญ ๋ฌธ์ํ
- ํ์ผ ๊ณต์ ๋ฌธ์
- solution: cloud storage ํ์ฉ
- solution: export ํ์ ์ต์ ํ
- solution: ๊ถํ ๊ด๋ฆฌ ์ค์
- ๋์ ํธ์ง ์ conflict
- Export & Import Issues
- ํด์๋ ๋ฌธ์
- solution: exportScale ์กฐ์
- solution: SVG ํ์ ํ์ฉ
- solution: PNG ์ต์ ํ
- ํธํ์ฑ ๋ฌธ์
- solution: JSON ๋ฐฑ์
- solution: SVG ๋ณํ
- solution: PNG fallback
- ํด์๋ ๋ฌธ์
Reference
- Excalidraw ๊ณต์ ๋ฌธ์ - ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ๊ณผ API ๋ฌธ์
- GitHub Repository - ์์ค ์ฝ๋์ ์ด์ ํธ๋ํน
- Excalidraw Blog - ๊ณต์ ๋ธ๋ก๊ทธ์ ์ฌ์ฉ์ ์คํ ๋ฆฌ
๋๊ธ