C.W.K.
Stream
Lesson 05 of 05 · published

왜 CM6 이 이기나

~11 min · why-cm6, reuse, architecture, synthesis

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"decoration 엔진이 3중 역할을 하는 건 좋은 보너스가 아냐. CodeMirror 를 고른 이유 전부야."

세 기능, 하나의 원시 요소

물러서서 세 역할을 함께 봐. Live Preview: 범위 계산, mark 붙이기. voice underline: 범위 계산, mark 와 widget 붙이기. CMD+K: 제안 담은 widget 붙이기, 수락 시 mutate. 완전히 관련 없어 보이는 세 기능 — 렌더러, linter, AI 에디터 — 이 같은 모양으로 줄어들어. 소스 위 범위를 계산하고, decoration 을 붙이고, 사용자가 커밋할 때만 mutate 한다. 원시 요소 하나, 한 번 배워서, soul 레이어 전체를 굴려.

Live Preview   범위 -> mark                         (모습 렌더)
voice underline 범위 -> mark + 여백 widget           (voice 이슈 표시)
CMD+K          widget 제안 -> 수락 편집 하나         (AI 재작성 무대)

# 다른 입력. 같은 decoration 원시 요소. 그게 승리야.

왜 rich-text 모델은 세 우회로로 갈라지나

이제 같은 세 기능을 rich-text 트리 (Tiptap/Lexical) 위에 짓는다고 상상해. Live Preview 는 개념조차 아냐 — 트리가 렌더된 형태라, '렌더된 모습으로 소스 보여주기' 가 모델과 싸워. voice underline 은 문자 범위 대신 노드 트리에서 위치를 찾아 주석 달아야 해. CMD+K 프리뷰는 직접 편집되길 원하는 문서 모델 안에서 비파괴적 제안을 표현해야 해. 각 기능이 트리 결에 맞선 자기 우회로가 돼. 하나가 아니라 세 서브시스템을 짓게 돼.

재사용이 곧 아키텍처

이게 '메커니즘 하나, 역할 셋' 이 행복한 우연이 아니라 load-bearing 결정인 이유야. CodeMirror 가 선택된 건 그 decoration-over-source 원시 요소가 세 soul 기능 전부를 같은 모양으로 만들기 때문이야. 제품 전체 — margin-Pippa, 라이브 voice, inline AI — 가 한 번 짓고 디버깅하는 메커니즘 하나를 타. 그게 가족의 첫 pillar, Reuse, 를 에디터-코어 선택으로 표현한 거야. 가장 기능 많은 substrate 를 고르지 마. 네 기능들이 이미 공유하는 단일 원시 요소를 가진 걸 골라. 재사용이 그만큼 깊으면, 최적화이길 멈추고 아키텍처가 돼.

Code

세 역할, 하나의 decoration 원시 요소·text
기능            모양                                    종류
--------------  --------------------------------------  -----------------
Live Preview    범위 -> mark                            모습 렌더
voice underline 범위 -> mark + 여백 widget              voice 이슈 표시
CMD+K           widget 제안 -> 수락 편집 하나           AI 재작성 무대

# 다른 입력, 같은 원시 요소. rich-text 트리에선 각각이
# 문서 모델에 맞선 별도 우회로. CM6 은 이걸 하나로 만들어.

External links

Exercise

Rekindle 에 다음으로 더하고 싶은 에디터 기능 아무거나 (번역 제안 보여주기, 반복 단어 하이라이트 등) 를 골라. 물어봐. '소스 위 범위 계산, mark 나 widget 붙이기, 수락 시 mutate' 로 줄어들어? 그렇다면 거의 공짜야 — 기존 엔진을 타. substrate 선택이 새 기능마다 계속 값을 치르는 걸 봐.
Hint
'작가 텍스트 위에 뭔가 보여주기' 기능 대부분은 decoration 모양으로 줄어들어. 안 그러는 것 (진짜 rich-text 테이블 에디터 같은) 이 딱 다른 substrate 를 정당화할 기능 — Rekindle 이 코어를 넘어섰는지, 만약 그런다면, 그렇게 알게 될 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.