[태그:] 입력장치

  • 키보드 매트릭스 구조 완벽 이해|행과 열 스캔부터 NKRO까지

    키보드 매트릭스 구조 완벽 이해|행과 열 스캔부터 NKRO까지

    LINK&TEM GUIDE

    키보드 매트릭스 구조

    수백 개의 키를 적은 핀으로 읽어내는 원리부터 고스팅·N키 롤오버까지

    📌 핵심 요약
    • 키보드는 모든 키를 개별 배선하지 않고 행(Row)과 열(Column) 구조의 매트릭스로 구성됩니다.
    • 마이크로컨트롤러는 행과 열을 매우 빠르게 스캔하여 어떤 키가 눌렸는지 판단합니다.
    • 매트릭스 구조 덕분에 배선 수와 MCU 핀 수를 크게 줄일 수 있습니다.
    • 고스팅과 키 충돌은 매트릭스 구조 때문에 발생하며 다이오드가 이를 해결합니다.
    • USB HID와 Bluetooth HID로 전달되는 키 데이터도 결국 매트릭스 스캔 결과입니다.

    키보드를 분해해 보면 키는 80개가 넘는데 메인 칩으로 연결되는 배선은 생각보다 훨씬 적습니다. 처음 보는 사람이라면 “모든 키가 각각 연결되어 있지 않은데 어떻게 어떤 키를 눌렀는지 알 수 있을까?”라는 의문이 생깁니다.

    그 비밀이 바로 키보드 매트릭스(Keyboard Matrix) 구조입니다. 현대의 거의 모든 멤브레인 키보드와 기계식 키보드는 이 방식을 사용하며, MCU는 초당 수백~수천 번 행(Row)과 열(Column)을 스캔하여 입력을 감지합니다.

    이번 글에서는 키보드 매트릭스가 왜 필요한지부터 실제 스캔 과정, 고스팅(Ghosting), 키 충돌(Key Blocking), N-Key Rollover(NKRO)까지 순서대로 살펴보겠습니다.


    1. 키보드 매트릭스란?

    키보드 매트릭스는 여러 개의 키를 행(Row)과 열(Column)으로 구성하여 적은 수의 배선으로 많은 키를 연결하는 구조입니다.

    예를 들어 키가 100개 있다고 해서 배선도 100개가 필요한 것은 아닙니다. 10개의 행과 10개의 열만 있으면 100개의 교차 지점을 만들 수 있으며, 각 교차점마다 하나의 키를 배치할 수 있습니다.

    방식 100개 키 연결
    개별 배선 100개 이상의 MCU 핀 필요
    10×10 매트릭스 20개의 신호선만 사용

    즉 매트릭스 구조는 하드웨어 비용을 줄이고 PCB 설계를 단순하게 만들며 MCU의 입출력 핀을 효율적으로 사용하는 가장 중요한 기술입니다.

    💡 Link&Tem Insight

    매트릭스는 키보드에서만 사용하는 구조가 아닙니다. 계산기, 리모컨, 산업용 키패드, ATM, POS 단말기 등 수많은 입력 장치가 같은 원리를 사용합니다.

    2. 왜 모든 키를 따로 연결하지 않을까?

    만약 키마다 MCU 핀 하나씩 연결한다면 100키 키보드는 최소 100개의 GPIO가 필요합니다. 하지만 대부분의 키보드 MCU는 그렇게 많은 입출력 핀을 제공하지 않습니다.

    또한 PCB 배선은 훨씬 복잡해지고 제조 비용도 크게 증가합니다. 매트릭스 구조는 이런 문제를 매우 효율적으로 해결합니다.

    예를 들어 18개의 행과 6개의 열만 사용해도 108개의 키를 연결할 수 있습니다. 실제 풀배열 키보드가 이와 비슷한 구조를 사용하는 경우가 많습니다.

    매트릭스 구조의 장점
    • MCU 핀 수 감소
    • PCB 설계 단순화
    • 제조 비용 절감
    • 전력 소비 감소
    • 작은 컨트롤러 사용 가능

    3. 실제로 키를 어떻게 찾을까?

    MCU는 모든 키를 동시에 읽지 않습니다. 대신 행(Row)을 하나씩 활성화하면서 모든 열(Column)의 상태를 검사합니다. 이를 매트릭스 스캔(Matrix Scan)이라고 합니다.

    예를 들어 Row1에 전압을 인가하면 해당 행의 모든 키가 활성화됩니다. 이후 Column을 읽어 어느 위치가 연결되었는지를 확인합니다.

    만약 Row3과 Column5가 연결되었다면 MCU는 “Row3-Column5 위치의 스위치가 눌렸다.”고 판단합니다.

    TIP

    이 스캔 과정은 사람이 느끼지 못할 정도로 빠르게 반복됩니다. 일반적으로 초당 수백~수천 번 이상 스캔하기 때문에 동시에 여러 키를 눌러도 자연스럽게 입력됩니다.
    💡 Link&Tem Insight

    QMK Firmware에서도 키 입력은 Matrix Scan Task가 반복 실행되며, 이 과정에서 스위치 상태를 읽고 디바운스를 수행한 뒤 최종 키 이벤트를 생성합니다.

    4. 스캔 이후에는 어떤 일이 일어날까?

    매트릭스 스캔으로 키 입력이 감지되었다고 해서 바로 PC로 전송되는 것은 아닙니다.

    먼저 디바운스 과정을 거쳐 노이즈를 제거하고, 실제 눌림으로 판단되면 펌웨어가 해당 키코드로 변환합니다.

    이후 USB HID 또는 Bluetooth HID 보고서(Report)를 생성하여 운영체제로 전송합니다. 운영체제는 이 HID Report를 받아 문자 입력이나 단축키 실행을 처리합니다.

    입력 처리 순서
    1. 스위치 눌림
    2. 매트릭스 스캔
    3. 디바운스
    4. 키코드 생성
    5. USB HID / Bluetooth HID Report 생성
    6. 운영체제 전달
    Part 1 정리

    키보드 매트릭스는 수많은 키를 적은 수의 배선으로 연결하기 위한 핵심 구조입니다. MCU는 행과 열을 매우 빠르게 스캔하여 입력을 감지하며, 이후 디바운스와 HID 변환 과정을 거쳐 PC로 키 정보를 전달합니다. 다음에서는 고스팅, 키 충돌, 다이오드, N-Key Rollover의 원리를 자세히 알아보겠습니다.

    5. 고스팅(Ghosting)은 왜 발생할까?

    매트릭스 구조는 매우 효율적이지만 구조적인 한계도 있습니다. 대표적인 문제가 바로 고스팅(Ghosting)입니다.

    고스팅은 여러 개의 키를 동시에 눌렀을 때 실제로 누르지 않은 키까지 눌린 것처럼 인식되는 현상을 말합니다. 이는 행과 열이 서로 공유되는 구조에서 전류가 예상하지 않은 경로로 흐르면서 발생합니다.

    예를 들어 하나의 사각형 형태를 이루는 네 개의 키 중 세 개를 동시에 누르면 MCU는 마지막 한 개도 눌린 것으로 오인할 수 있습니다. 이러한 현상은 과거 멤브레인 키보드에서 자주 발생했으며, 게임을 할 때 특정 키 조합이 제대로 입력되지 않는 원인이 되기도 했습니다.

    고스팅이 발생하는 대표 상황
    • 여러 키가 같은 행과 열을 공유하는 경우
    • 다이오드가 없는 매트릭스
    • 저가형 멤브레인 키보드
    • 동시에 많은 키를 입력하는 게임 환경

    일반적인 문서 작업에서는 크게 문제가 되지 않지만 FPS 게임이나 리듬 게임처럼 여러 키를 동시에 누르는 상황에서는 입력 오류가 체감될 수 있습니다.

    💡 Link&Tem Insight

    고스팅은 소프트웨어 버그가 아닙니다. 대부분 하드웨어 회로 구조에서 발생하는 현상이며 펌웨어만으로 완전히 해결하기는 어렵습니다.

    6. 다이오드는 왜 필요할까?

    고스팅을 해결하기 위해 대부분의 기계식 키보드는 각 스위치마다 다이오드를 하나씩 추가합니다.

    다이오드는 전류가 한 방향으로만 흐르도록 만드는 부품입니다. 이를 통해 전류가 다른 경로로 우회하는 것을 막아 잘못된 키 인식을 방지합니다.

    구조 동시 입력
    다이오드 없음 고스팅 가능
    다이오드 있음 정확한 입력 유지

    QMK 공식 문서에서도 NKRO 구현을 위해서는 스위치마다 다이오드를 사용하는 구성이 일반적이라고 설명합니다.

    7. N-Key Rollover(NKRO)란?

    N-Key Rollover는 사용자가 동시에 누른 모든 키를 정확하게 인식하는 기능입니다.

    예를 들어 10개의 키를 동시에 누르면 10개 모두 정확하게 전달되고, 20개를 누르면 20개 모두 전달됩니다. 여기서 N은 제한이 없는 임의의 개수를 의미합니다.

    롤오버 종류
    • 2KRO : 두 개 정도만 안정적으로 입력
    • 6KRO : USB 기본 HID에서 많이 사용
    • NKRO : 거의 모든 키 동시 입력 가능

    대부분의 고급 기계식 키보드는 NKRO를 지원하며 게임용 키보드의 주요 특징으로 소개됩니다.

    💡 Link&Tem Insight

    USB HID의 기본 Boot Protocol은 6개의 일반 키 입력만 전송할 수 있습니다. 하지만 Report Protocol에서는 확장된 HID Report를 사용하여 NKRO를 구현할 수 있습니다.

    8. 디바운스와 매트릭스는 어떤 관계일까?

    매트릭스 스캔만으로는 정확한 입력을 보장할 수 없습니다. 기계식 스위치는 눌리는 순간 금속 접점이 여러 번 튀기 때문에 매우 짧은 시간 동안 여러 번 눌린 것처럼 보일 수 있습니다.

    이를 제거하는 과정이 바로 디바운스(Debounce)입니다.

    즉 입력 순서는 다음과 같습니다.

    입력 처리 과정
    1. 행·열 스캔
    2. 스위치 감지
    3. 디바운스 수행
    4. 키코드 생성
    5. USB HID 또는 Bluetooth HID 전송

    즉 매트릭스는 위치를 찾는 기술이고, 디바운스는 입력을 안정화하는 기술입니다. 두 과정이 모두 완료되어야 하나의 정상적인 키 입력이 완성됩니다.

    9. 자주 묻는 질문

    Q. 기계식 키보드는 모두 NKRO를 지원하나요?

    대부분 지원하지만 제품마다 차이가 있습니다. 일부 저가형 제품은 6KRO만 지원하기도 합니다.

    Q. 멤브레인 키보드도 매트릭스를 사용하나요?

    네. 대부분의 멤브레인 키보드 역시 같은 행과 열 구조를 사용합니다.

    Q. 고스팅은 소프트웨어 문제인가요?

    아닙니다. 대부분 회로 구조와 다이오드 구성 여부에 의해 결정됩니다.

    Q. USB와 Bluetooth에서도 같은 매트릭스를 사용하나요?

    네. 입력을 감지하는 과정은 동일하며 이후 전송 방식만 USB HID 또는 Bluetooth HID로 달라집니다.

    Q. MCU 성능이 좋아지면 매트릭스가 필요 없나요?

    아닙니다. 핀 수와 PCB 설계 효율 때문에 현재도 거의 모든 키보드가 매트릭스 구조를 사용합니다.

    📚 함께 보면 좋은 글

    키보드가 입력을 감지한 이후 PC까지 전달되는 전체 과정을 이해하면 키보드 내부 구조를 더욱 쉽게 이해할 수 있습니다. 아래 글을 함께 읽으면 입력 처리 흐름을 처음부터 끝까지 연결해서 볼 수 있습니다.

    🔗 공식 자료

    📖 출처

    • QMK Documentation
    • QMK Matrix Scanning Documentation
    • QMK NKRO Documentation
    • USB Implementers Forum – HID Class
    • Bluetooth SIG – HID over GATT Profile
    Link&Tem 한 줄 정리

    키보드 매트릭스는 수많은 키를 적은 수의 배선으로 읽기 위한 핵심 기술이며, 여기에 다이오드·디바운스·HID 프로토콜이 결합되어 우리가 누른 키가 정확하게 PC까지 전달됩니다.

  • USB HID 구조 이해하기|키보드가 드라이버 없이 동작하는 이유

    USB HID 구조 이해하기|키보드가 드라이버 없이 동작하는 이유

    LINK&TEM GUIDE

    USB HID 구조 이해하기

    키보드와 마우스는 어떤 과정을 거쳐 PC가 입력을 이해할까?

    📌 핵심 요약
    • USB HID(Human Interface Device)는 키보드·마우스 같은 입력장치를 위한 표준 규격입니다.
    • 운영체제는 HID 규격만 이해하면 제조사가 달라도 기본 입력을 바로 사용할 수 있습니다.
    • HID Report Descriptor는 장치가 어떤 데이터를 보내는지 설명하는 설계도 역할을 합니다.
    • 키 입력은 Interrupt Transfer를 통해 매우 짧은 주기로 PC에 전달됩니다.
    • 게임패드, 터치패드, 펜 태블릿도 대부분 HID 구조를 기반으로 동작합니다.

    USB 키보드를 컴퓨터에 연결하면 별도의 드라이버를 설치하지 않아도 대부분 즉시 사용할 수 있습니다. 제조사가 다르고 내부 MCU가 달라도 기본적인 키 입력은 거의 동일하게 동작하는 이유는 USB HID(Human Interface Device)라는 국제 표준을 사용하기 때문입니다.

    많은 사람들은 USB가 단순히 케이블 규격이라고 생각하지만, 실제 USB는 전송 방식과 장치 종류까지 정의하는 거대한 표준입니다. HID 역시 그 안에 포함된 장치 클래스(Class) 중 하나이며, 운영체제가 키보드와 마우스를 이해하는 공통 언어라고 볼 수 있습니다.

    이번 글에서는 USB HID가 무엇인지부터 시작해 Enumeration 과정, HID Descriptor, Report Descriptor, 실제 키 입력 데이터 구조, 그리고 운영체제가 입력을 처리하는 과정까지 단계별로 살펴보겠습니다.


    1. USB HID란 무엇일까?

    HID는 Human Interface Device의 약자로, 사람이 컴퓨터와 상호작용하기 위해 사용하는 입력 장치를 의미합니다. 대표적으로 키보드, 마우스, 터치패드, 트랙볼, 게임패드, 디지털 펜 등이 HID 장치에 포함됩니다.

    USB 표준에서는 이러한 장치들이 서로 다른 제조사에서 만들어졌더라도 동일한 방식으로 데이터를 전송하도록 규격을 정의합니다. 덕분에 운영체제는 장치 제조사를 미리 알지 못해도 기본 입력을 바로 사용할 수 있습니다.

    예를 들어 Logitech 키보드와 Keychron 키보드는 내부 MCU도 다르고 펌웨어도 다르지만, 둘 다 HID Report 형식으로 데이터를 보내기 때문에 Windows나 macOS는 동일한 방식으로 입력을 처리합니다.

    💡 Link&Tem TIP

    USB HID는 “키보드 제조사”를 구분해서 동작하는 것이 아니라 “HID 규격을 따르는 입력 장치”인지 먼저 확인한 뒤 데이터를 해석합니다.

    2. 왜 별도 드라이버 없이 동작할까?

    USB 장치를 연결하면 운영체제는 먼저 Enumeration이라는 과정을 수행합니다. 이 과정에서 장치의 종류와 지원 기능을 확인하고 적절한 드라이버를 연결합니다.

    키보드처럼 HID 규격을 사용하는 장치는 이미 Windows, macOS, Linux에 HID 드라이버가 기본 포함되어 있기 때문에 제조사가 별도의 드라이버를 제공하지 않아도 즉시 사용할 수 있습니다.

    장치 기본 드라이버
    USB 키보드 가능
    USB 마우스 가능
    웹캠 UVC 규격 사용
    USB 저장장치 Mass Storage 규격
    Link&Tem Insight

    Microsoft와 Linux Kernel은 HID를 운영체제 기본 기능으로 제공합니다. 제조사 프로그램은 RGB 제어나 매크로 설정 같은 추가 기능을 제공할 뿐, 기본 키 입력 자체는 HID 드라이버가 담당합니다.

    3. HID Descriptor는 무엇일까?

    USB 장치는 자신이 어떤 기능을 갖고 있는지를 Descriptor라는 데이터 구조로 설명합니다. HID 장치 역시 여러 종류의 Descriptor를 통해 운영체제에 자신의 정보를 전달합니다.

    가장 중요한 것은 HID Descriptor와 Report Descriptor입니다. HID Descriptor는 장치가 HID임을 알려주고, Report Descriptor는 실제 데이터 구조를 정의합니다.

    운영체제는 Report Descriptor를 읽은 뒤 “이 장치는 키 하나를 몇 비트로 표현하는지”, “Modifier 키는 어디에 있는지”, “LED 제어는 가능한지” 등을 모두 이해하게 됩니다.

    Descriptor 종류
    • Device Descriptor
    • Configuration Descriptor
    • Interface Descriptor
    • HID Descriptor
    • Report Descriptor

    4. Report Descriptor의 역할

    Report Descriptor는 HID 장치에서 가장 중요한 정보입니다. 운영체제는 이 데이터를 읽어 실제 입력 데이터를 해석합니다.

    예를 들어 키보드는 보통 다음과 같은 구조를 사용합니다.

    • Modifier Key (Ctrl, Shift 등)
    • Reserved Byte
    • 동시에 누른 최대 6개의 키 코드

    즉 운영체제는 키코드만 받는 것이 아니라 “이 데이터의 첫 번째 바이트는 Ctrl 정보이고 두 번째는 예약 영역이며 이후에는 키 코드가 들어온다.”라는 구조를 먼저 이해한 뒤 입력을 해석합니다.

    🔍 Link&Tem Insight

    Report Descriptor는 일종의 데이터 설계도입니다. 운영체제가 이 설계도를 먼저 읽기 때문에 제조사마다 내부 구현이 달라도 동일한 방식으로 입력을 처리할 수 있습니다.
    Part 1 정리

    USB HID는 운영체제가 입력 장치를 이해하기 위한 표준 규격입니다. HID Descriptor와 Report Descriptor를 통해 장치 구조를 먼저 파악한 뒤 키 입력 데이터를 해석합니다. 다음에서는 실제 키 입력 Report 구조, Interrupt Transfer 방식, Polling 과정, NKRO와 Boot Protocol의 차이, Bluetooth HID와의 관계까지 이어서 살펴보겠습니다.

    5. 실제 키 입력 데이터는 어떻게 전달될까?

    키보드에서 키를 누르면 MCU는 스위치 상태를 스캔한 뒤 어떤 키가 눌렸는지를 HID Report 형식으로 만듭니다. 이 Report는 USB를 통해 컴퓨터로 전달되며 운영체제는 앞에서 읽은 Report Descriptor를 기준으로 데이터를 해석합니다.

    예를 들어 사용자가 A 키를 누르면 MCU는 해당 키의 HID Usage ID를 Report 안에 기록합니다. 만약 Shift를 함께 누르고 있다면 Modifier 비트도 함께 설정됩니다. 운영체제는 이 정보를 받아 최종적으로 대문자 A인지 소문자 a인지 판단하게 됩니다.

    Report 영역 내용
    Byte 0 Modifier(Ctrl, Shift, Alt 등)
    Byte 1 Reserved
    Byte 2~7 동시에 눌린 키 코드
    💡 TIP

    USB 키보드는 문자 자체를 보내는 것이 아니라 키 코드(Key Code)를 전송합니다. 실제 문자는 운영체제가 현재 키보드 레이아웃과 Shift 상태 등을 고려해 결정합니다.

    6. Interrupt Transfer는 무엇일까?

    이름만 보면 CPU 인터럽트처럼 장치가 컴퓨터를 강제로 깨우는 방식처럼 보일 수 있지만, USB의 Interrupt Transfer는 조금 다릅니다.

    USB에서는 Host인 PC가 항상 통신을 시작합니다. 따라서 키보드는 마음대로 데이터를 보내지 못하며, 컴퓨터가 “입력이 있나요?”라고 매우 짧은 주기로 질문하면 그때 Report를 응답합니다.

    키보드는 일반적으로 1ms에서 10ms 정도의 Polling Interval을 사용하며, 게임용 키보드는 1000Hz Polling을 지원하는 경우가 많습니다.

    Link&Tem Insight

    Interrupt Transfer는 이름과 달리 “장치가 먼저 보내는 방식”이 아닙니다. USB에서는 항상 Host가 Polling을 수행하며, HID는 입력 지연을 최소화하기 위해 Interrupt Endpoint를 사용하는 것입니다.

    7. Polling Rate와 입력 지연의 관계

    Polling Rate는 컴퓨터가 초당 몇 번 장치에 데이터를 요청하는지를 의미합니다. 흔히 125Hz, 250Hz, 500Hz, 1000Hz 같은 수치를 볼 수 있습니다.

    Polling Rate 최대 대기시간
    125Hz 약 8ms
    250Hz 약 4ms
    500Hz 약 2ms
    1000Hz 약 1ms

    Polling Rate가 높을수록 입력 지연은 줄어들지만 USB 트래픽과 MCU 처리량은 조금 증가합니다. 일반적인 사무용 환경에서는 큰 차이를 느끼기 어렵지만, FPS 게임에서는 1000Hz를 사용하는 경우가 많습니다.

    8. Boot Protocol과 Report Protocol 차이

    USB HID에는 Boot Protocol과 Report Protocol이라는 두 가지 동작 방식이 존재합니다.

    Boot Protocol은 BIOS나 UEFI에서도 사용할 수 있도록 매우 단순한 구조를 사용합니다. 운영체제가 아직 로드되지 않은 상태에서도 키보드를 사용할 수 있는 이유가 바로 Boot Protocol 덕분입니다.

    운영체제가 실행된 이후에는 대부분 Report Protocol로 전환됩니다. Report Protocol은 훨씬 복잡한 Report Descriptor를 사용할 수 있어 다양한 기능과 커스텀 키보드를 지원합니다.

    항목 Boot Report
    사용 시점 BIOS·UEFI 운영체제
    기능 기본 입력 확장 기능
    커스터마이징 제한적 높음

    9. NKRO도 HID와 관련이 있을까?

    많은 사용자가 NKRO(N-Key Rollover)를 키보드 하드웨어 기술로만 생각하지만 실제로는 HID Report 구조와도 밀접한 관련이 있습니다.

    기본 Boot Protocol에서는 동시에 최대 6개의 일반 키만 전송할 수 있는 6KRO 구조를 사용합니다. 반면 NKRO는 더 큰 Report 구조를 사용하거나 비트맵 형태로 키 상태를 표현해 훨씬 많은 키를 동시에 전달합니다.

    그래서 게이밍 키보드나 커스텀 키보드는 대부분 Report Protocol을 활용해 NKRO를 구현합니다.

    10. Bluetooth HID와 무엇이 다를까?

    USB HID와 Bluetooth HID는 전송 매체만 다를 뿐 입력 데이터 구조 자체는 매우 비슷합니다.

    Bluetooth 역시 HID Profile(HID over GATT 포함)을 사용해 운영체제에 키 입력을 전달합니다. 따라서 운영체제 입장에서는 USB 키보드와 블루투스 키보드 모두 거의 동일한 입력 이벤트를 생성합니다.

    USB HID와 Bluetooth HID 비교
    • 입력 구조는 매우 유사
    • 전송 방식만 USB와 BLE로 다름
    • 운영체제는 둘 다 HID 드라이버 계층에서 처리
    • 응용프로그램은 동일한 키 이벤트를 받음

    자주 묻는 질문(FAQ)

    Q. USB HID는 키보드만 지원하나요?

    아닙니다. 마우스, 게임패드, 터치패드, 디지타이저, 펜 장치 등 다양한 입력 장치를 지원합니다.

    Q. 모든 키보드가 HID를 사용하나요?

    일반적인 USB 키보드는 거의 모두 HID 규격을 사용합니다. 추가 기능은 별도의 Vendor 인터페이스를 함께 사용하는 경우도 있습니다.

    Q. RGB 제어도 HID인가요?

    기본 입력은 HID를 사용하지만 RGB 제어나 펌웨어 업데이트는 제조사 전용 프로토콜을 사용하는 경우가 많습니다.

    📚 함께 보면 좋은 글

    USB HID를 이해했다면 실제 키 입력이 PC까지 전달되는 전체 과정과 키보드 내부 구조까지 함께 살펴보면 입력 장치의 동작 원리를 훨씬 쉽게 이해할 수 있습니다.

    🔗 공식 자료

    📖 출처

    • USB Implementers Forum – HID Device Class Definition
    • USB Implementers Forum – USB 2.0 Specification
    • Microsoft Learn HID Documentation
    • Linux Kernel HID Documentation
    • QMK 공식 문서
    Link&Tem 한 줄 정리

    USB HID는 단순한 키 입력 규격이 아니라 운영체제가 모든 입력 장치를 공통된 방식으로 이해할 수 있도록 만든 국제 표준입니다. HID Descriptor와 Report Descriptor 덕분에 제조사가 달라도 동일한 방식으로 키 입력을 처리할 수 있으며, 이것이 USB 키보드가 별도 드라이버 없이 바로 동작하는 핵심 원리입니다.