개발/Visual Studio Code

커맨드 팔레트 51부: 두 단계 Chord의 입력 경계와 충돌 수 확인

VS CODE 초보자 시리즈 · 커맨드 팔레트 51부

두 단계 Chord의 입력 경계 확인하기

Define Keybinding 창에서 두 조합의 공백·chord to·기존 명령 수를 확인하고 저장 없이 닫습니다.

ctrl+k ctrl+c의 공백과 화면의 chord to가 같은 두 단계 경계임을 확인합니다.

기존 명령 수를 읽은 뒤 Escape 두 번으로 User 키 바인딩 변경 0건을 검증합니다.

1. 시작하기 전에

초보자가 실제 단축키를 바꾸기 전에 두 단계 Chord가 어디서 나뉘고 충돌 후보가 몇 개인지 읽는 관찰 실습입니다.

준비할 것

  • VS Code Stable 1.138.0 — Help: About에서 확인
  • Windows 11과 현재 키보드 레이아웃 — 작업 표시줄 입력 언어에서 확인
  • User keybindings.json 백업 — Preferences: Open Keyboard Shortcuts (JSON)에서 확인

적용 환경 2026-09-19 · Windows 11 · VS Code Stable 1.138.0 · 기본 영어 UI 관찰본

안전하게 시작하기 Enter는 선택한 명령의 키 바인딩을 실제 변경할 수 있습니다. 이 실습에서는 Enter를 누르지 않습니다. 중단 조건: 기존 User override 또는 백업 부재를 발견하면 입력 전에 중단합니다.

2. 알아둘 핵심 개념

FACT · Chord

두 번의 별도 키 입력으로 이루어진 단축키입니다. 공식 문서는 JSON key 문자열에서 두 조합을 공백으로 구분한다고 설명합니다.

FACT · chord to와 기존 명령 수

chord to는 두 키 조합의 시각적 경계입니다. 기존 명령 수는 현재 기본·확장·User 규칙 중 정확히 같은 키 바인딩을 가진 항목 수이며 실제 우선순위 결론은 아닙니다.

PROCEDURE · 취소 경계

기록 뒤 첫 Escape는 입력을 비우고, 빈 상태의 둘째 Escape는 창을 닫아 null 취소를 반환합니다.

UNCONFIRMED · 환경 차이

다른 레이아웃·IME·확장 집합에서는 표시 라벨과 기존 명령 수가 달라질 수 있습니다. 숫자 3을 독자 환경의 고정값으로 가정하지 않습니다.

3. 순서대로 진행하기

각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다.

1. 현재 상태 보호하기

목적 실수 저장 시 되돌릴 기준을 만든다.

주의·되돌리기 Enter는 누르지 않습니다. 변경하지 않고 닫고 백업을 확인한 뒤 STEP-01로 돌아온다.
  1. Command Palette에서 Preferences: Open Keyboard Shortcuts (JSON)을 열고 현재 내용을 안전한 위치에 복사한다.

입력 위치 User keybindings JSON 편집기

백업 사본
정상 결과 백업과 원본이 동일하다.

확인 두 파일의 텍스트를 비교한다.

실패 신호 기존 User 규칙을 구분하지 못한다.

복구와 재합류 변경하지 않고 닫고 백업을 확인한 뒤 STEP-01로 돌아온다.

2. Keyboard Shortcuts 편집기 열기

목적 키 바인딩 목록에서 실습 명령을 찾을 화면을 연다.

주의·되돌리기 Enter는 누르지 않습니다. Command Palette에서 Preferences: Open Keyboard Shortcuts를 실행하고 STEP-03으로 간다.
  1. Ctrl+K를 누른 뒤 손을 놓고 Ctrl+S를 누른다.

입력 위치 VS Code 작업 창

Ctrl+K Ctrl+S
정상 결과 Keyboard Shortcuts 탭과 검색 상자가 열린다.

확인 탭 제목과 검색 상자를 확인한다.

실패 신호 다른 명령이 실행되거나 탭이 열리지 않는다.

복구와 재합류 Command Palette에서 Preferences: Open Keyboard Shortcuts를 실행하고 STEP-03으로 간다.

3. Add Line Comment만 찾기

목적 이미 Chord를 가진 안전한 관찰 대상을 한 행으로 좁힌다.

주의·되돌리기 Enter는 누르지 않습니다. 필터를 지우고 정확한 command ID를 다시 입력한 뒤 STEP-03에 재합류한다.
  1. 검색 상자에 @command:editor.action.addCommentLine을 입력한다.

입력 위치 Keyboard Shortcuts 검색 상자

@command:editor.action.addCommentLine
정상 결과 Add Line Comment 행과 Ctrl+K Ctrl+C가 보인다.

확인 Command·Keybinding·Source 열을 확인한다.

실패 신호 결과가 없거나 여러 무관한 행이 보인다.

복구와 재합류 필터를 지우고 정확한 command ID를 다시 입력한 뒤 STEP-03에 재합류한다.

4. Define Keybinding 창 열기

목적 실제 저장 전의 키 입력 관찰 창을 연다.

주의·되돌리기 Enter는 누르지 않습니다. 행의 연필 아이콘 또는 컨텍스트 메뉴 Change Keybinding을 사용해 STEP-04에 재합류한다.
  1. Add Line Comment 행을 더블클릭한다.

입력 위치 Keyboard Shortcuts 결과 행

더블클릭
정상 결과 Press desired key combination 안내 창이 열린다.

확인 빈 입력 상자와 안내문을 확인한다.

실패 신호 행이 선택만 되거나 창이 열리지 않는다.

복구와 재합류 행의 연필 아이콘 또는 컨텍스트 메뉴 Change Keybinding을 사용해 STEP-04에 재합류한다.

5. 첫 조합 Ctrl+K 기록하기

목적 Chord의 첫 경계와 접두사 충돌 수를 관찰한다.

주의·되돌리기 Enter는 누르지 않습니다. Escape로 중단하고 창 포커스를 확인한 뒤 STEP-04부터 다시 한다.
  1. Ctrl+K를 한 번 누르고 두 키에서 손을 뗀다.

입력 위치 Define Keybinding 입력 상자

ctrl+k
정상 결과 입력 ctrl+k, Ctrl+K 키 캡, 기존 명령 수가 보인다.

확인 입력값과 키 캡을 각각 읽는다.

실패 신호 창이 닫히거나 다른 명령이 실행된다.

복구와 재합류 Escape로 중단하고 창 포커스를 확인한 뒤 STEP-04부터 다시 한다.

6. 둘째 조합 Ctrl+C 기록하기

목적 두 입력을 완성해 직렬화 경계를 확인한다.

주의·되돌리기 Enter는 누르지 않습니다. 첫 Escape로 비운 뒤 STEP-05부터 다시 한다.
  1. 첫 조합에서 손을 뗀 뒤 Ctrl+C를 누른다.

입력 위치 Define Keybinding 입력 상자

ctrl+k ctrl+c
정상 결과 ctrl+k ctrl+c와 Ctrl+K chord to Ctrl+C가 보인다.

확인 두 조합 사이 공백 하나와 chord to를 확인한다.

실패 신호 ctrl+k만 남거나 문자열이 붙어 있다.

복구와 재합류 첫 Escape로 비운 뒤 STEP-05부터 다시 한다.

7. 공백과 chord to 대응시키기

목적 저장 문자열과 화면 표시가 같은 경계를 뜻함을 이해한다.

주의·되돌리기 Enter는 누르지 않습니다. 공식 문서의 Chords 설명을 다시 읽고 STEP-06 결과로 재합류한다.
  1. 입력값의 공백과 키 캡 사이 chord to를 나란히 읽는다.

입력 위치 Define Keybinding 창 중앙

JSON: ctrl+k␠ctrl+c / UI: Ctrl+K chord to Ctrl+C
정상 결과 두 표현이 같은 두 단계 경계를 가리킨다고 설명할 수 있다.

확인 공백을 표시한 메모와 화면을 대조한다.

실패 신호 공백을 키 이름의 일부로 오해한다.

복구와 재합류 공식 문서의 Chords 설명을 다시 읽고 STEP-06 결과로 재합류한다.

8. 기존 명령 수 읽기

목적 같은 Chord 후보가 몇 개인지 변경 전에 확인한다.

주의·되돌리기 Enter는 누르지 않습니다. 확장·버전 차이를 기록한다. 숫자 3 일치는 요구하지 않고 안내 존재만 확인한 뒤 STEP-09로 간다.
  1. 창 아래 existing commands 안내를 읽고 숫자를 메모한다.

입력 위치 Define Keybinding 창 아래쪽

JCOS 격리 관찰: 3 existing commands
정상 결과 숫자와 keybinding 안내가 보인다.

확인 입력 ctrl+k ctrl+c가 유지된 상태에서 안내를 확인한다.

실패 신호 안내가 없거나 숫자가 예상과 다르다.

복구와 재합류 확장·버전 차이를 기록한다. 숫자 3 일치는 요구하지 않고 안내 존재만 확인한 뒤 STEP-09로 간다.

9. 첫 Escape로 기록 비우기

목적 저장하지 않고 현재 기록만 제거한다.

주의·되돌리기 Enter는 누르지 않습니다. 이미 빈 상태였는지 확인하고 STEP-04부터 다시 기록한다.
  1. Escape를 한 번 누른다.

입력 위치 Define Keybinding 창

Escape
정상 결과 입력·키 캡·기존 명령 안내는 비고 창은 남는다.

확인 빈 입력 상자와 열린 창을 확인한다.

실패 신호 창이 바로 닫힌다.

복구와 재합류 이미 빈 상태였는지 확인하고 STEP-04부터 다시 기록한다.

10. 둘째 Escape로 창 닫기

목적 null 취소로 변경 없이 목록에 돌아간다.

주의·되돌리기 Enter는 누르지 않습니다. 추가 입력을 중단하고 STEP-11의 독립 확인을 먼저 수행한다.
  1. 빈 상태에서 Escape를 다시 누른다.

입력 위치 Define Keybinding 창

Escape
정상 결과 창이 닫히고 Keyboard Shortcuts 목록이 보인다.

확인 오버레이가 사라졌는지 확인한다.

실패 신호 키 바인딩이 바뀌거나 입력 창이 남는다.

복구와 재합류 추가 입력을 중단하고 STEP-11의 독립 확인을 먼저 수행한다.

11. User 변경 0건 확인하기

목적 취소가 실제로 저장되지 않았음을 독립 확인한다.

주의·되돌리기 Enter는 누르지 않습니다. STEP-12 Rollback을 적용한 뒤 STEP-11을 다시 확인한다.
  1. 검색 상자에 @source:user @command:editor.action.addCommentLine을 입력하고 실습 전 상태와 비교한다.

입력 위치 Keyboard Shortcuts 검색 상자

@source:user @command:editor.action.addCommentLine
정상 결과 실습 전 User override가 없었다면 결과 0개다.

확인 필요하면 Open Keyboard Shortcuts (JSON)에서 백업과 비교한다.

실패 신호 새 User 행이나 바뀐 JSON이 보인다.

복구와 재합류 STEP-12 Rollback을 적용한 뒤 STEP-11을 다시 확인한다.

12. 실수 저장 Rollback

목적 Enter로 저장된 변경을 원래 상태로 복원한다.

주의·되돌리기 Enter는 누르지 않습니다. 추가 Reset을 중단하고 백업 전체를 복원한 뒤 STEP-11에 재합류한다.
  1. 기존 override가 없었을 때만 Reset Keybinding을 사용하고, 기존 override가 있었다면 백업 JSON을 복원한다.

입력 위치 대상 행 컨텍스트 메뉴 또는 User keybindings JSON

복구 기준: 실습 전 백업
정상 결과 User 상태가 실습 전과 동일하다.

확인 STEP-11 필터와 백업 비교를 다시 실행한다.

실패 신호 기존 사용자 지정까지 사라졌거나 차이가 남는다.

복구와 재합류 추가 Reset을 중단하고 백업 전체를 복원한 뒤 STEP-11에 재합류한다.

4. 완료 확인하기

입력 화면과 독립된 방법을 포함해 결과를 교차 확인합니다.

  • UI 확인 — 입력 ctrl+k ctrl+cCtrl+K chord to Ctrl+C가 함께 보였다.
  • 충돌 후보 확인 — 기존 명령 수 안내가 보였다. JCOS 격리 기본 환경의 관찰값은 3개다.
  • 취소 확인 — 첫 Escape는 비우기, 둘째 Escape는 닫기로 동작했다.
  • 독립 확인 — @source:user @command:editor.action.addCommentLine 결과와 백업이 실습 전과 같다.
완료 기준 두 입력의 경계를 설명할 수 있고 실제 User 키 바인딩 변경은 0건입니다.

5. 문제가 생겼다면

첫 입력 뒤 다른 명령이 실행됨

먼저 확인 Define Keybinding 창의 입력 포커스가 보였는지 확인합니다. 원인은 UNKNOWN일 수 있습니다.

복구 추가 입력을 중단하고 창을 다시 연 뒤 빈 입력 상자를 클릭합니다.

재합류 STEP-04

chord to가 보이지 않음

먼저 확인 첫 조합에서 손을 뗀 뒤 둘째 조합을 별도로 눌렀는지 확인합니다.

복구 Escape 한 번으로 비우고 두 조합을 다시 기록합니다.

재합류 STEP-05

기존 명령 수가 3이 아님

먼저 확인 VS Code 버전, 확장 사용 여부, User 규칙을 기록합니다.

복구 숫자 일치가 아니라 정확한 chord 문자열과 안내 존재를 확인합니다.

재합류 STEP-08

Enter를 눌러 실제 변경됨

먼저 확인 새 User 행과 백업을 비교하고 오류 원문을 보존합니다.

복구 기존 override가 없을 때만 Reset Keybinding을 사용합니다. 기존 override가 있었다면 백업 JSON을 복원합니다.

재합류 STEP-11

핵심 판단 원인을 확인하지 못하면 상태와 Evidence를 보존하고 추가 변경 없이 중단합니다.

6. 핵심 정리와 공식 자료

  • 두 단계 Chord는 JSON의 공백과 UI의 chord to로 경계가 보입니다.
  • 기존 명령 수는 충돌 후보 수이며 실행 우선순위 자체는 아닙니다.
  • Enter가 변경 경계이고 Escape 두 번으로 저장 없이 취소할 수 있습니다.

공식 자료

아래 자료는 2026-09-19 19:00 KST 기준으로 확인했습니다. UI 문자열과 개수는 버전·레이아웃·확장에 따라 달라질 수 있습니다.

다음 편 예고 같은 Chord의 기존 명령 목록을 열어 Source와 When을 비교하고 User/System 규칙을 구분합니다.
이 글이 유용했다면 링크를 공유해 보세요.