좋은 키보드 찾다 찾다 직접 만든 키보드 제작기 2. 엄지 키

한결

전편: 좋은 키보드 찾다 찾다 직접 만든 키보드 제작기 1. 설계

지난 줄거리

굳이 엄지에 집착하는 이유

님은 바로 엄지를 말하는 것입니다 여러부우우우우우운!

인체공학 키보드의 엄지 부분에 관한 글입니다. 엄지 키의 목적, 원리, 설계, 개발 과정 등에 관해 썰을 풀어 보겠습니다.

기존 키보드에서 엄지가 차지하는 비중은 미미합니다. 애초에 그게 이 키보드 개발을 시작하게 된 동기입니다. 엄지를 어떻게 써먹느냐에 따라 키보드의 편의성, 생산성은 혁명적으로 증대될 것이라는 원대한 포부! 시작품을 만들어 보면서 수우많은 시행착오를 거듭하는 과정에서 본인은 그것을 더욱더 확신하게 된 것입니다!

아니 왜? 왜 엄지가 그렇게 중요하다는 것인가? 그것을 알기 위해서는 근골격해부학을… 으악 앉되

최대한 쉽게 설명해 보겠습니다.

검지부터 소지까지 각 손가락을 움직일 때 발생하는 인접한 손가락들의 움직임

손가락에는 근육이 없습니다. ?! 뭐라고? 사실입니다. 저도 키보드 만들겠다고 근골격해부학을 공부하면서 처음 알았는데요. 기모근이라는 모공 아래의 미세근육을 제외하면, 손가락에는 근육이 없습니다. 그러면 도대체 손가락은 어떻게 움직이느냐? 힘줄로 움직입니다. 근육은 다 손등이라든지 팔뚝이라든지, 하여간 손가락에는 없고, 멀리 있는 근육들이 손가락의 힘줄과 연결돼 있어서, 근육이 수축하면 힘줄이 당겨지면서 손가락을 움직이게 된다는 것입니다. 그래서 여러분이 주먹을 쥐었다 폈다 천하를 쥐락펴락 해보시면 손가락에 힘이 들고 아픈 것이 아니라 전완에 힘이 들고 아픈 것을 느끼실 수가 있습니다.

따라서 여러분이 아무리 단백질 보충제를 먹고 링핏, 헬스, 파워 근육 운동 단련 댄스 폭발 탈춤을 해서 온몸이 우락부락해져도 손가락은 우락부락 근육근육 안 된다는 것입니다. 근육이 없는 손가락을 움직이기 위해 손가락에는 많은 힘줄들이 자리잡고 있으며 대체로 여러 힘줄이 한 근육과 연결돼 있습니다. 그리고 손가락과 손가락은 뼈와 뼈를 연결하는 인대들로 또 연결돼 있고요. 이게 왜 중요하냐면, 바로 이것 때문에 손가락이 그렇게 자유자재로 움직여지지 않는다는 것입니다.

검지부터 소지까지 다른 네 손가락은 다 인대와 힘줄로 서로 직간접적으로 연결돼 있습니다. 이것은 저의 뇌피셜이 아니고 근골격해부학 교과서에 나오는 내용이니 믿으십시오. 예를 들어 네 손가락 모두 손가락폄근(extensor digitorum)에 연결돼 있어서 손가락 펼 때(신전운동) 이 근육을 사용하는데, 이렇게 생긴 근육입니다.

아래팔의 손가락폄근

중지(가운뎃손가락)와 소지(새끼손가락) 사이에 있는 반지 끼는 손가락이 약지인데요. 약지는 이 손가락폄근만으로 신전운동을 합니다. 그래서 보통 사람은 다른 손가락 다 접어놓고 약지만 펴려고 하면 안 펴집니다. 다른 손가락들 때문에 손가락폄근을 수축시킬 수가 없거든요. 이런 식입니다. 손가락은 서로 자유롭고 독립적인 움직임을 할 수가 없습니다.

그런데 엄지가 바로 예외라는 것이죠. 엄지는 독립적인 운동이 가능합니다. 하필이면 영 좋은 근육과 힘줄의 배치 덕분에 다른 손가락을 구부렸을 때나 폈을 때나 엄지를 자유롭게 움직일 수 있다는 거죠.

나머지 손가락을 폈든 접었든 잘 움직이는 엄지

독립적인 움직임이 왜 중요한가? 키보드에서 조합 키를 누르잖아요. 예를 들어 Ctrl-Z 누르면 실행 취소이고 Ctrl-C 누르면 복사이고 Ctrl-V 누르면 붙여넣기이고. 여러 키를 동시에 눌러야 되죠. 그래서 Ctrl, Alt, Shift 처럼 혼자서는 잘 안 쓰이고 주로 다른 키와 함께 눌려서 쓰이는 키를 수식자(modifier)라고 하는데요.

Ctrl, Alt, Shift 등 수식자의 위치

근데 기존 키보드에서는 수식자를 소지(새끼손가락)로 누르거든요? 그러면 소지 누른 채로 다른 손가락을 움직여야 되는데 다른 손가락들이 그렇게 독립적으로 운동할 수가 없으니까 힘듭니다. 인대에 무리가 가죠.

여기서 한 술 더 떠서 수식자 두 개 누르는 경우, 예를 들어 웹 브라우저에서 Ctrl-Shift-T (닫은 탭 되살리기) 라든지 Ctrl-Shift-R (캐시 없는 새로 고침) 같은 거 누르려고 하면 약지까지 써야 되죠. 일단 손가락을 좌우로 벌려 찢어야 돼서 아프고요. 개별적으로 움직일 수 없는 손가락들을 어떻게든 따로 놀리려고 하다 보니까 부자연스러운 움직임으로 손가락에 무리가 옵니다.

Ctrl+Shift+T를 같이 누를 때 고통에 시달리는 손

수식자를 이렇게 누르게 하면 조합 입력 할 때마다 손가락과 손등에 통증 오는 게 딱 봐도 건초염, 건막염의 신호입니다. 이렇게 살 수는 없다는 생각입니다. Ctrl, Alt, Shift 는 아무리 봐도 엄지로 눌러야 합니다. 엄지로 Ctrl, Alt, Shift 누르면 그 상태로 다른 손가락을 움직여도 통증도 거의 없고 영 좋을 것입니다.

그러므로 엄지로 수식자를 누르도록 키보드의 형상과 구조를 바꾸면 좋겠다는 것입니다.

엄지로 수식자 누르기: 원시적 발상

이렇게요.

엄지의 다른 장점은 다른 손가락으로는 잘 안 되는 “모든 방향 움직임”이 자유롭다는 겁니다. 다른 손가락들은 구부렸다 폈다(굴곡·신전 운동)는 잘 되는데 벌렸다 오므렸다(내전·외전 운동)는 잘 안 되거든요. 각도도 한정돼 있고 정밀성도 떨어집니다. 반면에 엄지는 굴곡·신전·내전·외전 다 잘 돼요. 그래서 손끝이 닿을 수 있는 공간 범위가 훨씬 넓습니다. 그러면서 내전·외전 컨트롤이 다른 손가락들에 비해 정교한 편입니다.

실제로 트랙볼 중에 엄지 하나만 가지고 트랙볼 컨트롤하는 기종이 많거든요. 마우스는 모든 손가락과 손목까지 사용해서 움직임을 조작하는데 엄지 트랙볼은 엄지만 쓴다는 얘기잖아요? 근데도 충분히 속도나 정확도가 나온다는 거죠. 무엇보다 움직임이 종방향 횡방향 둘 다 자연스럽고 매끄러우면서 정밀하기 때문에 트랙볼처럼 상하좌우 움직임이 필요한 경우에도 매끄럽게 소화가 되는 것입니다.

근데 이런 중요한 손가락을 기존 키보드에서는 사실상 봉인하다시피 하고요. 스페이스바 누르는 거 외에 하는 일이 아무것도 없죠. 사실 그 스페이스바도 양손 엄지에 할당돼 있고, 사람들은 왼손 엄지 아니면 오른손 엄지 둘 중 하나로만 스페이스바를 누르는 경향이 있기 때문에, 엄지 하나는 아예 하는 일이 없는 셈입니다. 큰 낭비죠.

그래서 인체공학 키보드 설계를 보면 엄지를 좀 더 잘 써먹어보려는 여러 가지 아이디어를 볼 수 있는데요. 실제로 그런 키보드를 사서 써보기도 했는데 당장 제가 원하는 만큼만 엄지를 활용하는 것도 버거웠습니다. 어쨌든 제가 하고 싶은 일은 키보드 쓰면서 엄지로 수식자를 누르고, 엄지로 트랙볼을 조작하는 것입니다.

엄지에 키 많이 배치하기

하지만 문제가 있습니다. 이 키보드의 설계 목적 중 가장 중요한 것은 리프트리스, 바로 “기본 위치에서 손을 떼지 않고” 모든 입력을 하는 것입니다. 그런데 엄지를 제외한 모든 손가락에 각각 여섯 개씩 키를 할당해도 누를 수 있는 키는 48키밖에 안 됩니다. 게다가 소지는 가동범위가 작아서 기본 위치에 손을 고정한 상태로는 키 여섯 개 누르는 것이 불가능합니다. 제가 손이 작은 편인데 제 손 크기 기준으로 네 개 정도 누르는 게 고작인 것 같습니다. 그러면 소지로 누를 키를 네 개로 줄이면 6 + 6 + 6 + 4 = 22, 양손 합쳐서 44키가 됩니다.

손가락마다 6-6-6-4로 배치하는 경우 44키, 표준 101키

“표준 101키”를 지원한다고 생각하면 턱없이 적은 키입니다. 키 수가 적은 키보드인 리얼포스나 해피해킹도 각각 87키, 60키입니다. 44키는… 너무 적소… 일딸라…

실제로 많은 노트북, 미니키보드들이 적은 키 수를 극복하기 위해 Fn 키를 넣어서 대응을 합니다. 저도 Fn 키를 넣을 수밖에 없습니다. 그런데 Fn 키도 수식자입니다. 그러면 수식자가 몇 개인가?

이렇게 다섯 개가 됩니다.

하지만 엄지 자리에 키 다섯 개를 넣으려니 공간이 모자란 것입니다. 사실 네 개만 넣어도 이미 답이 안 나옵니다.

가로로 네 개의 키를 배열한 엄지손가락 부분 부품

너무 큽니다. 게다가 엄지 닿을 곳에 트랙볼도 넣어야 하는데 그냥 물리적으로 공간이 없습니다.

더 골치아픈 것은 수식자 여러 개를 동시에 눌러야 하는 경우입니다. Ctrl-Shift-T는 어떻게 입력해야 할까요? 왼손 엄지로 Ctrl 누르고 오른손 엄지로 Shift 눌러서 어떻게든 입력할 수 있을지도 모릅니다. 하지만 Ctrl-Alt-Delete는? 기본 키가 44개밖에 없으니 Delete는 아마도 Fn 조합 입력으로 눌러야 할 겁니다. 뭐 예를 들어 Fn-D 하면 Delete가 입력된다고 칩시다. 그러면 Ctrl-Alt-Fn-D 를 눌러야겠네요. 어떻게 Ctrl과 Alt와 Fn을 동시에 누를 수 있는가? 불가능합니다.

이 때문에 저는 갑자기 우울해져서 키보드 개발을 때려치우고 게임을 하러 갔습니다.

발상을 전환하여 더 적은 키로 문제를 해결하자

그러나 실은 세상에 이미 좋은 해결책이 나와 있었던 것입니다. 게임패드입니다. 게임패드에는 공간을 적게 차지하면서도 엄지의 사소한 움직임에 의해 정교한 입력을 달성할 수 있는 장치가 이미 구현되어 있습니다. 그렇습니다. 십자 키와 스틱입니다.

게임패드

거의 모든 게임패드에 십자 키나 스틱이 하나씩은 달려 있다는 것은 문과출신인 겜알못인 저도 아는 사실입니다. 또 주인공의 움직임을 조작하는 것 말고도 3차원 카메라 시점을 조작하는 등, 여러 종류의 방향 입력을 동시에 넣을 수 있으면 좋겠다는 생각으로 요즘 콘솔 기본 게임패드는 스틱을 여러 개 넣는 추세입니다. 스틱은 엄지로 간편하게 조작할 수 있으며 공간을 많이 차지하지 않고 정교한 입력이 가능합니다.

엄지로 수식자 누르기: 스틱

그러므로 좌우측 엄지로 누를 위치에 스틱을 배치하여 전·후·좌·우 방향 입력과 가운데를 누르는 중클릭을 지원하고 전·후·좌·우·중 각각에 Ctrl, Alt, Shift, Meta, Fn 을 배당하자는 것이 엄지 키의 기본 발상입니다. 이렇게 하면 훨씬 더 적은 공간에 구현하면서도 모든 입력을 정확하게 받을 수 있습니다.

조합 입력 문제도 해결됩니다. 위에서 Ctrl과 Alt와 Fn을 동시에 누를 수 없다고 좌절했는데, 예를 들어

이렇게 배치했다고 치고, 가운데 눌러서 중클릭한 상태로 좌하 방향으로 당기면 깔끔하게 Ctrl-Alt-Fn이 입력됩니다. 엄지 하나로 수식자 세 개를 누르는 데에 아무 문제가 없는 것이죠. 이걸 오른손 엄지로 하면서 왼손 엄지로는 우상 방향을 누르면 Ctrl-Alt-Shift-Meta-Fn이 입력될 테니, 두 엄지로 모든 수식자를 동시에 누르는 것이 매끄럽게 가능한 것입니다.

영 좋군요.

그러므로 이런 취지로 엄지 키를 만들어 보기로 하였습니다. 이 엄지 키에는 몇 가지 요구조건이 발생합니다.

  1. 디지털 입력이어야 합니다. 대부분의 게임패드 스틱은 아날로그 입력을 전제하고 있습니다. 조금만 젖히면 주인공이 천천히 걷고, 끝까지 젖히면 주인공이 뜁니다. 위로 올리면 탱크가 북으로 가고 거기서 살짝 기울이면 북북서로 비스듬히 갑니다. 즉 “적게 누름”과 “많이 누름”이 존재하고, 또 상방향과 좌방향 “사이”의 입력이 존재합니다. 그러나 엄지 키는 Ctrl, Alt, Shift, Meta, Fn 을 누르려고 있는 키입니다. 키보드의 키는 눌렸든지 안 눌렸든지 둘 중 하나입니다. 중간 상태가 있어서는 안 됩니다.
  2. 피드백과 반발이 있어야 합니다. 좌방향 누르면 누른 것 같은 느낌이 손가락에 와야 하고, 상방향을 누른 게 아니라 좌방향 가려다가 실수로 스친 경우 튕겨내야 합니다. 물론 일반적인 기계식 키보드에는 적축처럼 액티베이션 포인트를 지났는데도 별 피드백이 없는 것이 있습니다만, 이건 키 하나가 입력 하나를 담당하니까 괜찮은 것이고, 이번에 만들 엄지 키는 키 하나로 무려 다섯 개의 입력에 대응해야 하기 때문에, 예를 들어 좌방향 눌렀는데 실수로 상방향이 함께 입력되면 영 좋지 않을 것입니다.
  3. 압력 계단이 있어야 합니다. 즉, 상하좌우 입력을 하려는데 중클릭이 일어나지 않아야 합니다. 스틱을 상하좌우로 미는 데는 마찰력이 필요한데, 이 마찰력은 수직항력에 비례합니다(갑자기 분위기 일반물리). 스틱을, 세게는 아니더라도 누르긴 눌러야 상하좌우로 밀 수도 있는 것입니다. 그래서 게임패드 스틱은 중클릭이 있는 경우, 중클릭의 오퍼레이팅 포스(흔히 “키압”이라고 하는)를 확실히 높게 합니다. 예를 들어 우방향 누르는 데에는 50g 들지만 중클릭에는 240g 필요한 식이고, 그러면 100g 정도의 힘으로 우방향 눌러도 중클릭 오발이 없죠.

구현

실제 구현 과정은 매우 삽질이었습니다. 내가 키보드 빌런이다!

일단, 시중에 나와 있는 5방향 스위치라는 물건이 있습니다.

5방향 스위치

이렇게 생겼습니다. 5방향으로 디지털 입력을 제공하며, 택트 스위치입니다. 즉, 클릭감을 제공합니다. 영 좋군요. 여기에 마찰을 극대화하기 위해 표면에 요철이 있는 캡을 만들어 씌워서 써봤습니다.

5방향 스위치 사용

근데 불편합니다. 키압이 너무 높은 것도 문제지만 느낌 자체가 제가 원하는 것과는 많이 다릅니다.

1차 시도

제 생각에, 가장 이상적으로는,

네 방향에 스위치

네 방향에 기계식 스위치가 있어서,

최초 설계 단면도

최초 설계 단면도 - 스틱을 한쪽으로 밀었을 때

엄지가 스틱을 밀고 다니면 그 스위치들이 눌리는 방식이 가장 좋을 것 같습니다. 이게 개념 실증기를 만들기 위한 최초 설계였습니다. 중심축으로는 볼트를 쓰고, 못대가리에 캡을 만들어 씌우는 의도입니다. 아랫쪽에 회전중심이 있고 못대가리를 밀면 중간의 스위치들이 눌리는 방식이기 때문에, 2종 지레에 해당합니다. 그리고 바닥에 택트 스위치를 하나 둬서, 중클릭을 받아들일 수 있게 했습니다.

1차 설계 전체

이 설계는 실물을 만들어 검증을 해봤는데 일단 택트 스위치의 키압이 생각보다 높지 않아서 압력 계단이 잘 만들어지지 않았습니다. 그리고 2종 지레이다 보니 엄지의 이동 거리가 예상보다 더 길어지는 문제도 있었습니다.

2차 시도

2차 설계 바닥 위에 택트 스위치 커버

키압이 좀 더 높은 새 택트 스위치를 도입하기 위해 치수에 맞는 바닥을 만들었습니다.

2차 설계 중심축

중심축은 힘점, 받침점, 작용점의 거리를 적절히 조절했습니다. 캡은 오목한 모양으로 만들었습니다. (다행히 나중에 이게 잘못된 생각이라는 것을 깨닫고 일반 게임패드 스틱과 비슷하게 볼록한 모양으로 바꿨습니다…)

2차 설계 단면도

2차 설계 전체

그런데 이렇게 만들었더니 이번에는 택트 스위치를 눌러야 할 중심축의 발 부분을 많이 키울 수밖에 없었고, 중클릭 상태로 전후좌우로 밀었을 때 발이 택트 스위치를 너무 많이 “긁고” 다니는 것이 마음에 안 듭니다.

3차 시도

  1. 손가락의 이동 거리가 길면 키압이 낮아지고 이동 거리가 짧으면 키압이 높아지는데, 적절한 타협점을 찾기 위해 2종 지레 말고 1종 지레를 써보자.
  2. 바닥에 있는 택트 스위치를 긁고 다니는 것은 영 좋지 않은 것 같다. 아예 중심축의 내부에 택트 스위치를 내장할 수는 없을까?

위와 같은 두 가지 목적을 염두에 두고 새로운 설계를 만듭니다.

3차 설계 상단부

새로운 키캡은 크고 복잡해졌습니다.

3차 설계 상단부

택트 스위치를 키캡 안에 내장시키는 설계를 시도했기 때문입니다. 중클릭 상태로 전후좌우로 밀었을 때 바닥 긁는 문제를 해결하기 위한 설계입니다.

3차 설계 단면

중심축을 원통형으로 만들어서 공간을 확보하고 내장된 택트 스위치의 선을 따서 이 공간으로 빼겠다는 생각입니다.

이 설계는 실제로 잘 작동하는 것을 확인했습니다. 하지만…

4차 시도

어쨌든 회전하는 중심축은 꼭 있어야 하고, 전후좌우 입력은 그 중심축의 움직임에 따라 눌리는 스위치들을 배치하면 되는데, 중클릭이 문제입니다. 중클릭 상태에서 전후좌우로 밀면 어딘가는 중클릭의 내리누르는 힘을 지탱하면서 밀리지 않아야 하고 그러면서 전후좌우로 매끄러운 움직임을 제공해야 합니다. 쉽게 생각해볼 수 있는 것은 볼조인트를 PTFE 같은 저마찰 소재로 지탱하되 접점을 3점으로 해서 마찰을 최소화하고 안정성을 극대화하는 것이겠죠.

4차 설계의 중심축과 이를 지탱하는 접점

그리고 중클릭 압력이 들어오면 바로 이 3점에 압력이 걸릴 것이고 그러면 3점을 부착한 판재가 힘을 받을 것입니다.

4차 설계의 택트 스위치

그 판재가 택트 스위치(빨갛게 표시한 부분)를 누르게 하는 구조입니다.

이것으로 중클릭 압력 상태에서도 완벽하게 매끄러운 전후좌우 움직임이 가능할 것입니다. 님은 바로 3점을 말하는 것입니다 여러부우우운

만들어진 결과물은 기능상으로는 아주 만족스럽고 전혀 흠잡을 데가 없었습니다. 바로 이런 키감을 원했다고 해도 과언이 아닐 정도였습니다. 문제는 부피였는데요. 키보드의 엄지 위치에 배치하기 위해서는 부피가 너무 크면 안 됩니다. 하지만 구성품들을 최대한 밀착시켜 부피를 줄여 보려 해도…

부피 줄이기를 시도하는 과정에서 만든 프레임들

…줄이는 데에는 한계가 있었고 설계가 좀 막막해졌습니다.

5차 시도…?

그냥 기성품 5방향 스위치에 스틱을 씌우되, 스틱의 길이를 적절하게 설정하면, 1·2종 지레는 받침점과 힘점의 거리가 멀수록 필요한 힘이 줄어든다는 원리에 의해 오퍼레이팅 포스를 적절한 수준으로 맞출 수 있을 것입니다. 그것으로 압력 계단을 어떻게든 잘 좀 만들어보자는 계획입니다.

5차 시도 실물

그 결과 압력 계단을 원하는 수준으로 설정하긴 했는데, 사용감은… 애매합니다. 사실 이게 고민의 원인입니다. 4차 시도의 사용감이 월등히 좋긴 하지만, 이것도 못 쓸 정도는 아닌 것이죠. 그래서 스위치 자체를 좀 더 좋은 걸로 구해 볼까 하는 생각을 하게 되었고… 부품을 주문했는데 코로나19 사태로 인해 늦게 올 것 같군요.

구현 요약

결론

어쨌든 엄지 키를 5방향으로 구현하고 여기에 수식자를 배치하고, 실제 타자를 해본 결과 능률은 아주 좋습니다. 발상 자체의 타당성은 의심의 여지가 없는 것 같습니다. 문제는 구현인데, 각각 장단점이 있어 아직 확실한 결론은 내리지 못했습니다.

아무튼 계속해서 최고의 인체공학 키보드를 향하여 삽질을 해볼 생각입니다. 긴 글 읽어주셔서 감사합니다.