본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

네이티브 IME 용

~13 min · ime, war-story, bounded-experiments, hangul, performance

Level 0식은 초고
0 XP0/38 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"트랙 02 가 용은 진짜라고 했어. 그리고 용이 카메라 앞에 나타났지."

청구서가 도착해

2026-07 의 퀘스트는 이 위험을 정직하게 가격 매겼어. 손수 짠 에디터는 IME 조합에서 죽는다, 그래서 Rekindle 은 이미 살아남은 코어를 빌렸다고. v4 는 조건을 바꿨어 — 네이티브 에디터는 조합 라이프사이클 자체를 소유해. 용이 작아진 건 아무것도 없어. 가족이 그냥 JavaScript 코어 대신 플랫폼의 텍스트 시스템을 들고 만나러 간 거지. 이어지는 게 그 만남의 실제 기록이야. 옛 경고를 그대로 가르치는 이유이기도 하고 — 위험은 진짜였고, 가격은 정확히 매겨졌고, 그래도 전액 치러야 했어.

네 번의 한정된 실험

cutover 이틀 뒤, 아빠의 타이핑이 끊기기 시작했어. 대응은 원인 소명 전쟁이 아니라 한정된 실험의 연속, 각각 돌리기 전에 명시적으로 승인받은 것들이었어. 첫째, 에디터를 SwiftUI 리드로에서 격리하고 키마다 다시 칠하기를 끄기 — 아빠의 판정: 전혀 달라지지 않아. 둘째, 복구 디스크 쓰기를 타이핑이 멈출 때까지 미루기 — 영어는 그대로고 한국어 입력이 깨졌어. 되돌림. 이 둘은 지금 아키텍처 문서에 이 두 실험은 다시 하지 마 로 박혀 있어. 기각된 실험과 미스터리의 차이가 그 기록이야. 셋째, 2초짜리 sync-ledger 쿼리를 에디터 스레드에서 내리기 — office 데이터에서 측정된 중앙값 쿼리당 23.5 ms — 오래된 결과 가드와 함께. 끊김은 조금만 나아졌어. 넷째, 카테고리별 디스크 모니터 무효화 — 백그라운드 쓰기가 더는 키 입력 도중에 라이브러리 전체 재스캔을 일으키지 않게 — 상당히 나아졌지만, 없어지진 않았어. 그리고 거기서 아빠가 수확 체감 지점이라며 조사를 닫았어. 받아들인 잔여를, 받아들였다고 적어두고.

코다는 조사가 닫히고 이틀 뒤에 공짜로 왔어. 재부팅과 macOS 26.7 업데이트 이후 끊김은 그냥 사라졌고, 새로 잡은 입력-활성 샘플은 한국어 key-down 시간이 IME XPC 대기에 잡아먹히고 있음을 보여줬어 — 앱이 아니라 플랫폼의 것. 출시된 실험들은 출시된 채로 남겼고(측정된 승리니까), 사냥은 닫힌 채로 뒀어. 플랫폼은 양방향으로 네 발밑에서 움직여.

한글 소실 캡처

두 번째 방문은 더 이상하고 더 잘 기록됐어. 2026-09-17, 살아 있는 노트 위에서, 한글 글자가 화면에서 사라졌는데 디스크에서는 멀쩡했어. 캡처된 전말: 놓친 ⌘Space 입력 소스 토글(시스템이 숏컷을 먹어서 에디터까지 안 왔어), 그다음 그리기 패스가 Courier 의 어드밴스로 null glyph 36 개를 기록 — Courier 에는 한글 아웃라인이 없거든. 소스는 한 번도 안 잃렸고, 복구 스냅샷은 깨끗했고, 소스 카운트를 보는 가드는 아무 이상도 못 봤어. 소스 안에서는 아무것도 틀린 게 없었으니까. 수정은 세 조각 방어야. 한글이 항상 글리프를 갖도록 명시적 Apple SD Gothic Neo 캐스케이드, 키보드 선택이 바뀔 때 다시 칠하기, 그리고 문서를 안 건드리고 꺼진 글리프를 다시 그려주는 Undo. 예전의 '다시 치니까 사라졌어요' 신고들은 사실 보이지 않는 글자 위를 덮어쓰고 있던 거로 판명났어 — 그 버그는 내내 데이터 손실 코스튬을 입고 있었던 거야.

Code

실험 장부 — 넷은 승인, 둘은 기각, 하나는 플랫폼이 닫아줌·text
사냥: 타이핑 끊김 (cutover 이후, 두 언어 다)

실험 1  SwiftUI 리드로에서 에디터 격리        -> 변화 없음 (기각)
실험 2  복구 쓰기를 타이핑 멈출 때까지 미룸    -> 한국어 깨짐 (기각)
        둘 다 아키텍처 문서에 기록됨: 다시 하지 마
실험 3  sync-ledger 쿼리를 에디터 스레드 밖으로 -> 약간 나아짐
        (측정: 쿼리 중앙값 23.5 ms, 오래된 결과 가드)
실험 4  카테고리별 디스크 무효화               -> 상당히 나아짐
        수확 체감에서 종료 — 받아들인 잔여

코다    macOS 26.7 + 재부팅 -> 끊김 사라짐. IME XPC 대기는 플랫폼 것이었어

사냥: 사라지는 한글 (2026-09-17, 라이브 캡처)
원인  놓친 ⌘Space -> Courier 어드밴스로 null glyph 들
        (Courier 에는 한글 아웃라인이 없어. 소스는 안 잃렸어)
수정  SD Gothic Neo 캐스케이드 + 키보드 변경 시 다시 칠하기
        + 편집 없이 꺼진 글리프를 다시 그리는 Undo

External links

Exercise

재시작으로만 '고쳐본' 버그를 하나 골라봐. 그 버그의 한정된 실험을 설계해. 변수 하나, 측정 하나, 되돌리기 계획 하나, 멈춤 규칙 하나('이걸로 안 움직이면 사냥을 닫고 잔여를 기록한다'). 그리고 내년에 같은 증상을 재발견할 사람한테 남길 두 줄짜리 항목을 써봐.
Hint
측정을 이름 붙일 수 없으면 그건 실험이 아니라 부업 많은 미신이야. 그리고 그 항목에 뭘 다시 시도하지 말아야 하는지 안 적으면, 내년의 그 사람이 등록금을 정가로 또 내.

Progress

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

댓글 0

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

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