# JavaScript에서 키보드 이벤트 이해하기
사용자가 키를 누르면 브라우저는 세 가지 이벤트를 발생시킵니다:keydown, keypress, keyup. 각각은 눌린 키에 대한 정보가 담긴 속성을 제공하지만, 모두 동등하거나 권장되는 것은 아닙니다.# 키 이벤트 속성
event.code — 물리적 키
QWERTY 명명법을 사용하여 키보드에서 키의 물리적 위치 식별자를 반환합니다. 예를 들어 AZERTY 키보드의 "A" 키는 KeyQ를 반환합니다. 문자가 아닌 위치가 중요한 게임 컨트롤에 이상적입니다.
event.key — 생성된 문자
언어와 활성화된 수정자에 따라 생성된 문자 값을 반환합니다. Shift+A를 누르면 "A"가 반환되고, Shift 없이 누르면 "a"가 반환됩니다. 특수 키의 경우 "Enter", "Escape", "ArrowUp"과 같은 이름을 반환합니다.
# 각 속성을 언제 사용해야 할까요
event.code를 사용하고, 특정 문자나 Ctrl+C와 같은 의미론적 키보드 단축키를 감지할 때는 event.key를 사용하세요. event.which와 event.keyCode 속성은 W3C 표준에 따라 공식적으로 더 이상 사용되지 않습니다. 최신 브라우저에서 호환성을 위해 계속 지원하지만, 새 코드에서는 사용하지 않는 것이 좋습니다.