실시간 키 감지, 응답 시간 측정 및 키 매핑 시각화로 키보드 기능을 테스트합니다. 키보드 문제 진단에 완벽합니다.
Features
- 실시간 감지: 즉각적인 키 감지 및 시각적 피드백 제공
- 응답 시간: 키보드 응답 시간 측정 및 분석
- 키 기록: 모든 키 누름 및 타임스탬프의 상세 기록
- 키 매핑: 키 코드 및 물리적 키 식별자 표시
Usage Guide
- 1단계: 키보드 시각화 영역에 포커스하세요
- 2단계: 키보드의 아무 키나 눌러 테스트하세요
- 3단계: 통계 정보 및 기록을 확인하여 키보드 기능을 검증하세요
Technical Details
키보드 이벤트 처리
키보드 테스트는 KeyboardEvent 인터페이스를 사용하여 브라우저 키보드 이벤트(keydown, keyup, keypress)를 캡처합니다. 각 이벤트는 키(문자 값 예: 'a', '입력'), code(물리적 키 식별자 예: 'KeyA', '입력'), keyCode(더 이상 사용되지 않는 숫자 코드), location(표준, 왼쪽, 오른쪽, 숫자 키패드), 수정자 키 상태(Ctrl, Alt, Shift, Meta)를 제공합니다. 테스트는 keydown(누름), keyup(놓음)을 모니터링하고 키 누름 지속 시간을 계산합니다. 현대 브라우저는 물리적 키 위치(레이아웃 간 일관됨)를 나타내는 code와 논리적 문자(언어/레이아웃에 따라 다름)를 나타내는 키를 사용합니다.
응답 시간 측정
응답 시간 측정은 JavaScript 타임스탬프(밀리초 정밀도의 Date.now(), 마이크로초 정밀도의 performance.now())를 사용하여 연속 키 누름 간의 시간 간격을 측정합니다. 메트릭에는 키 간 시간(타이핑 속도 지표), 평균 간격(일관된 타이핑 리듬), 최소 간격(가장 빠른 입력, 키보드 스캔율 테스트), 표준 편차(일관성 측정)가 포함됩니다. 일반적인 기계식 키보드 스캔율: 1000Hz(1ms 폴링, 게이밍 키보드), 125Hz(8ms 폴링, 표준 키보드), 500Hz(2ms 폴링, 중급). 응답 시간 구성: 하드웨어 대기 시간(키보드 스캔 + USB 폴링), 운영 체제 입력 처리(드라이버 및 시스템 처리), 브라우저 이벤트 디스패치(JavaScript 이벤트 루프), 렌더링 대기 시간(DOM 업데이트 및 페인트).
키 매핑 및 호환성
키 매핑은 물리적 키보드 레이아웃을 식별하고 다양한 구성의 기능을 테스트합니다. 일반적인 레이아웃: QWERTY(영어 표준), AZERTY(프랑스어), QWERTZ(독일어), Dvorak(인체공학적 대안), Colemak(최적화된 레이아웃). 테스트 검증: 모든 키가 올바르게 등록됨, 수정자 키 조합 작동(Ctrl+C, Alt+F4), 기능 키 응답(F1-F12), 특수 키 기능(미디어 제어, 밝기), 숫자 키패드 작동(있는 경우). code 속성은 일관된 물리적 식별 제공: 'KeyA'는 레이아웃이나 언어에 관계없이 항상 동일한 물리적 키를 가리킵니다.
Frequently Asked Questions
- 키보드의 모든 키가 제대로 작동하는지 테스트하려면 어떻게 해야 하나요?
- 키보드의 각 키를 누르고 도구가 실시간으로 키 정보를 표시하는지 관찰합니다. 일반적으로 키를 누르면 화면에 즉시 강조 표시되고 놓으면 강조 표시가 사라집니다. 키를 눌렀을 때 반응이 없거나 놓은 후에도 강조 표시가 유지되면 해당 키에 문제가 있을 수 있습니다.
- 키보드 고스팅(Ghosting)이란 무엇인가요?
- 키보드 고스팅은 여러 키를 동시에 누를 때 실제로 누르지 않은 다른 키를 시스템이 감지하는 현상입니다. 일반적으로 3개 이상의 키를 동시에 누를 때 발생합니다. 테스트 방법: 여러 키 조합을 동시에 눌러보세요(게임에서 자주 사용하는 WASD+Shift+Space 등). 누르지 않은 키가 감지되는지 관찰합니다.
- 키보드의 N-키 Rollover 기능을 테스트하려면 어떻게 해야 하나요?
- N-키 Rollover는 키보드가 동시에 인식할 수 있는 키의 수를 나타냅니다. 테스트 방법: 여러 키를 동시에 누르고 얼마나 많은 키가 올바르게 식별되는지 관찰합니다. 고급 게이밍 키보드는 일반적으로 Full N-키 Rollover를 지원하지만 일반 키보드는 6키 이하만 지원할 수 있습니다.
- KeyboardEvent.code와 KeyboardEvent.키의 차이는 무엇인가요?
- KeyboardEvent.code는 물리적 키 위치(예: 'KeyA')를 나타내며 키보드 레이아웃의 영향을 받지 않습니다. KeyboardEvent.키는 키의 논리적 값(예: 'a' 또는 'A')을 나타내며 Shift, Caps Lock 등의 수정자 키의 영향을 받습니다. 예를 들어 물리적 A 키를 누르면 code는 항상 'KeyA'이지만 키는 'a' 또는 'A'일 수 있습니다.
- 특정 키 조합을 누르면 브라우저가 다른 작업을 실행하는 이유는 무엇인가요?
- 일부 키 조합은 Ctrl+W(탭 닫기), Ctrl+T(새 탭), F11(전체 화면) 등과 같은 브라우저 또는 운영 체제 단축키입니다. 이러한 단축키는 시스템에 의해 가로채지며 테스트 도구에서 정상적으로 표시되지 않을 수 있습니다. 이는 정상적인 동작이며 키보드 문제를 나타내지 않습니다.
- 키보드 응답 속도가 충분히 빠른지 어떻게 판단할 수 있나요?
- 도구는 각 키 누름의 타임스탬프와 키 누름 간격을 표시합니다. 우수한 키보드 응답 시간은 1-5밀리초 사이여야 합니다. 응답 시간이 자주 10밀리초를 초과하거나 키 누름 간격이 불안정한 경우 키보드에 지연 또는 연결 문제가 있을 수 있습니다. 기계식 키보드는 일반적으로 멤브레인 키보드보다 빠르게 응답합니다.
Related Documentation
- MDN - KeyboardEvent - 키보드 이벤트 인터페이스 문서
- MDN - KeyboardEvent.code - 물리적 키 코드 값
- MDN - KeyboardEvent.키 - 논리적 키 값
- W3C - UI 이벤트 KeyboardEvent - 키보드 이벤트 사양
- USB HID Usage Tables - 물리적 키보드 스캔 코드