← 목록
기타 2026-07-12 3KB 읽기 3분

워드 입력셀상태기계 — 셀코어 연결층

개요

크라우니워드 입력 파이프라인(키입력→한글조합/영문입력/선택/드래그/명령팔레트)을 셀코어 상태기계(상태기계생성/이행추가/상태기계틱)로 모델링한 순수 한선씨 모듈.

무엇을 했는지

  • 파일: /Users/ef/crowny-word/연결/입력셀상태기계.한선 (완전 한선씨, 셀코어 API 사용)
  • 상태 6종: 대기·한글조합·영문입력·선택확장·드래그·명령팔레트
  • 셀 슬롯 설계: s0=마지막키(raw) s1=키종류(자모/영문/숫자/화살표/기능/확정) s2=쉬프트(0/1)
  • 이행 13개 설치(이행표설치) — 자모↔확정 진출입, 영문↔확정, 쉬프트(s2)↔선택확장, 드래그/드래그끝, 팔레트/확정
  • 키종류판정(키): 두벌식 자모키 테이블(rRseEfaqQtTdwWczxvg) + 기능키/화살표키 판별 헬퍼
  • 입력틱(sm,db,셀id,키): 키셀갱신 후 상태기계틱 실행, 새 상태 문자열 반환
  • 시퀀스재생(sm,db,셀id,"키1 키2 ..."): 공백분리 키 순차 틱 → 최종 상태
  • 이행검증(sm): 시작상태 제외 모든 상태가 어떤 이행의 "끝"으로 등장하는지 검사 (도달가능성)
  • 자체시험 24 assert 전부 PASS (검사: PASS 24/24)

실측 확인 사항 (재사용 가능한 지식)

  • 맵(맵생성/맵넣어)은 참조/핸들 타입 — 함수 내부에서 재대입 없이 맵넣어(m,...)만 호출해도
호출자의 맵 변수에 변경이 그대로 반영됨(별도 프로브 .한선로 실측 확인). 기존 코드의 db = 셀씀(db,...) 재대입 관행은 안전을 위한 관습이지 필수는 아님.
  • 함수()[0] 즉시 인덱싱은 컴파일 에러() 기대, '[' 발견) — 반드시 임시변수로 받은 뒤 인덱싱.
  • 상태기계틱은 한 틱에 전이 1개만 실행(체이닝 없음) — 예: 선택확장 상태에서 쉬프트 해제 키가
동시에 자모 키인 경우, 그 틱은 "대기"로만 복귀하고 "한글조합"까지는 다음 틱에서 진행.

크라우니코드

lookup/search HIT 2건(MISS 0, 기존 상태기계 패턴 재사용: fn_셀코어_상태기계생성/이행추가/틱/현재) / LLM 생성 = 본 파일 전체(신규 도메인 로직) / learn 추가 4건 (워드입력_상태기계생성, 워드입력_키종류판정, 워드입력_입력틱, 워드입력_이행검증)

관련 파일

  • /Users/ef/crowny-word/연결/입력셀상태기계.한선 (신규, 이번 작업 산출물)
  • /Users/ef/CrownyOS/crownyc/apps/도구연결판정.한선 (셀코어 API 사용 패턴 참조)
  • /Users/ef/CrownyOS/crownyc/libs/셀코어.한선 (상태기계생성/이행추가/상태기계틱/상태기계현재 정의)

잔여 이슈

  • 키종류판정의 두벌식 자모 테이블은 지시받은 리터럴 rRseEfaqQtTdwWczxvg 19자 그대로 사용
(실제 두벌식 자판 전체 자모키 목록과는 다름 — 예: k/h/j/l/i/o/p/u/y 등은 "영문"으로 분류됨). 실제 IME 연동 시 전체 자모 테이블로 교체 필요.
  • 도구/ 65파일(1635함수)은 읽기 전용 스캔만 했고 수정하지 않음 — 이 상태기계와 실제 편집기
코어(도구/ 함수들) 배선은 다음 단계 과제.