작업 마찰 — 이 툴로 수정할 때 얼마나 귀찮은가?
좋은 다이어그램을 만들었는데, 다음 날 기획이 바뀌었습니다. 노드를 하나 추가해야 해요.
- Mermaid: 코드 한 줄 추가하면 끝
- draw.io: 노드 넣고, 화살표 다시 연결하고, 위치 조정하고…
이 **"수정할 때 느끼는 귀찮음"**을 체계적으로 분석한 사람이 있습니다.
1. 인지 차원이란?
Green & Petre (1989~1996)가 만든 프레임워크입니다. **"이 도구로 작업할 때 사람이 겪는 인지적 부담"**을 14가지로 분류한 거예요.
14개 다 외울 필요 없습니다. 실무에서 진짜 체감되는 핵심 6개만 보겠습니다.
2. 핵심 6개 차원
2-1. Viscosity (수정 저항)
"작은 변경 하나에 얼마나 많은 수정이 따라오는가?"
- 높으면 나쁨: 노드 하나 옮기면 화살표 10개가 어긋남
- 낮으면 좋음: 코드 한 줄 바꾸면 자동 재배치
| 툴 | Viscosity |
|---|---|
| Mermaid | 낮음 — 텍스트 수정 → 자동 레이아웃 |
| Excalidraw | 중간 — 드래그로 수정, 주변 수동 정리 |
| draw.io | 높음 — 노드+화살표+정렬 전부 수동 |
이게 왜 중요한가: 다이어그램은 한 번 그리고 끝이 아닙니다. 기획이 바뀔 때마다 수정해야 합니다. Viscosity가 높으면 "그냥 새로 그리자"가 되고, 결국 안 쓰게 됩니다.
2-2. Visibility (가시성)
"필요한 정보가 바로 보이는가?"
- 높으면 좋음: 스크롤 없이 전체가 한 눈에
- 낮으면 나쁨: 줌인해야 텍스트가 보이고, 스크롤해야 끝이 보임
2-3. Premature Commitment (조기 결정 강요)
"내용을 정하기 전에 형식부터 정해야 하는가?"
- draw.io: 레이아웃(좌→우? 위→아래?)부터 정해야 노드를 놓을 수 있음
- Mermaid:
flowchart TD한 줄이면 시작, 나중에LR로 바꿔도 됨 - Excalidraw: 아무 데나 그리고 나중에 옮기면 됨
이게 왜 중요한가: 아이디어 단계에서는 "대충 빠르게"가 중요합니다. 형식부터 정해야 하면 생각의 흐름이 끊깁니다.
2-4. Provisionality (임시성)
"대충 스케치가 가능한가?"
- Excalidraw: 최고 — 손그림 느낌이라 "초안"이 자연스러움
- Mermaid: 좋음 — 텍스트니까 대충 적어도 됨
- draw.io: 약함 — 깔끔한 도구라서 "대충"이 어색함
2-5. Progressive Evaluation (점진적 확인)
"완성 전에 중간 결과를 볼 수 있는가?"
- Mermaid Live: 타이핑하면서 실시간으로 렌더링 확인 → 최고
- draw.io: 그리는 대로 바로 보임 → 좋음
- PlantUML: 코드 쓰고 별도 렌더링 실행해야 함 → 약함
2-6. Error-proneness (오류 유발성)
"실수하기 쉬운 구조인가?"
- 비슷한 색의 노드가 다른 의미 → 헷갈림
- 화살표 방향이 일관적이지 않음 → 흐름 오독
- 같은 모양인데 다른 역할 → 혼란
3. 핵심 통찰: 모든 걸 다 잘하는 툴은 없다
Green이 강조한 건 이겁니다.
한쪽을 좋게 만들면 다른 쪽이 나빠진다.
Mermaid:
✅ 수정 쉬움 (Viscosity ↓)
✅ 점진적 확인 좋음
❌ 자유 배치 안 됨 (커스텀 ↓)
Excalidraw:
✅ 대충 스케치 가능 (Provisionality ↑)
✅ 자유 배치
❌ 수정할 때 주변 정리 필요 (Viscosity ↑)
draw.io:
✅ 정밀한 레이아웃
✅ 커스텀 자유도 최고
❌ 수정 비용 높음 (Viscosity ↑)
❌ 형식부터 정해야 함 (Premature Commitment)
그래서 **"최고의 툴"이 아니라 "이 상황에 맞는 툴"**을 고르는 게 포인트입니다.
4. 체크리스트
- 이 툴로 "노드 하나 추가"가 2분 안에 되는가?
- 전체 다이어그램이 스크롤 없이 보이는가?
- 내용을 정하기 전에 형식을 정할 필요가 없는가?
- 대충 빠르게 스케치할 수 있는가?
- 수정하면서 실시간으로 결과를 확인할 수 있는가?
하나라도 No가 나오면, 그 상황에서는 다른 툴이 더 나을 수 있습니다.
출처
Green, T.R.G. & Petre, M. (1996). Usability analysis of visual programming environments. JVLC. → 원래 프로그래밍 언어 평가용이지만, 시각화 도구 비교에 바로 쓸 수 있는 실용적 프레임워크입니다.