키보드 입력 감지와 하드웨어 진단
Keyboard Test는 사용자가 키보드의 물리적 작동 상태를 점검하고, 각 키를 누를 때 발생하는 내부적인 기술 이벤트 코드를 정밀하게 검사할 수 있는 무료 온라인 도구입니다. 웹 페이지의 아무 곳이나 클릭하고 키를 입력하면 키가 정상적으로 인식되는지 즉시 확인할 수 있으며, 테스트를 마친 키들이 시각적으로 표시되는 키보드 맵, 현재 누르고 있는 키 상태, 그리고 상세한 이벤트 로그가 실시간으로 제공됩니다. 이 도구를 활용하면 시스템의 자동 반복 기능과 같은 정상적인 하드웨어 동작과, 특정 키가 작동하지 않는 데드 키(Dead Key) 현상 또는 한 번 눌렀을 때 두 번 입력되는 스위치 불량(더블 클릭) 등의 실제 하드웨어 결함을 명확하게 구분할 수 있습니다.
이 도구는 다음과 같은 상황에서 유용하게 활용됩니다:
- 하드웨어 문제 해결: 키보드 고장이 의심될 때 데드 키, 마모된 스위치, 또는 한 번 눌렀을 때 중복 입력되는 현상을 진단하고자 하는 사용자.
- 웹 및 게임 개발: 다양한 물리적 키, 자판 배열, 조합 키가 브라우저에서
key,code, 그리고 기존keyCode와 같은 JavaScript 이벤트 속성에 어떻게 매핑되는지 검증하려는 개발자. - 모바일 기기 테스트: 모바일 운영체제에서 가상 키보드, 화면 키보드 또는 외장 블루투스 키보드가 어떻게 동작하고 입력을 보고하는지 확인하려는 사용자.
- 키보드 커스텀: 새로 제작하거나 키 매핑을 변경한 키보드, 혹은 개조한 키보드의 모든 스위치가 의존하는 배열 위치에서 정상적으로 작동하는지 테스트하려는 사용자.
입력 및 제어 방법
Keyboard Test는 다양한 방식의 키 입력을 자동으로 감지하고 처리합니다:
- 물리적 키 입력: 페이지 내 임의의 위치에서 키보드를 누르면 자동으로 입력이 감지됩니다.
- 전체 감지 모드: 화면에 표시된 키보드 맵을 직접 클릭하면 전체 감지 상태가 활성화됩니다. 이 모드에서는 Space, Tab, 기능 키 등을 누를 때 브라우저의 기본 동작이 실행되지 않도록 차단하면서 순수하게 키 입력을 테스트할 수 있습니다. 이 모드는 Esc 키를 누르면 해제됩니다.
- 화면 키보드 입력: 모바일 기기나 가상 키보드를 테스트하기 위해 마련된 전용 입력 필드에 텍스트를 직접 타이핑하여 테스트할 수 있습니다.
- 로그 지우기 명령: "로그 지우기" 버튼을 수동으로 클릭하여 기록된 이벤트 내역을 언제든지 초기화할 수 있습니다.
출력 정보 및 상태 표시
키를 입력하면 화면에 다음과 같은 정보가 실시간으로 업데이트됩니다:
최근 키 이벤트 (Latest key event)
가장 최근에 입력된 키의 세부 속성을 보여줍니다:
- Key 및 코드 (Code)
- 기존 keyCode
- 위치: 키의 물리적 위치에 따라 "기본", "왼쪽", "오른쪽", "숫자 패드"로 표시됩니다.
- 조합 키: 활성화된 조합 키 상태를 보여주며, 없을 경우 "없음", 있을 경우 "Shift", "Ctrl", "Alt", "Meta", "Caps Lock"이 표시됩니다.
- 이벤트 상태 및 반복 배지: 키를 누르고 있을 때 "누름" 또는 "떼기" 상태 배지와 함께 자동 반복 횟수를 누적하여 보여주는 "반복 ×
{count}" 배지가 표시됩니다.
키보드 맵 및 통계
시각적인 ANSI 레이아웃 맵을 통해 키의 상태를 직관적으로 확인할 수 있습니다:
- 누름: 현재 누르고 있는 키를 표시합니다.
- 테스트 완료: 한 번이라도 입력이 감지된 키를 기록합니다.
- 통계 데이터: "테스트한 키", "총 누름 횟수", "현재 누름" 상태의 키 개수를 실시간으로 집계하여 보여줍니다.
이벤트 로그 (Event log)
키 입력의 이력을 테이블 형태로 기록합니다. 기록이 없을 때는 "아직 키 이벤트가 없습니다. 아무 키나 누르세요."라는 메시지가 표시되며, 입력이 시작되면 "이벤트 로그"라는 제목 아래에 다음 정보가 기록됩니다:
- 시간
- 이벤트 ("누름" 또는 "뗌"으로 표시)
- Key
- 코드
- 조합 키
키를 계속 누르고 있을 때 발생하는 시스템 자동 반복 이벤트는 최근 키 이벤트 영역의 반복 배지 카운트만 증가시키며, 이벤트 로그 테이블에는 개별 행으로 추가되지 않습니다.
감지 상태 표시기
현재 도구의 작동 상태를 다음과 같이 직관적으로 안내합니다:
- "시작하려면 아무 키나 누르세요"
- "키 입력 감지 중"
- "전체 감지 중 — Esc를 누르면 키보드가 해제됩니다"
기술적 규칙 및 예외 케이스
브라우저 및 OS 단축키 차단
웹 브라우저나 운영체제(OS)가 자체적으로 예약하여 사용하는 단축키(예: 탭 전환, 창 닫기, 전체 화면 전환, 시스템 검색 등)는 웹 페이지에 도달하기 전에 시스템 수준에서 먼저 가로채기 때문에 이 도구에 등록되지 않습니다. 이러한 키들의 작동 여부를 확인하려면 해당 조합 키를 동시에 누르지 말고, 각각의 키를 하나씩 개별적으로 입력하여 작동 여부를 검증해야 합니다.
Key 값과 Code 값의 차이
- Key 값: 사용자의 운영체제 언어 설정이나 조합 키(Shift 등)의 활성화 상태에 따라 동적으로 변합니다. 예를 들어 동일한 물리적 키를 누르더라도 입력 상태에 따라 "a" 또는 "A"로 다르게 출력됩니다.
- Code 값: 키보드 상의 물리적인 위치를 나타내는 고유한 정적 값입니다. 예를 들어 "KeyA", "ShiftLeft", "Space" 등은 언어 설정이나 조합 키 상태와 관계없이 항상 동일하게 유지됩니다.
모바일 및 가상 키보드의 특성
가상 키보드(특히 Android 환경)는 물리적 키보드와 달리 구체적인 키 값을 전송하지 않고 일반적인 입력 이벤트만 발생시키는 경우가 많습니다. 이로 인해 입력 정보가 "Unidentified"로 표시될 수 있습니다. 모바일 기기 환경을 정확히 테스트하려면 하단에 마련된 "화면 키보드 확인" 영역의 입력창("여기를 누르고 타이핑하세요...")을 터치한 후 타이핑을 진행해야 하며, 이때 "입력창을 누르고 타이핑하세요. 브라우저가 보고하는 모든 내용이 위에 표시됩니다."라는 안내에 따라 브라우저가 전달하는 입력 이벤트를 정상적으로 포착할 수 있습니다.
키보드 배열의 제한 사항
화면에 표시되는 시각적 맵은 표준 풀사이즈 ANSI 배열로 고정되어 있습니다. 따라서 ISO 표준 전용 키, 노트북의 Fn 레이어 키, 별도의 미디어 제어 키 등 ANSI 배열에 존재하지 않는 키들은 키보드 맵 상에서 불이 들어오지 않습니다. 하지만 이러한 키들도 물리적으로 정상 작동한다면 "최근 키 이벤트" 정보 창과 "이벤트 로그"에는 정상적으로 기록되고 표시됩니다.
개인정보 보호 및 데이터 처리
이 도구를 사용할 때 입력하는 모든 키 입력 정보는 외부 서버로 전송되지 않으며, 오직 사용자의 웹 브라우저 내에서만 로컬로 처리됩니다. 화면에 표시되는 이벤트 세부 정보와 로그는 현재 열려 있는 웹 페이지 내에서만 일시적으로 유지됩니다. 사용자가 "로그 지우기" 버튼을 누르거나, 브라우저 탭을 닫거나, 페이지를 새로고침하면 기록된 모든 데이터는 영구적으로 즉시 삭제됩니다.
자주 묻는 질문 (FAQ)
Q: key 값과 code 값의 차이점은 무엇인가요?
A: key 값은 현재 누른 키가 생성하는 문자나 동작을 나타냅니다. 이는 자판 배열과 조합 키에 따라 달라지므로, 동일한 물리적 키라도 입력 상태에 따라 "a" 또는 "A"로 보고되거나 다른 언어 배열에서는 완전히 다른 문자로 보고됩니다. 반면 code 값은 물리적 위치(KeyA, ShiftLeft, Space)를 나타내며 절대 변하지 않습니다. 이 때문에 게임이나 앱에서 단축키를 지정할 때 code 값을 사용합니다.
Q: 일부 단축키 조합이 표시되지 않는 이유는 무엇인가요?
A: 브라우저나 운영체제에서 예약한 단축키(탭 및 앱 닫기 또는 전환, 전체 화면, 시스템 검색 등)는 페이지에 도달하기 전에 가로채기 때문에 여기에 표시되지 않습니다. 이러한 무반응은 정상적인 현상이며 키가 고장 난 것이 아닙니다. 해당 키들을 하나씩 따로 테스트해 보면 각각 정상적으로 인식됩니다.
Q: 키를 누르고 있는 동안 계속 입력되는데 고장인가요?
A: 아닙니다. 키를 누르고 있으면 시스템에서 반복적인 누름 이벤트를 전송하며, 이는 여기에서 Repeat 배지와 카운터로 표시되는 정상적인 자동 반복 현상입니다. 진짜 고장 신호는 이와 반대되는 패턴입니다. 즉, 한 번 가볍게 눌렀는데 여러 이벤트가 발생하거나, 눌렀는데도 아무 이벤트가 발생하지 않는 경우이며, 이는 스위치가 마모되었거나 걸려 있음을 나타냅니다.
Q: 휴대폰 키보드에서 "Unidentified"가 표시되는 이유는 무엇인가요?
A: 화면 키보드(특히 Android)는 실제 key 값 없이 일반적인 이벤트를 보내는 경우가 많으며, 페이지는 브라우저가 보고하는 내용만 표시할 수 있습니다. 자판 배열 아래에 있는 화면 키보드 확인 영역을 열어 키보드가 실제로 무엇을 전송하는지 확인해 보세요. 외장 키보드나 노트북 키보드는 모든 세부 정보를 정상적으로 보고합니다.