키보드 눌림 확인: 지금 누른 키는?
아무 키나 누르면 키 이름, code, 예전 방식의 keyCode 숫자, 그리고 왼쪽·오른쪽·숫자 키패드 중 어느 쪽인지 바로 보여 줍니다. 글자가 지워진 키캡, 키 매핑, 게임 키 설정, 코딩에 유용한 키보드 인식 테스트입니다.
| key | code | keyCode | location | modifiers |
|---|---|---|---|---|
| – | ||||
아무 키나 누르면 아래 상자가 지금 누른 키가 무엇인지 알려 줍니다. 키 이름, code, 숫자 keyCode, 그리고 왼쪽·오른쪽·숫자 키패드 중 어느 쪽인지입니다. 큰 라벨은 key 값이고, 그 아래 줄에 code, keyCode, location이 나오며, 표에는 최근 12번의 입력이 남습니다.
키보드 눌림 확인 사용법
- 페이지의 아무 곳이나 클릭하거나 상자를 눌러 키보드 포커스를 줍니다.
- 키를 누릅니다. 큰 라벨에 키 이름이 나오고, 그 아래 줄에 code, keyCode, location이 표시됩니다. Shift, Ctrl, Alt, Meta를 누르고 있었다면 modifiers 줄에 함께 나열됩니다.
- 다른 키를 더 누르세요. 입력마다 같은 다섯 가지 항목과 함께 최근 입력 표에 추가되며, 최신이 맨 위에 오고 최대 12행까지 남습니다.
- 초기화를 누르면 화면과 표가 지워집니다.
키를 누르고 있으면 운영체제가 키를 반복 입력합니다. 반복 입력은 큰 라벨은 갱신하지만 표에는 추가되지 않으므로, 길게 누른 한 번은 한 행만 차지합니다. 스페이스바, Tab, Backspace, 위쪽과 아래쪽 방향키, 슬래시 키, 따옴표 키는 테스트 중에 페이지가 스크롤되거나 포커스가 바뀌거나 브라우저의 빠른 찾기 상자가 열리지 않도록 처리됩니다. Ctrl이나 Cmd와 함께 누른 키는 평소처럼 브라우저 단축키로 전달됩니다.
key와 code, 어느 쪽이 필요한가요?
브라우저는 입력 하나를 두 가지로 설명하며, 두 값은 서로 다른 질문에 답합니다.
- key
- "a"
- code
- KeyA
S 왼쪽 키는 소문자 a를 입력합니다.
- key
- "A"
- code
- KeyA
같은 물리 키, 같은 code. 의미만 바뀝니다.
- key
- "q"
- code
- KeyA
같은 위치가 프랑스어 키보드에서는 q를 입력합니다. code는 여전히 KeyA입니다.
key는 현재 키보드 배열에서 조합키를 반영한 입력의 의미입니다. A라고 적힌 키를 누르면 key는 "a"이고, Shift를 누르면 "A"가 되며, 독일어 배열로 바꾸면 L 옆의 키는 "ö"가 됩니다. 문자가 아닌 키에는 Enter, Escape, ArrowLeft, Backspace, F5 같은 설명용 이름이 붙습니다. 이 페이지에서는 스페이스바가 눈에 보이도록 Space라는 단어로 표시됩니다.
code는 키의 물리적 위치로, 미국식 키보드의 글자 이름을 따르며 배열, 언어, Shift와 무관합니다. S의 왼쪽 키는 Q가 입력되는 AZERTY 키보드를 포함해 전 세계 어느 키보드에서나 KeyA입니다. 숫자 줄은 Digit1Digit0, 기능 키는 F1F12이고, 중복된 키는 이름에 방향이 붙으며(ShiftLeft, ControlRight), 키패드는 Numpad1, NumpadAdd, NumpadEnter 등을 씁니다.
| 질문 | 쓸 값 | 예 |
|---|---|---|
| 이 키는 어떤 문자를 입력하는가? | key | "a", "A", "ö", "?" |
| 언어와 상관없이 어느 물리 키인가? | code | KeyA, Digit1, Backquote |
| 왼쪽 Shift인가, 오른쪽 Shift인가? | code 또는 location | ShiftLeft, ShiftRight |
| 키패드의 Enter인가? | code 또는 location | NumpadEnter, location numpad |
| 오래된 코드가 기대하는 숫자는? | keyCode | 65, 13, 32 |
게임 키 설정, 키 매핑 도구, 어떤 배열에서도 똑같이 느껴져야 하는 모든 곳에는 code를 쓰세요. 텍스트 처리, 검색 단축키, 사용자가 의도한 글자가 중요한 곳에는 key를 쓰세요.
keyCode란 무엇이고 왜 아직 표시하나요?
keyCode는 브라우저가 키를 보고하던 원래 방식으로, 키마다 숫자 하나이며 대체로 Windows 가상 키 코드와 맞습니다. 오래전에 권장되지 않게 되었고 브라우저도 key나 code를 쓰라고 안내하지만, 기존 코드가 너무 많이 의존해서 제거된 적이 없습니다. 튜토리얼, 오래된 게임 엔진, 폼 검증 스크립트, 많은 플러그인이 아직 숫자와 비교하므로 이 값을 찾아보는 사람이 여전히 있습니다.
브라우저마다 일치하는 일반적인 값은 다음과 같습니다.
| 키 | keyCode | code |
|---|---|---|
| A~Z | 65~90 | KeyA~KeyZ |
| 0~9 (메인 숫자 줄) | 48~57 | Digit0~Digit9 |
| 키패드 0~9 | 96~105 | Numpad0~Numpad9 |
| F1~F12 | 112~123 | F1~F12 |
| Enter | 13 | Enter 또는 NumpadEnter |
| 스페이스바 | 32 | Space |
| Escape | 27 | Escape |
| Backspace | 8 | Backspace |
| Tab | 9 | Tab |
| Shift, Ctrl, Alt | 16, 17, 18 | ShiftLeft 등 |
| 방향키 (왼쪽, 위, 오른쪽, 아래) | 37, 38, 39, 40 | ArrowLeft, ArrowUp, ArrowRight, ArrowDown |
keyCode가 무너지는 곳은 구두점입니다. 세미콜론 키는 Chrome과 Edge에서 186이지만 Firefox에서는 59이고, 마이너스 키는 Chrome에서 189, Firefox에서 173입니다. 글자 키도 Shift를 눌렀든 아니든 같은 keyCode를 보고하므로 keyCode만으로는 "a"와 "A"를 구분할 수 없습니다. 새 코드를 짠다면 code나 key를 읽고, 여기 표시되는 keyCode는 유지보수 중인 옛 스크립트를 위한 참고로만 쓰세요.
location의 의미
키보드에는 두 개씩 있는 키가 여럿 있고, location은 그중 어느 쪽을 눌렀는지 알려 줍니다. 브라우저는 숫자로 보고하지만 이 페이지는 단어로 보여 줍니다.
| location | 의미 | 해당하는 키 |
|---|---|---|
| standard (일반) | 이 키의 유일한 복사본 | 글자, 숫자, F키, 그 밖의 대부분 |
| left (왼쪽) | 왼쪽 복사본 | Shift, Ctrl, Alt, Windows 또는 Cmd |
| right (오른쪽) | 오른쪽 복사본 | Shift, Ctrl, Alt, Windows 또는 Cmd |
| numpad (숫자 키패드) | 숫자 키패드의 키 | 키패드 숫자, 연산 키, NumpadEnter, Num Lock |
location이 가장 유용한 곳은 Enter와 조합키입니다. 메인 Enter와 키패드 Enter는 key 이름도 keyCode도 같지만 code가 다르고, 키패드 쪽은 location이 numpad로 보고됩니다. 마찬가지로 좌우 Shift 두 개는 key와 keyCode가 같아서 code와 location으로만 구분됩니다. 게임에서 Shift를 하나만 지정할 수 있는데 어느 쪽을 듣고 있는지 모르겠다면 각각 눌러 비교해 보세요.
키패드 숫자는 따로 짚을 만합니다. Num Lock이 켜져 있으면 Numpad7의 key는 "7"이고, Num Lock이 꺼져 있으면 같은 물리 키의 key는 "Home"이 되며, code는 Numpad7로, location은 numpad로 그대로입니다. 자세한 내용은 숫자 키패드 테스트 페이지에서 다룹니다.
한/영 키와 한자 키
한국어 키보드에는 스페이스바 양옆에 한/영 키와 한자 키가 있습니다. 한글 입력기가 켜진 상태에서는 브라우저가 글자 키의 key를 Process 같은 값으로 보고하는 경우가 있지만, code는 물리 키 위치를 가리키므로 여전히 쓸 수 있습니다. 한/영 키와 한자 키가 보내는 값은 브라우저와 입력기 설정에 따라 다를 수 있으니 직접 눌러서 확인해 보세요. 한/영 키를 눌러도 아무 값이 보이지 않는다면 운영체제가 입력기 전환에 먼저 쓰고 있을 가능성이 있습니다.
어떤 키를 눌렀는지 확인하는 이유
키 매핑. Windows의 PowerToys 키보드 관리자나 macOS의 Karabiner-Elements 같은 도구는 키를 물리적 위치로 식별하며, 이것은 code와 맞습니다. 바꾸고 싶은 키를 누르고 code를 적은 뒤 도구에서 그 값을 찾으세요. 언어를 바꾼 뒤 키의 의미가 달라졌다면 key와 code를 비교해 보세요. code는 맞고 key만 틀리다면 하드웨어 고장이 아니라 배열 설정 문제입니다.
글자가 지워진 키. 키캡의 글자가 닳아 없어졌다면 여기서 눌러서 key 값을 읽으세요. Shift와 함께 기호가 입력되는 키는 두 가지로 눌러 보면 표에 두 문자가 모두 나타납니다.
게임 키 설정. 게임은 보통 물리 키로 설정을 저장하고, 설정 메뉴가 낯선 이름으로 키를 보여 주기도 합니다. 키 설정이 입력되지 않는다면 여기서 키를 눌러 브라우저가 그 키를 보기는 하는지, 그리고 게임이 따로 취급하는 왼쪽·오른쪽 조합키나 숫자 키패드 키인지 확인하세요.
코드 작성. JavaScript 키보드 처리기가 받는 이벤트는 이 페이지가 읽는 것과 같은 KeyboardEvent이며, key, code, keyCode, location 속성이 있습니다. 처리하려는 키를 누르고, code 값을 처리기에 복사한 뒤 modifiers 줄에서 어떤 플래그가 설정될지 확인하세요. Dead, Unidentified, Process 같은 키는 표에서 그 배열에서 처리기가 받을 값을 정확히 볼 수 있습니다.
구매 전이나 물을 쏟은 뒤 점검. 키 하나가 엉뚱한 문자를 입력한다면, 하드웨어가 올바른 위치에 잘못된 의미를 보고하는 것(배열 문제)인지, 아예 다른 위치를 보고하는 것(배선이나 펌웨어 문제)인지 이 페이지로 알 수 있습니다. 모든 키가 입력되는지 확인하려면 전체 키보드 테스트를 실행하세요.
표시되지 않는 키
Fn 키는 키보드 내부에서 처리되어 컴퓨터에 전달되지 않습니다. Windows에서 윈도우 키는 시작 메뉴를 열고 Print Screen은 손을 뗄 때만, 그것도 입력될 때만 신호가 잡힙니다. 미디어 키, 밝기 키, 노트북의 Fn 조합은 대개 페이지가 읽을 수 있는 키 이벤트 없이 시스템에서 동작합니다. 잠금 키는 입력됩니다. Caps Lock, Num Lock, Scroll Lock은 각각 code를 보고하지만, macOS는 Caps Lock을 누를 때만 보내고 뗄 때는 보내지 않습니다. 있어야 할 키가 계속 조용하다면 먼저 텍스트 편집기에서 눌러 보세요. 거기서는 되는데 여기서 안 되면 스위치 고장이 아니라 위에서 말한 시스템이 처리하는 키 중 하나입니다.
다른 키보드 테스트
이 페이지는 한 번에 한 번의 입력을 자세히 보여 줍니다. 키보드의 모든 키가 입력되는지 확인하려면 첫 페이지의 키보드 테스트를 쓰세요. 입력마다 키보드 배열 그림에 표시해 줍니다. 여러 키를 함께 눌렀는데 모두 나타나지 않는다면 키보드 동시입력 테스트에서 어떤 키가 도착하고 어떤 키가 빠지는지 볼 수 있습니다. 키가 틀리게 입력되는 것이 아니라 늦게 도착하는 것 같다면 키보드 반응속도 테스트로 반응 속도를 재서 두 키보드를 비교하세요.
자주 묻는 질문
내가 누르는 키가 무슨 키인지 어떻게 확인하나요?
이 페이지를 클릭하고 키를 누르세요. 큰 라벨에 키 이름이 나오고 그 아래 줄에 code, keyCode, location이 표시됩니다. 최근 12번의 입력은 아래 표에 남으므로 여러 키를 연달아 눌러 보고 나중에 확인할 수 있습니다.
key와 code는 무엇이 다른가요?
key는 그 입력의 의미, 즉 입력되는 문자나 실행되는 동작으로 a, A, Enter, ArrowUp 같은 값입니다. code는 KeyA나 Digit1처럼 키의 물리적 위치이며 Shift나 키보드 언어가 바뀌어도 변하지 않습니다. 같은 키를 Shift와 함께 누르면 key는 바뀌지만 code는 그대로입니다.
keyCode는 아직 쓰이나요?
keyCode는 더 이상 권장되지 않으며 브라우저도 key나 code를 쓰라고 안내하지만, 여전히 동작하고 오래된 코드와 튜토리얼, 게임 엔진이 많이 의존합니다. 숫자 값이며 A는 65, Enter는 13, Space는 32, Escape는 27입니다. 구두점 키의 값은 브라우저마다 다를 수 있는데, 이것이 대체된 이유 중 하나입니다.
location은 무슨 뜻인가요?
location은 키보드에 중복된 키 중 어느 쪽을 눌렀는지 알려 줍니다. standard는 하나뿐인 키이고, left와 right는 Shift, Ctrl, Alt, Windows 또는 Cmd 키의 양쪽을 구분하며, numpad는 숫자 키패드의 키라는 뜻입니다. 그래서 키패드 Enter와 메인 Enter는 둘 다 키 이름이 Enter여도 구분할 수 있습니다.
키가 Dead나 Unidentified로 표시되는 이유는 무엇인가요?
Dead는 내가 쓰는 배열에서 다음 글자를 기다렸다가 문자를 만드는 악센트 키라는 뜻으로, 유럽 배열에 흔합니다. Unidentified는 브라우저가 알려진 이름에 대응시키지 못한 키 이벤트를 받았다는 뜻이며, 일부 미디어 키, 매크로 키, 제조사 전용 키에서 생깁니다. 두 경우 모두 code와 keyCode 필드로 물리 키를 알아볼 수 있는 경우가 많습니다.
Fn, Print Screen, 윈도우 키를 눌러도 아무것도 나타나지 않는 이유는 무엇인가요?
Fn은 키보드 내부에서 처리되어 컴퓨터에 키로 전달되지 않습니다. Windows의 Print Screen과 윈도우 키는 브라우저가 보기 전에 운영체제가 가져가며, 대부분의 미디어 키와 밝기 키도 마찬가지입니다. 이런 경우는 키가 고장난 것이 아니라 웹페이지에서 보이지 않을 뿐입니다.
게임이나 스크립트에 쓸 키 코드를 여기서 찾을 수 있나요?
네. 키를 누르고, 게임 키 설정이나 AutoHotkey, JavaScript 이벤트 처리기처럼 물리 키로 동작하는 곳에는 code 값을, 입력된 문자가 중요한 곳에는 key 값을 쓰세요. 라이브러리나 게임이 숫자 keyCode를 요구한다면 code 옆에 그 숫자도 표시됩니다.
다른 키보드 테스트
아래 테스트는 키보드의 각 부분을 더 자세히 확인합니다.