페이지
  • 개인정보처리방침
  • 이용약관
  • 문의
  • 소개 (About)
  • 자주 묻는 질문 (FAQ)
  • 전체 글
  • 키보드

    키보드 디바운싱 원리, 요리사의 판단 시간에 비유해 5ms의 의미 이해하기

    2026.08.04 조회 0
    키보드 디바운싱 원리를 요리사의 판단 시간에 비유한 개념 일러스트
    LINK&TEM GUIDE

    키보드 디바운싱, 요리사의 판단 시간으로 이해하기

    스위치 접점이 떨리는 순간을 요리에 비유해서 정리했습니다

    📌 핵심 요약
    • 키보드 디바운싱은 스위치 접점이 미세하게 떨리는 채터링을 걸러내는 처리입니다.
    • 요리사가 도마 소리를 하나의 동작으로 인정하듯, 짧은 신호 뭉치를 한 번의 입력으로 묶습니다.
    • QMK 기본 디바운스 타임은 5ms이며, eager·defer 두 방식이 있습니다.
    • 디바운스 타임을 낮추면 반응은 빨라지지만 오입력 위험이 커지는 트레이드오프가 있습니다.
    • 광축·홀이펙트 스위치도 물리 접점 문제와는 별개로 소프트웨어 디바운싱을 사용합니다.
    목차
    1. 키보드 디바운싱이란? 스위치 접점이 떨리는 순간
    2. 키보드 디바운싱을 요리에 비유하면 벌어지는 일
    3. 디바운스 타임 5ms는 어디서 온 숫자인가
    4. 디바운싱을 안 하면 생기는 문제 – 오타와 유령 입력
    5. 광축·홀이펙트 스위치도 디바운싱이 필요할까
    6. 디바운스 타임을 낮추면 벌어지는 트레이드오프

    게임을 하다가 분명 한 번만 눌렀는데 같은 키가 두 번 입력돼서 억울했던 적이 있다면, 원인은 손가락이 아니라 키보드 디바운싱일 수 있습니다.

    스위치를 누르는 순간 접점이 완벽하게 딱 붙는 게 아니라, 아주 짧은 시간 동안 붙었다 떨어졌다를 반복합니다. 이 떨림을 그대로 신호로 받아들이면 한 번의 타건이 여러 번의 입력으로 둔갑합니다. 그걸 막는 처리가 바로 키보드 디바운싱입니다.

    이 개념을 회로도나 타이밍 그래프로 설명하면 눈이 먼저 감기기 마련입니다. 그래서 이 글에서는 주방에서 흔히 벌어지는 상황에 빗대어, 접점이 얼마나 빨리 떨리고 그 떨림을 왜 무시해야 하는지부터 디바운스 타임 숫자의 의미, 방치했을 때 생기는 문제, 그리고 광축·홀이펙트 스위치와의 관계까지 순서대로 짚어보겠습니다.

    키보드 디바운싱이란? 스위치 접점이 떨리는 순간

    키보드 디바운싱은 스위치의 물리적 접점이 순간적으로 여러 번 붙었다 떨어지는 현상, 즉 채터링(chattering) 또는 바운스(bounce)를 소프트웨어적으로 걸러내는 처리입니다.

    기계식 스위치는 키를 누르면 슬라이더가 내려가면서 두 개의 금속 접점 핀이 서로 맞닿아 전기 신호를 만듭니다. 문제는 손가락이 스위치를 누르는 속도와 힘이 스프링의 반발력과 합쳐지면서, 접점 핀이 한 번에 매끄럽게 붙지 않고 아주 얇은 진동을 일으킨다는 점입니다. 이 진동이 회로 기판 입장에서는 전기 신호가 켜졌다 꺼졌다 하는 것으로 보입니다.

    실제 수치로 보면 체감이 쉽습니다. 체리(Cherry) MX 시리즈의 공식 스펙에서는 바운스 시간을 16in/sec 작동 속도 기준 5ms 이하로 명시해왔고, 2019년 이후 접점 구조가 개선된 최신 스위치는 바운스 시간이 1ms 미만으로 줄었다고 안내합니다. 5ms는 눈 깜빡임보다 훨씬 짧은 시간이지만, 마이크로컨트롤러가 매트릭스를 수천 번 스캔하는 속도에서는 결코 무시할 수 없는 길이입니다.

    🔍 Link&Tem Insight

    흔히 하는 오해가 “비싼 스위치는 채터링이 없다”는 것입니다. 사실 모든 기계식 스위치는 정도 차이만 있을 뿐 접점 떨림 자체가 물리적으로 존재합니다. 값비싼 스위치가 하는 일은 떨림을 아예 없애는 게 아니라, 접점 구조와 재질을 개선해서 떨리는 시간을 짧게 줄이는 것입니다. 떨림을 최종적으로 걸러내는 역할은 결국 키보드 디바운싱 로직이 맡습니다.

    키보드 디바운싱을 요리에 비유하면 벌어지는 일

    주방에서 칼끝으로 도마를 탁 내려치는 장면을 떠올려 보겠습니다. 손목에는 아주 미세한 반동이 있어서, 칼날이 도마에 완전히 한 번만 닿는 게 아니라 “탁탁탁” 하고 짧은 순간 두세 번 연속으로 닿았다 떨어지는 소리가 납니다.

    그런데 옆에서 지켜보는 사람은 이 소리를 세 번의 칼질로 세지 않습니다. “방금 한 번 내려쳤다”고 인식합니다. 짧은 시간 안에 몰려서 일어난 여러 접촉을 하나의 진짜 동작으로 묶어서 판단하는 것, 이게 바로 키보드 디바운싱의 본질입니다.

    스위치도 똑같습니다. 손가락이 키를 한 번 누르면 접점이 짧은 순간 여러 번 붙었다 떨어지는데, 회로 기판이 이걸 그대로 여러 번의 입력으로 받아들이면 도마 소리를 세 번의 칼질로 잘못 세는 셈이 됩니다. 디바운싱 로직은 “이 정도 시간 안에 몰려서 일어난 신호는 하나로 친다”는 기준, 즉 요리사의 판단 시간을 미리 정해두는 작업입니다.

    이 판단 시간을 정하는 방식에도 성격이 다른 두 요리사가 있습니다. 물이 끓는지 확인할 때 첫 거품이 보이자마자 바로 불을 줄이는 성격 급한 요리사가 있는가 하면, 거품이 계속 안정적으로 올라오는 걸 몇 초 더 지켜본 뒤에야 “다 끓었다”고 선언하는 신중한 요리사도 있습니다. 앞엣것이 즉시 반응하는 방식, 뒤엣것이 안정을 확인한 뒤 반응하는 방식이며, 실제 키보드 펌웨어에서도 이 두 방식이 그대로 쓰입니다.

    💡 TIP

    키보드 디바운싱을 “입력을 늦추는 기능”으로 오해하기 쉽지만, 정확히는 “가짜 입력을 걸러내는 기능”입니다. 판단 시간이 너무 짧으면 성격 급한 요리사처럼 떨림을 진짜 입력으로 착각하고, 너무 길면 신중한 요리사처럼 빠른 연타를 놓칠 수 있습니다.

    디바운스 타임 5ms는 어디서 온 숫자인가

    커스텀 키보드 펌웨어 QMK는 디바운스 타임의 기본값을 5ms로 두고 있습니다. 이 숫자는 임의로 정한 게 아니라, 체리 MX 계열 스위치의 실측 바운스 시간(약 5ms 이하)에 맞춰 정해진 값에 가깝습니다. 즉 “접점이 떨리는 시간보다 조금 더 여유 있게 무시 구간을 잡는다”는 원리입니다.

    QMK는 이 판단 시간을 적용하는 방식을 세 가지 축으로 나눕니다. 먼저 앞서 요리사 비유에서 다룬 즉시 반응형(eager)과 안정 확인형(defer)이 있고, 여기에 더해 이 판단을 키보드 전체에 하나로 적용할지(global), 키 하나하나마다 따로 적용할지(per-key), 행 단위로 적용할지(per-row)를 선택할 수 있습니다. QMK 공식 문서에 따르면 기본 알고리즘인 sym_defer_g는 안정을 확인한 뒤 반응하는 전체 공통 타이머 방식으로, 성능과 메모리 사용이 가장 가볍고 노이즈에도 강하다고 설명합니다.

    방식요리사 비유특징
    Eager(즉시)첫 거품에 바로 불 줄임반응 빠름, 노이즈에 약함
    Defer(대기)거품 안정 확인 후 선언반응 조금 느림, 노이즈에 강함
    Global주방 전체 타이머 하나가볍고 빠름, 기본값
    Per-key냄비마다 타이머정밀하지만 자원 소모 큼

    디바운스 타임 값 자체도 사용자가 config.h에서 직접 바꿀 수 있습니다. 값을 낮추면 판단 시간이 짧아지고, 값을 올리면 더 길게 안정을 기다립니다. 다만 이 숫자를 무작정 낮추는 게 항상 좋은 선택은 아니라는 점은 뒤에서 다시 다루겠습니다.

    📘 QMK 공식 문서 – Debounce Algorithm 보기

    디바운싱을 안 하면 생기는 문제 – 오타와 유령 입력

    주방으로 다시 돌아가 보겠습니다. 만약 누군가 도마의 “탁탁탁” 소리를 전부 별개의 칼질로 기록한다면 어떨까요. 실제로는 재료를 한 번 썬 건데 기록에는 세 번 썬 것으로 남습니다. 키보드도 이 판단이 빠지면 똑같은 일이 벌어집니다.

    키보드 디바운싱이 없거나 판단 시간이 너무 짧으면, 한 번 누른 키가 두세 번 입력되는 유령 입력(ghost input)이 생깁니다. 문서를 작성할 때는 “keyboard”가 “keyyboard”처럼 글자가 중복되는 오타로 나타나고, 게임에서는 한 번만 앞으로 가려던 캐릭터가 두 칸 이동하거나, 아이템을 한 번만 쓰려던 게 연속으로 소모되는 식으로 나타납니다.

    반대로 판단 시간을 너무 길게 잡으면, 빠르게 연속으로 눌러야 하는 상황에서 진짜 두 번째 입력까지 하나로 묶여 사라지는 문제가 생깁니다. 리듬 게임에서 빠른 연타가 씹히거나, 타자가 빠른 사람이 같은 키를 짧게 두 번 눌렀는데 한 번만 인식되는 경우가 여기 해당합니다.

    ⚠️ 주의할 점

    오래 사용한 키보드에서 특정 키만 유독 중복 입력되거나 먹통이 된다면, 소프트웨어 디바운스 설정보다 스위치 접점 자체의 마모나 이물질을 먼저 의심해야 합니다. 접점이 노후화되면 원래 정해둔 판단 시간을 넘어서는 긴 바운스가 발생할 수 있습니다.

    광축·홀이펙트 스위치도 디바운싱이 필요할까

    광축 스위치는 빛을 차단하는 방식으로, 홀이펙트 스위치는 자석의 위치 변화를 감지하는 방식으로 입력을 만듭니다. 둘 다 금속 접점이 직접 맞닿지 않기 때문에 기계식 스위치 특유의 접점 채터링에서는 상대적으로 자유롭습니다.

    그렇다고 키보드 디바운싱이 아예 필요 없어지는 건 아닙니다. 광축은 슬라이더가 빛의 경로를 여닫는 순간 물리적인 진동이 남아 있고, 홀이펙트는 자석이 센서 앞을 지나가는 짧은 구간에서 신호 값이 미세하게 흔들릴 수 있습니다. 접점 채터링이라는 원인은 사라져도 “짧은 시간 안의 신호 흔들림을 하나로 묶어 판단한다”는 디바운싱의 역할 자체는 그대로 남습니다.

    비유하자면 도마질 대신 국그릇 뚜껑을 여는 상황과 비슷합니다. 뚜껑이 부딪히는 접점은 없지만, 여는 순간 그릇이 살짝 흔들리며 소리가 두 번 나는 것처럼, 광축과 홀이펙트도 나름의 방식으로 짧은 순간의 흔들림을 걸러내는 판단 시간을 둡니다. 다만 그 판단 시간이 기계식보다 훨씬 짧게 설정되는 경우가 많다는 점이 실질적인 차이입니다.

    📘 CHERRY 공식 – 바운스 시간 개선 소식 보기

    디바운스 타임을 낮추면 벌어지는 트레이드오프

    빠른 반응 속도를 원한다고 판단 시간을 무작정 낮추는 건 성격 급한 요리사에게 모든 요리를 맡기는 것과 비슷합니다. 첫 거품만 보고 불을 줄이면 음식이 덜 익을 수 있듯, 판단 시간을 너무 낮추면 접점이 채 안정되기 전에 신호를 확정해버려 오입력 확률이 올라갑니다.

    반대로 판단 시간을 넉넉하게 잡으면 오입력은 줄지만, 그만큼 입력이 확정되기까지 걸리는 시간이 늘어납니다. 밀리초 단위라 대부분은 체감하지 못하지만, 초당 10타 이상을 요구하는 리듬 게임이나 격투 게임처럼 반응 속도가 승패를 가르는 환경에서는 이 차이가 실제로 느껴질 수 있습니다.

    그래서 QMK 같은 펌웨어는 기본값(5ms)을 유지하되, 필요하면 config.h에서 DEBOUNCE 값을 직접 조정할 수 있도록 열어둡니다. 스위치를 바꾸지 않았다면 기본값을 그대로 두는 편이 안전하고, 접점 개선이 확인된 최신 스위치로 전부 교체했을 때만 값을 낮추는 걸 고려하는 게 순서에 맞습니다.

    🔍 Link&Tem Insight

    디바운스 타임은 “짧을수록 좋은 값”이 아니라 “스위치의 실제 떨림 시간에 맞춘 값”입니다. 요리 타이머를 재료의 실제 익는 시간보다 짧게 맞추면 설익고, 길게 맞추면 타 버리는 것과 같은 이치입니다.
    📘 QMK 공식 문서 – DEBOUNCE 설정 방법 보기

    자주 묻는 질문

    Q. 키보드 디바운싱이 뭔가요?

    스위치 접점이 순간적으로 여러 번 붙었다 떨어지는 채터링을 하나의 진짜 입력으로 묶어서 판단하는 처리입니다.

    Q. 디바운스 타임은 왜 5ms인가요?

    기계식 스위치의 실측 바운스 시간이 대체로 5ms 이하이기 때문에, 그보다 살짝 여유 있는 값을 기본값으로 두는 경우가 많습니다.

    Q. 디바운싱과 고스팅은 같은 문제인가요?

    아닙니다. 디바운싱은 접점 떨림으로 인한 중복 입력을 막는 처리이고, 고스팅은 여러 키를 동시에 눌렀을 때 매트릭스 구조상 다른 키가 잘못 인식되는 별개의 현상입니다.

    Q. 광축 키보드는 디바운싱 설정이 필요 없나요?

    접점 채터링에서는 자유롭지만 신호 흔들림 자체가 사라지는 건 아니라서, 짧게라도 디바운싱 로직을 두는 경우가 일반적입니다.

    Q. 디바운스 타임을 직접 바꿀 수 있나요?

    QMK 등 커스텀 펌웨어를 쓰는 키보드라면 config.h에서 DEBOUNCE 값을 직접 설정해 조정할 수 있습니다.

    📚 함께 보면 좋은 글

    디바운싱을 이해했다면, 입력이 화면에 반영되기까지의 다른 과정들도 함께 보면 그림이 완성됩니다.

    ⌨️ 키 매트릭스와 고스팅, 왜 동시입력이 막히나
    채터링과는 다른 원인으로 여러 키가 동시에 막히는 이유를 정리했습니다.
    🖥️ 폴링레이트와 화면 프레임의 관계
    디바운싱을 통과한 신호가 화면에 반영되는 다음 단계를 다룹니다.
    💡 광축은 빛으로 어떻게 입력을 감지하나
    이 글에서 짧게 다룬 광축의 감지 원리를 더 깊이 풀어봅니다.
    🧲 홀이펙트, 자석으로 위치를 아는 원리
    접점 없이 자석으로 입력을 감지하는 방식을 자세히 설명합니다.

    🔗 공식 자료

    📘 QMK 공식 문서 – Debounce Algorithm 보기 📘 CHERRY 공식 – 바운스 시간 개선 소식 보기 📘 QMK 공식 문서 – DEBOUNCE 설정 방법 보기

    📖 출처

    QMK Firmware – Feature: Debounce (docs.qmk.fm/feature_debounce_type)
    QMK Firmware – Configuring QMK (docs.qmk.fm/config_options)
    CHERRY – CHERRY MX Update: More Than 100 Million Actuations and a Bounce Time of Less Than One Millisecond (cherry.de)
    SparkFun Electronics – Cherry MX Switch 제품 사양 페이지
    Deskthority Wiki – Cherry MX 기술 변천사 문서

    Link&Tem 한 줄 정리

    키보드 디바운싱은 접점이 떨리는 짧은 순간을 하나의 진짜 입력으로 묶어주는 판단 시간입니다. 도마의 “탁탁탁” 소리를 한 번의 칼질로 인정하는 요리사처럼, 판단 시간을 스위치의 실제 떨림에 맞게 잡는 것이 오타도 줄이고 반응도 놓치지 않는 균형점입니다.

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다