Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 5.12 KB

compatibility.md

File metadata and controls

67 lines (54 loc) · 5.12 KB

터미널·Electron 입력 호환성 검증

2026-09-10, macOS 27.0에서 수행한 결과다. 자동 테스트 통과와 실제 앱 검증을 구분한다. 현재 모든 터미널과 SSH의 입력 호환성이 검증된 상태는 아니다.

입력 계약

  • 영어 입력은 macOS ABC가 담당하고, 글가드는 한글만 조합한다.
  • 일반 Backspace는 조합 중인 한글을 한 자소씩 지운다.
  • Command·Control·Option이 포함된 키는 한글을 먼저 확정하고 앱에 전달한다. 수정 전에는 modifier+Backspace가 일반 Backspace로 소비돼 가가 ㄱ으로 바뀌고 삭제 단축키가 전달되지 않았다. 세 modifier 모두 실패를 재현한 후 수정했다.
  • 기본 marked text 모드에서 Return·Tab·Space·방향키·ESC는 남은 한글을 확정한 뒤 앱에 전달한다. ESC로 입력 소스를 바꾸지 않는다.
  • 실험실 텔레그램 설정은 기본적으로 꺼져 있다. 켜면 조합 중인 한글을 marked text 대신 일반 텍스트로 넣고 현재 음절만 교체한다. Enter가 IME에 오기 전 텔레그램이 marked text를 검사하는 문제를 피하기 위한 방식이다. 조합 밑줄이 보이지 않고 실행 취소 단위가 달라질 수 있다. 조합 중 마지막 자모를 지우는 Backspace는 빈 문자열 교체를 텔레그램이 무시하므로 앱에 그대로 전달한다. 다른 앱과 설정을 끈 경우는 기존 방식이다.
  • 설정 변경이나 선택 범위 조회 실패로 marked text를 사용하던 조합을 전부 지우면, 다음 조합부터 텔레그램 인라인 설정을 다시 적용한다.

수행 결과

대상 실제 수행 결과·제약
InputMethodKit + 실제 NSTextView 조합·일반/수정키 Backspace·Ctrl+C/D/U/W·방향키·Tab·Return·반복 입력·비활성화·연속 자음 설정 컨트롤러 테스트 9개 통과
순수 한글 조합기 음절·쌍자음·복합 종성·분해·연속 자음 설정 테스트 15개 통과
입력 소스 표시 현지화된 이름·템플릿 색상·ABC와 같은 배지 크기·투명한 한 글자 표시 테스트 3개와 실제 입력 메뉴의 일반·선택 상태 확인
VS Code 1.137.0 (Electron), ABC 개별 키 이벤트로 알파벳 52개, a 30회, Left·Backspace·Return 접근성 편집기 값에서 정확한 결과 확인. 붙여넣기/값 직접 설정을 사용하지 않음
VS Code, 수정된 글가드 한글 시스템 설정에서 QA 입력기를 추가한 뒤 실제 키 이벤트로 조합·삭제 안녕하세요, 가 100개, 읽어 앉아 없어 느낌 쓰, Backspace 가→ㄱ, Option+Backspace 단어 삭제 확인
VS Code, ABC↔글가드 전환 CLI로 입력 소스를 선택한 뒤 같은 창에서 입력 API의 현재 소스와 창의 조합 결과가 불일치. 전면 창에서의 전환 검증은 보류
Warp·Ghostty·Terminal 각 앱에 컴퓨터 제어 접근 시도 도구의 안전 정책이 접근을 차단. 우회하거나 통과로 기록하지 않음
SSH 대상 서버·셸 확인 요청 실제 SSH 세션 검증 미수행
Telegram 12.10, macOS 27.0 (26A428), 실험실 설정 켬 사용자가 로컬 개발 빌드로 직접 입력 조합 중 Enter 1회 전송, 겹받침 단어, 조합 중 Backspace(간→가→ㄱ→삭제), 전송 직후 연속 입력, 클릭·붙여넣기 후 입력, Shift+Enter 개행, 다른 앱 기존 동작 확인

VS Code에서 관찰한 최종 문자열은 다음과 같다.

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

이는 개별 keyDown/keyUp 입력의 확인이며 물리 키를 누르고 있을 때의 OS 자동 반복이나 지연 시간 측정은 아니다. Electron 전체 앱의 호환성을 보증하지 않는다.

추가 한글 검증 근거

초기 TISSelectInputSource = -50은 시스템 설정의 입력 소스 추가 절차를 거친 뒤 0으로 바뀌었다. 이후 새 VS Code 문서에서 개별 키 이벤트로 한글 조합을 확인했다. 가 100개와 겹받침 문장이 접근성 값에 정확히 포함되는지도 검사했다. 검증용 앱은 배포 ZIP에서 복사하고 별도 ID로 재서명했다. 서명 제거 후 두 실행 파일이 바이트 단위로 같음을 확인했다. 해당 코드 SHA-256: 1ff44eb411c6b9d8eeb5db41114c5bd0633aa14ce04ce1f17eb37b0e5054f5e9.

남은 확인

수정본 설치·입력 소스 선택이 가능한 세션에서 각 터미널의 로컬 셸과 SSH 셸, Electron 편집기에 동일한 조합·삭제·이동·ABC 전환 시나리오를 수행해야 한다. 특히 SSH 검증은 전송된 문자열뿐 아니라 로컬 터미널의 조합 표시와 커서 위치도 확인해야 한다. 전면 창에서의 입력 소스 전환은 아직 검증하지 못했다.

텔레그램 실험실 설정은 번들 ID 기준으로 앱 전체에 적용된다. 검색창, 프로필·그룹 이름 수정, 미디어 캡션의 조합·삭제·선택 영역 교체·실행 취소는 아직 검증하지 못했다. 위 채팅 입력 검증 결과를 이 입력란의 호환성 근거로 사용하지 않는다.