JavaScript 키보드 이벤트 테스터

테스트 영역에 포커스를 두고 키를 눌러 이 브라우저가 받은 keydown, keyup, key, code, location, repeat, 수정키, 조합 상태와 시간 정보를 확인합니다.

이벤트 캡처와 로그 제어

필터는 표 표시만 바꾸며 메모리에 보관된 전체 로그를 삭제하지 않습니다.

키보드 이벤트 대기 중 Tab은 기본 포커스 이동을 유지합니다. 일시정지, 포커스 손실 또는 페이지 숨김 시 활성 키와 시간 기준은 지워지지만 기록은 남습니다.
보관 로그
0
활성 키
0
keydown / keyup
0 / 0
오래된 기록 삭제
0

현재 누른 키

  • 현재 누르고 있는 키가 없습니다.
테스트 영역에 포커스를 둔 다음 키를 눌러 이벤트를 확인하세요.
현재 이벤트 요약 이벤트 대기 중
현재 key 브라우저 이벤트 대기 중
code
location
repeat
이벤트 간격

캡처 영역에 포커스를 두고 키를 누르세요. 이 페이지는 해당 영역이 받은 이벤트만 기록하며 시스템 전체 키보드는 감시하지 않습니다.

키보드 이벤트 로그

메모리에는 최대 500개를 보관합니다. 표에는 필터 후 최근 100개가 표시되고 다운로드 파일에는 메모리의 전체 로그가 포함됩니다.

현재 0개 표시 · 메모리에 0개 보관
#typekeycodelocationrepeatisComposingmodifiersΔ mshold ms
현재 필터에 맞는 이벤트가 아직 없습니다.

이벤트 유형과 시간 간격

이벤트 유형별 개수

현재 메모리 로그에서 keydown, keyup, 자동 반복과 조합 입력 이벤트의 개수를 비교합니다.

연속 이벤트 간격 분포

히스토그램은 하나의 연속 기록 구간에서 0보다 큰 간격만 사용합니다. 일시정지, 포커스 손실과 페이지 숨김은 시간 기준을 초기화합니다.

자세히 보기

이벤트 필드와 시간 계산

key는 현재 배열에서의 문자나 의미를, code는 비교적 안정적인 물리 위치를, location은 표준 영역·좌우·숫자 키패드를 구분합니다. 이벤트 간격은 연속 기록의 Event.timeStamp 차이를 사용하고, 같은 code의 최초 non-repeat keydown과 이후 keyup을 짝지어 누른 시간을 계산합니다.

내부에는 반올림하지 않은 밀리초 값을 보관합니다. 페이지에는 보통 소수 둘째 자리까지 표시하며, 일시정지·포커스 손실·페이지 숨김을 넘어 이벤트 간격이나 누른 시간을 계산하지 않습니다.

이벤트 유형은 keydown 또는 keyup이어야 하고 타임스탬프는 음수가 아닌 유한값이어야 합니다. 순서가 뒤집혔거나 잘못되었거나 10분을 넘는 시간 차이는 간격과 누른 시간 통계에서 제외됩니다.

브라우저의 한계와 로그 제한

이 도구는 현재 페이지의 테스트 영역이 실제로 받은 KeyboardEvent만 분석합니다. Tab은 기본 탐색을 유지하며 기록하지 않고, 브라우저나 시스템 단축키, Fn 및 일부 미디어 키는 캡처되지 않을 수 있습니다. key는 배열과 입력 방식의 영향을 받고 code는 문자 의미를 대신할 수 없습니다. 메모리 로그는 최대 500개이며 새로고침하거나 닫으면 사라집니다.

KeyboardEvent의 key와 code는 어떻게 다른가요?

key는 현재 배열과 수정키 상태에서 만들어진 문자나 의미를 나타내고, code는 비교적 안정적인 물리 키 위치를 나타냅니다. 배열이나 문자 문제에는 key를, 고정된 키 위치나 게임 조작을 확인할 때는 보통 code도 함께 기록하세요.

keydown과 keyup 이벤트를 어떻게 확인하나요?

클릭하거나 Tab으로 캡처 영역에 포커스를 둔 다음 키를 누르세요. 페이지는 도착 순서대로 keydown과 keyup을 기록하고 repeat, 수정키, 조합 상태, 이벤트 간격과 짝을 찾을 수 있는 경우 누른 시간을 보여 줍니다.

KeyboardEvent location은 어디에 쓰나요?

location은 보통 표준 영역을 0, 왼쪽을 1, 오른쪽을 2, 숫자 키패드를 3으로 표시합니다. 왼쪽·오른쪽 Shift, Ctrl, Alt, Meta와 본문 키·키패드 키를 구분할 때 사용할 수 있습니다.

개인정보·출처·라이선스

모든 이벤트와 로그는 이 브라우저 페이지 메모리에서 처리됩니다. 업로드하지 않고 제3자 API를 호출하지 않으며 URL이나 로컬 저장소에 쓰지 않습니다. 다운로드와 복사는 사용자가 직접 요청할 때만 실행됩니다.

제3자 실행 코드나 리소스를 재사용하지 않았습니다. 알고리즘과 인터페이스는 독립 구현이며 외부 링크는 브라우저 이벤트 표준만 설명합니다.

표준과 방법의 출처