던스커버리 | Dawnscovery

키보드 테스트

키를 하나씩 눌러 보면 눌린 키가 화면 키보드에 표시되고, 뗀 뒤에는 확인됨으로 남습니다. 채터링(한 번 눌렀는데 두 번 입력)과 동시 입력 개수도 함께 셉니다.

판정은 전부 사용자 PC 브라우저 안에서 이루어집니다. 누른 키가 서버로 전송되지 않고 저장되지도 않습니다. 새로고침하면 기록이 모두 사라집니다. 다만 화면에 눌린 키가 그대로 보이므로 실제 비밀번호를 입력해 시험하지는 마세요.

키캡 표시

이 영역을 한 번 클릭하면 브라우저 단축키를 막고 키를 잡습니다.

Esc Esc F1 F1 F2 F2 F3 F3 F4 F4 F5 F5 F6 F6 F7 F7 F8 F8 F9 F9 F10 F10 F11 F11 F12 F12
PrtSc PrtSc ScrLk ScrLk Pause Pause
` ` 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 0 0 - - = = Backspace Backspace
Ins Ins Home Home PgUp PgUp
Num Num / / * * - -
Tab Tab Q W E R T Y U I O P [ [ ] ] \ \
Del Del End End PgDn PgDn
7 7 8 8 9 9 + +
Caps Caps A S D F G H J K L ; ; ' ' Enter Enter
4 4 5 5 6 6
Shift Shift Z X C V B N M , , . . / / Shift Shift
1 1 2 2 3 3 Enter Enter
Ctrl Ctrl Win Win Alt Alt Space Space Alt Alt Win Win Menu Menu Ctrl Ctrl
0 0 . .
한국어 키보드 전용 한/영 한/영 한자 한자

event.key

event.code (물리 키)

keyCode (옛 규격)

직전 같은 키와의 간격

확인된 키

0 / 104

최대 동시 입력 (NKRO)

0개

채터링 의심 (50ms 미만)

0회

지금 눌린 키 — 없음

아직 채터링으로 의심되는 입력이 없습니다.

이 도구가 확인하는 것

키보드 고장은 크게 세 종류입니다. 아예 입력이 안 들어오는 키, 한 번 눌렀는데 두 번 이상 들어오는 채터링, 여러 키를 함께 눌렀을 때 일부가 씹히는 동시 입력 문제입니다. 이 페이지는 셋을 한 화면에서 봅니다.

키를 맞출 때는 event.key가 아니라 event.code를 씁니다. key는 실제로 입력된 글자라서 한글 입력 상태이거나 Shift가 눌려 있으면 값이 바뀌지만, code는 키보드에서의 물리적 위치라서 자판 배열과 IME 상태에 영향을 받지 않습니다. 한국어 사용자가 한글 상태로 이 페이지를 열어도 화면 키보드가 정확히 불이 들어오는 이유입니다.

의미 한글 상태에서 Q 자리를 눌렀을 때
event.code 물리적인 키 위치. 배열과 IME에 흔들리지 않습니다 KeyQ
event.key 실제로 만들어진 글자나 기능 이름 Process 또는
event.keyCode 폐기 예정인 옛 규격. 아직 많은 코드가 참조합니다 229 (IME가 처리 중이라는 뜻)

채터링은 왜 생기나

기계식 스위치는 금속 접점 두 조각이 붙었다 떨어지는 구조입니다. 그런데 금속은 처음 닿는 순간 딱 붙지 않고 아주 짧게 여러 번 튑니다. 유리컵을 식탁에 내려놓을 때 또르르 하고 몇 번 더 흔들리는 것과 같은 현상이고, 이걸 바운스라고 부릅니다.

그래서 키보드 컨트롤러는 접점 신호가 바뀐 뒤 일정 시간 동안 추가 변화를 아예 무시합니다. 이 대기 시간이 디바운스 시간이고 보통 5ms 안팎으로 잡혀 있습니다. 새 스위치의 바운스는 1~2ms라서 이 창 안에 충분히 가려집니다.

문제는 시간이 지나면서 생깁니다. 접점 표면에 산화막이 끼고, 먼지와 손기름이 들어가고, 금속 다리가 반복 하중으로 피로해지면 접점이 깔끔하게 붙지 않아 바운스가 길어집니다. 바운스가 5ms를 넘어가는 순간 디바운스 창 바깥에서 신호가 다시 튀고, 컨트롤러는 이걸 손을 뗐다가 다시 눌렀다고 해석합니다. ㄱ을 한 번 쳤는데 ㄱㄱ이 나오는 그 증상입니다.

스위치 노후 말고도 원인이 몇 가지 더 있습니다.

50ms 기준은 어디서 나왔나

사람이 같은 손가락으로 같은 키를 연속해서 두 번 누를 때, 두 입력 사이 간격은 대체로 80~120ms입니다. 아주 빠른 연타에 익숙한 사람도 60ms 아래로는 잘 내려가지 않습니다. 반대로 스위치 바운스가 만들어 내는 가짜 입력은 1~30ms 구간에 몰립니다.

두 분포 사이에 비어 있는 구간이 있고, 그 가운데를 자른 값이 50ms입니다. 즉 50ms보다 짧은 간격은 사람 손가락으로는 만들 수 없는 간격이라 기계 쪽 문제로 보는 것입니다.

같은 키의 연속 입력 간격 해석
0~10ms 스위치 바운스. 채터링이 거의 확실합니다
10~50ms 채터링 의심. 같은 키에서 반복되면 실제 문제입니다
50~120ms 아주 빠른 연타. 정상 범위입니다
120ms 이상 평범한 타이핑 속도입니다

다만 이 숫자를 계측기처럼 믿으면 안 됩니다. 한계가 분명합니다.

그래서 이 도구는 확진이 아니라 의심까지만 말합니다. 한두 번 뜬 것은 무시해도 되고, 같은 키에서 반복해서, 그리고 평소 타이핑 도중에 계속 뜬다면 그때 실제 채터링으로 보시면 됩니다. 천천히 또박또박 누르면 잘 안 나오니, 평소 속도로 문장을 치거나 의심되는 키를 20~30회 빠르게 두들겨 보는 편이 확인에 유리합니다.

고스팅과 NKRO

키보드는 키마다 선을 따로 뽑지 않습니다. 그러면 104개 키에 104가닥이 필요합니다. 대신 가로줄과 세로줄이 교차하는 격자를 만들고 교차점마다 스위치를 놓습니다. 8줄 × 16줄이면 24가닥으로 128개 키를 읽을 수 있습니다.

대신 부작용이 있습니다. 격자에서 어떤 사각형의 세 꼭짓점이 동시에 눌리면, 전류가 눌린 스위치들을 빙 돌아 네 번째 꼭짓점까지 흘러갑니다. 컨트롤러는 누르지도 않은 네 번째 키가 눌렸다고 읽습니다. 이게 원래 의미의 고스팅, 유령 입력입니다.

요즘 키보드는 스위치마다 다이오드를 하나씩 달아 전류를 한 방향으로만 흘려서 이 우회로를 끊습니다. 그래서 진짜 유령 입력은 거의 사라졌고, 대신 동시에 누른 키 중 일부가 아예 무시되는 현상이 남았습니다. 정확히는 블로킹이나 재밍이라고 부르지만, 실사용에서는 이것까지 뭉뚱그려 고스팅이라고 부릅니다.

여기에 규격 문제가 하나 더 겹칩니다. USB 표준 키보드가 한 번에 보내는 보고서에는 Ctrl·Shift·Alt·Win 같은 조합키 8종과 일반 키 6개 자리밖에 없습니다. 그래서 대부분의 키보드는 일반 키를 6개까지만 동시에 전달합니다. 이걸 6KRO라고 합니다. 제한 없이 전부 보내려면 별도 방식으로 보고서를 쪼개 보내야 하고, 그게 NKRO입니다.

구분 동시 인식 실제 체감
2~3키 제한 (저가 멤브레인) 조합에 따라 2~3개 이동하면서 점프하면 점프가 씹힙니다
6KRO (USB 표준) 일반 키 6개 + 조합키 별도 조합키가 자리를 안 잡아먹어 Ctrl+Shift와 함께면 사실상 8개 이상입니다
NKRO 제한 없음 손가락 열 개를 다 올려도 전부 인식됩니다

게임에서 이게 왜 중요하냐면, FPS에서는 전진(W)과 좌측 이동(A)에 달리기 (Shift), 웅크리기(Ctrl), 스킬(Q), 점프(Space)가 한꺼번에 겹칩니다. 다행히 Shift와 Ctrl은 조합키라 6개 정원을 쓰지 않기 때문에 6KRO로도 대개 버팁니다. 그러나 리듬게임이나 격투게임처럼 일반 키만 여섯 개를 넘겨 잡는 장르에서는 6KRO에서도 입력이 사라지고, 2~3키 제한 키보드는 평범한 이동+점프 조합에서 이미 문제가 납니다.

위의 최대 동시 입력 숫자는 브라우저까지 도달한 키의 개수입니다. 키보드 자체의 성능과 완전히 같지는 않습니다. 아래에서 설명하듯 운영체제가 먼저 삼키는 키는 애초에 세어지지 않기 때문입니다. 손가락을 하나씩 늘려 가며 올려 두고 숫자가 어디서 멈추는지 보시면 됩니다.

브라우저가 못 받는 키가 있는 이유

웹페이지는 운영체제와 브라우저 다음 순서로 키를 받습니다. 앞 순서에서 누가 먼저 가져가 버리면 페이지에는 아무것도 오지 않습니다. 아래 키들이 안 잡히는 것은 키보드 고장이 아니라 설계상 정상입니다.

이 페이지는 초점이 테스트 영역에 있는 동안 기본 동작을 막아 스페이스로 스크롤되거나 백스페이스로 뒤로 가지 않게 합니다. 다만 Ctrl·Alt·Cmd를 함께 누른 조합은 일부러 막지 않습니다. 새로고침이나 탭 닫기 같은 브라우저 기능까지 잠기면 페이지에 갇힌 느낌이 들기 때문입니다. 가로채기를 풀고 싶으면 Esc를 연속으로 두 번 누르시면 됩니다.

F11은 브라우저 전체화면 단축키라 평소에는 페이지로 오지 않습니다. 위의 전체화면으로 테스트 버튼으로 들어가면 브라우저가 F11을 페이지로 넘겨주는 경우가 있어 확인할 여지가 생깁니다. 그래도 안 잡힌다면 브라우저가 붙잡고 있는 것이니 키보드 문제로 보실 필요는 없습니다.

키가 안 눌릴 때 손보는 순서

비용과 위험이 낮은 것부터 올라갑니다. 순서를 건너뛰고 스위치부터 뜯으면, 알고 보니 케이블 문제였던 경우가 흔합니다.

순서 할 일 이걸로 해결되는 경우
1. 연결 바꾸기 다른 USB 포트, 허브 빼고 본체 직결, 다른 PC에 연결. 무선이면 배터리 교체와 동글 위치 변경 여러 키가 동시에 이상하거나 증상이 불규칙할 때
2. 소프트웨어 확인 Windows 접근성의 필터 키 끄기, 제조사 소프트웨어의 키 잠금과 매크로 프로파일 해제, 게임 모드의 Win 키 잠금 확인 특정 키만, 특정 프로그램에서만 안 먹을 때
3. 먼지 털기 전원을 뽑고 키보드를 45도로 세워 압축 공기나 붓으로 틈을 쓸어 냄 눌리는 느낌이 뻑뻑하거나 최근에 뭘 흘린 뒤부터일 때
4. 키캡 빼고 청소 키캡 풀러로 뽑고 스위치 주변을 면봉과 이소프로필 알코올로 닦음. 키캡은 따로 미온수에 중성세제 한두 키만 눌림이 이상할 때
5. 접점 세척 스위치 하우징 틈으로 접점 부활제를 아주 소량. 윤활유가 아니라 산화막을 벗기는 용도입니다 채터링. 이 단계에서 잡히는 경우가 꽤 많습니다
6. 스위치 교체 핫스왑 보드면 풀러로 뽑고 새 스위치를 핀 안 휘게 꽂으면 끝. 납땜 보드면 인두와 솔더윅으로 기존 납 제거 후 교체 5번으로 잠깐 나았다가 다시 재발할 때
7. 펌웨어 조정 QMK·VIA를 쓰는 커스텀이면 디바운스 값을 5에서 8~10ms로 올림 스위치를 당장 못 바꿀 때의 임시 조치. 그만큼 반응이 늦어집니다

알코올 청소를 할 때는 반드시 케이블을 뽑고, 완전히 마른 뒤에 다시 연결합니다. 그리고 멤브레인이나 노트북의 팬터그래프 키보드는 스위치 단위 교체가 불가능합니다. 러버돔과 접점 시트를 닦는 것이 마지막 수단이고, 그래도 안 되면 키보드나 상판 모듈 자체를 바꿔야 합니다.

점검 요령

다른 도구

전체 보기 →