서문
제가 마지막으로 Windows를 사용했던 경험은 10년 전 대학 시절로 거슬러 올라갑니다. 당시 사용했던 레노버 Y470-P는 설계 결함이 있어서, 제가 한 번 뚜껑을 닫았을 때 부품 하나가 타버리는 사고가 발생했습니다. 결국 메인보드를 교체해야 했죠.

졸업 후 바로 2015년형 15인치 Macbook Pro를 구입했습니다. 그 후 몇 년 동안 컴퓨터를 바꾸었지만 계속 애플 생태계에 머물렀기 때문에, Windows의 사용 경험은 10년 전 그대로였습니다: 생태계의 분열, 사용하기 어려운 소프트웨어, 추악한 디자인(이 부분은 여전히 변함없습니다), 터무니없는 인터랙션.
618 행사에서 중고급 사양의 PC를 조립했습니다. 14700KF, 5070Ti, 크루셜 64GB 6400MHz 메모리와 크루셜 2TB SSD로, 손에서 놓을 수 없을 정도로 만족스럽습니다: 고사양 Windows가 이렇게 부드러울 줄이야. 시스템 디자인 언어는 여전히 터무니없지만, 소프트웨어 실행 속도나 훌륭한 소프트웨어의 디자인 언어(예: Windows용 Apple Music)는 매우 훌륭했습니다. 물론 가장 중요한 것은, 제가 Windows를 구입한 이유는 게임(80% 이유)과 플랫폼 특화 코드인 C# 작성(20% 이유) 때문이었습니다.
효율적인 입력의 본질
저는 오랜 시간(9년) 동안 Mac에서 HHKB를 사용해왔기 때문에, Mac의 HHKB 키 매핑을 Windows에 적용하려고 합니다. 이렇게 하는 이유는 습관적인 측면뿐만 아니라 다음과 같은 고려 사항이 있습니다:
-
커서를 행의 시작이나 끝으로 이동하거나 오른쪽 삭제와 같은 텍스트 편집에 자주 사용되는 기능은 Windows에서 전용 키를 눌러야 합니다. 예를 들어 행 시작은 Home, 행 끝은 End, 오른쪽 삭제는 Del 등입니다. 수정 키 + 키 조합으로 이 작업을 수행할 수 없지만, Mac에서는 시스템 수준에서 Emacs 단축키를 지원하기 때문에 행 시작은 Control + A, 행 끝은 Control + E, 오른쪽 삭제는 Control + D로 쉽게 구현할 수 있습니다.
-
커서를 상하좌우로 이동하는 것도 마찬가지입니다. Windows에서는 전용 방향키로 커서를 이동하지만, Mac에서는 Control + B, F, N, P를 사용할 수 있습니다.
아마도 궁금증이 생길 수 있습니다. 왜 저는 Windows에서 전용 키를 사용하는 대신 Mac의 수정 키 + 단축키 조합을 선호할까요?
이 질문에 대한 답은 제가 HHKB의 60% 배열을 특히 좋아하는 이유이기도 합니다: 제 양손 손바닥이 크게 움직이지 않고도 모든 작업을 완료할 수 있어 입력 효율을 보장합니다.
우리 프로그래머 세계에서는 마우스를 사용할 수 있을 때 절대로 키보드를 사용하지 않으면 처벌을 받습니다!
예를 들어, Windows에서 빠르게 내용을 입력하고 있는데 이전에 작성한 부분에 오타가 있어 앞의 몇 글자를 삭제해야 한다고 가정해보겠습니다. 이 경우 다음 단계가 필요합니다:
-
오른손을 알파벳 영역에서 떼고 검지로 오른쪽 하단의 방향키 위치를 더듬어 찾습니다(물론 87키 이상 키보드는 더듬을 필요 없이 방향키 위치를 쉽게 찾을 수 있습니다).
-
방향키를 눌러 커서를 목표 위치로 이동합니다.
-
오른손을 방향키 위치에서 떼고 Backspace 위치로 이동합니다.
-
삭제 키를 누릅니다(Backspace 위치).
Mac의 HHKB 배열 키보드에서는 동일한 작업을 왼손 하나로만 수행할 수 있습니다:
-
왼손 새끼손가락으로 Control + B를 눌러 커서를 목표 위치로 이동합니다.
-
오른손 새끼손가락으로 Backspace를 누르거나 왼손 새끼손가락으로 Control + H/D(왼쪽/오른쪽 삭제)를 누릅니다.
이렇게 간단합니다. 양손을 알파벳 영역에서 떼지 않아도 됩니다.
심지어 수정이 완료된 후, Windows에서는 오른손을 다시 알파벳 영역에서 떼고 End 키를 눌러 최신 커서 위치로 돌아가야 하지만, Mac에서는 왼손으로 Control + E만 누르면 됩니다.
힘든 백틱(`) 입력
제가 HHKB를 좋아하는 또 다른 이유는, 저는 프론트엔드 개발자라서 백틱(물결표시 키)을 비교적 자주 사용해야 하기 때문입니다. 일반적인 60% 키보드에서는 이 키가 ESC 위에 배치되어 있고, 단축키 조합으로 눌러야 합니다. 하지만 HHKB는 이 키를 독립적으로 오른쪽 상단에 배치하고, 삭제 키를 아래로 내리고, | 키를 위로 올려 구현했습니다(즉, 일반적인 Backspace가 두 개의 1u 키로 분할되었습니다).


힘든 Control 입력
일반적인 배열의 키보드에서 입력 효율에 영향을 미치는 또 다른 설계는 Control 키가 왼쪽 하단에 위치한다는 점입니다. 따라서 Control + 키를 누를 때마다 손목이 왼쪽으로 구부러지고 손바닥이 오른쪽으로 이동합니다. 손바닥을 움직이게 하는 어떤 입력 방식도 우아하지 않으며, 결국 효율성에 영향을 미칩니다.

하지만 인터넷에서 어떤 사람은 새끼손가락 아래쪽 손바닥 부분으로 왼쪽 하단의 Ctrl 키를 누르려는 시도를 하기도 하는데, 터무니없습니다:

저는 심지어 극단적으로 생각하기도 합니다. 입을 벌리고 닫아서 발음하는 어떤 언어도 우아하지 않다고요. 우아한 언어의 발음은 입을 크게 벌리거나 닫을 필요 없이 혀와 목의 조합만으로도 명확하게 발음할 수 있어야 합니다. 그래서 저는 일본어가 가장 우아한 언어라고 생각합니다—이는 일본어의 표현력, 특히 강한 감정을 표현하는 욕설 측면에서 약점이 되기도 하지만요.
불필요한 CapsLock 키
대문자 입력을 자주 그리고 오랫동안 하는 사람은 거의 없을 거라고 생각합니다. 따라서 일반적인 키보드 배열에서 CapsLock 키를 왼손 새끼손가락이라는 중요한 위치에 배치한 것은 정말 말도 안 되는 일입니다.

종합해 보면, 저는 HHKB의 키 배열이 가장 완벽하다고 생각합니다. 단순히 대칭적인 아름다움뿐만 아니라 입력 효율성도 뛰어나기 때문입니다. 또한 Mac에서의 단축키, 적어도 텍스트 작업 효율성 측면에서는 Windows보다 우수합니다.
따라서 이제 Mac의 키 입력을 Windows에서 재현하는 방법을 공유하겠습니다. 이를 통해 두 운영체제에서 동일한 근육 기억으로 효율적으로 편집할 수 있습니다.

HHKB의 가장 큰 단점으로 지적되는 방향키에 대해 말하자면, 기본적으로 방향키로 커서를 이동할 수 있는 모든 곳에서 Emacs 단축키를 사용할 수 있습니다. 하지만… 일부 터미널, 예를 들어 Python에서는 Control-D가 CLI를 종료하는 명령이고, Remote SSH로 연결한 Linux 호스트에서는 약간 불편할 수 있습니다. 하지만 Warp 같은 좋은 터미널을 사용하면 이러한 문제를 어느 정도 피할 수 있습니다. Warp는 텍스트 편집기처럼 명령을 입력할 수 있어 Emacs 단축키로 명령을 입력할 수 있습니다. 설명만으로는 이해하기 어려울 수 있지만, 사용해 보면 일반 터미널과의 차이를 바로 알 수 있습니다.
키보드 요구 사항
FN 키와 다른 키의 조합을 지원하는 다중 레이어 키 매핑이 가능한 키보드가 필요합니다. 매크로 지원은 필수는 아닙니다. 일부 키보드는 최대 6개의 레이어를 지원하기도 합니다(듀얼 시스템 전환 시 각 시스템별 3개 레이어). 저는 새로 구입한 Nuphy Air75 V3 키보드를 사용하고 있습니다. HHKB 대신 이 키보드를 선택한 이유는 Windows에서 게임을 할 때 F 키 영역(F1~F12)이 필수적이기 때문입니다. 따라서 75키 배열이 제가 받아들일 수 있는 한계입니다.
누가 포탑을 놓치면 물음표를 보낸다 —— Faker

FN 키 매핑으로 Ecmacs 텍스트 편집 구현
다음과 같은 텍스트 편집 기능을 구현해야 합니다(아래 설명 형식은 Windows 키 -> Mac 단축키):
- 커서를 행의 처음으로 이동: Home -> Control + A
- 커서를 행의 끝으로 이동: End -> Control + E
- 커서를 아래로 이동: ↓ -> Control + N(Next)
- 커서를 위로 이동: ↑ -> Control + P(Previous)
- 커서를 왼쪽으로 이동: ← -> Control + B(Back)
- 커서를 오른쪽으로 이동: → -> Control + F(Front)
- 오른쪽 삭제: Del -> Control + D(Delete)
- 왼쪽 삭제: Backspace -> Control + H(H는 삭제를 의미하며 역사적인 이유로 해당 단어가 없습니다. 관심이 있다면 직접 검색해 보세요.)
저는 Mac에서 복사/붙여넣기에 Control+C/V 대신 Cmd+C/V를 사용하는 디자인을 더 선호합니다(하지만 매핑하지는 않았습니다). 아마도 Ecmacs에서 복사/붙여넣기를 지원하지 않는 역사적인 이유와 텍스트 편집에 특화된 단축키가 아니기 때문에 Mac에서는 복사/붙여넣기 단축키를 CMD로 설정한 것 같습니다.
따라서 Windows에서 Mac의 HHKB와 동일한 키 입력을 구현하려면 Caplock을 FN 레이어로 변경해야 합니다(저는 FN6으로 변경했습니다). 그런 다음 각 키를 하나씩 매핑하면 됩니다:

그리고 FN6 레이어에서 각 키를 Windows의 해당 기능 키로 매핑합니다:

알파벳 영역 키 수정
HHKB에서는 엔터 키 위에 삭제 키 Backspace가 있고, | 키가 아닙니다. 따라서 처음에는 Backspace와 | 키를 서로 바꿨지만, 어떤 이유에서인지 제 손이 75키 배열에 적응해 버려 삭제 키를 항상 위쪽의 | 키로 누르게 되었습니다. HHKB로 전환하면 아래 줄을 강제로 눌러야 해서 불편했습니다. 그래서 둘 다 BackSpace로 변경하고, 거의 사용하지 않는 | 키를 F 키 영역의 F13 위치로 옮겼습니다.

다음으로 Control과 Alt의 위치를 바꿨습니다. 이렇게 하면 Mac에서 CMD + C/V/T/W 등의 작업과 Windows에서 동일한 기능의 Control + C/V/T/W 등의 손가락 동작을 일치시킬 수 있습니다.
마지막으로 Win 키와 Alt를 서로 바꿔서(즉, Win 키를 키보드 왼쪽 하단에 배치) Windows와 Mac에서 Alt(Opt) 키의 위치를 동일하게 만들었습니다.

이제 스페이스 바 왼쪽의 키(Windows에서는 Ctrl, Mac에서는 CMD)를 누른 후 다른 키를 누르면 효과가 완전히 동일합니다. 예를 들어 Ctrl/Cmd + C로 복사, Ctrl/Cmd + V로 붙여넣기, Ctrl/Cmd + T로 새 탭 열기, Ctrl/Cmd + Shift + T로 닫힌 탭 복구 등이 가능합니다.
기타 키 수정
이미 Home과 End 단축키가 있기 때문에 키보드 가장 오른쪽에 있는 Home과 End는 불필요합니다. 그래서 저는 두 가지 조작을 했습니다. Home을 자주 사용하는 단축키로 변경했는데, 저는 Win + V로 설정했습니다. 이 단축키는 Windows에서는 클립보드 기록을 열고, Mac에서는 Cmd + Opt + C로 매핑하여 Alfred의 클립보드 기록 창을 열도록 했습니다.
Home 키는 M1 매크로로 매핑하여 복사 기록을 열고, End 키는 WinLock으로 변경하여 손이 기억하는 대로 왼쪽 아래의 Win 키를 누르는 것을 방지했습니다. 이제는 게임을 할 때도 Win 키를 잠그고, 습관이 들면 다시 열 계획입니다.



아쉬운 점
Windows에서는 Alt + Tab을 매핑할 수 없습니다. 이 키의 주요 기능은 다른 애플리케이션 창을 전환하는 것인데, 위와 같이 설정한 후에는 스페이스 바 왼쪽 두 번째 키 + Tab 키로 동작합니다.
하지만 동일한 기능, 즉 Mac에서 다른 애플리케이션을 전환할 때는 Cmd + Tab을 사용합니다.
따라서 제 설정은 애플리케이션 전환 키만 두 시스템에서 시스템 수준으로 매핑할 수 없을 뿐, 다른 키들은 모두 동일한 근육 기억으로 누를 수 있어 Windows 단축키 위치와 Mac 단축키 위치의 차이를 구분할 필요가 없습니다.
후기
자신에게 맞는 것이 최고입니다. 어떤 키 방식이 더 나은지 논쟁할 필요도 없습니다. 습관의 힘은 강력하며, 일단 익숙해지면 효율성이 가장 높아집니다.
모두 Happy Hacking 하시길 바랍니다!

저는 인생의 중요한 선택의 기로에 섰을 때, 누군가 최선의 방법을 알려주어 소중한 시간을 헛되이 보내지 않기를 바라곤 합니다. 그런 마음으로 저는 자주 블로그를 쓰며, 광활한 인터넷의 이 작은 구석에 제게는 단 한 번뿐인 인생 경험을 기록하여 도움이 필요한 분들에게 도움이 되기를 바랍니다.