맥북에서 코딩을 하다가 `(백틱)을 입력하려고 키보드 왼쪽 상단의 ~ 키를 눌렀는데 ₩(원화 기호)이 나와서 당황한 적 있으신가요? 개발자라면 한 번쯤은 겪어본 문제일 거예요.

마크다운에서 코드 블록을 만들 때, JavaScript에서 템플릿 리터럴을 쓸 때, 터미널에서 명령어를 조합할 때 — 백틱은 개발자에게 필수적인 문자인데, 한글 입력 상태에서는 ₩이 나오니까 매번 영문으로 전환해야 하는 번거로움이 생깁니다.

이 글에서 이 문제를 영구적으로 해결하는 방법을 알려드릴게요.

왜 ₩이 나오는 걸까?

먼저 원인을 이해해 봅시다. 이건 맥의 한글 키보드 레이아웃 설계 때문에 발생하는 문제예요.

맥의 한국어 입력 소스(한글 2벌식)에서는 키보드의 ` 키(숫자 1 왼쪽에 있는 키)가 **₩(원화 기호)**에 매핑되어 있습니다. 한국어 키보드 레이아웃에서 해당 키를 원화 기호로 지정해 놓은 거예요.

그래서:

  • 영문(ABC) 입력 상태에서 ` 키 → ` (백틱) 정상 출력
  • 한글 입력 상태에서 ` 키 → ₩ (원화 기호) 출력

일반 사용자에게는 큰 문제가 아닐 수 있지만, 개발자에게는 꽤 불편합니다. 코딩 중에 한글 주석을 달다가 백틱이 필요한 순간마다 입력 소스를 전환해야 하니까요.

Option+` 임시 해결법

가장 간단한 임시 해결법은 한글 입력 상태에서 Option + ` (⌥`)를 누르는 거예요. 이렇게 하면 한글 상태에서도 백틱이 입력됩니다.

하지만 이건 임시방편이에요. 매번 Option 키를 함께 누르는 건 귀찮고, 특히 마크다운에서 코드 블록을 만들 때 ```를 세 번 연속 입력해야 하는데, Option을 누른 채로 `을 세 번 치는 건 손가락이 불편합니다.

근본적인 해결책이 필요합니다.

DefaultkeyBinding.dict로 영구 설정하기

맥에서 한글 입력 상태에서도 항상 백틱이 나오도록 하려면, KeyBindings 설정 파일을 만들어야 합니다. 이건 한 번만 해두면 영구적으로 적용돼요.

단계별로 따라 하세요:

1단계: KeyBindings 폴더 확인 및 생성

터미널을 열고 다음 명령어를 실행합니다:

mkdir -p ~/Library/KeyBindings

이 명령어는 ~/Library/KeyBindings 폴더가 없으면 생성하고, 이미 있으면 아무것도 하지 않습니다.

2단계: DefaultkeyBinding.dict 파일 생성

같은 터미널에서 다음 명령어를 실행합니다:

cat > ~/Library/KeyBindings/DefaultkeyBinding.dict << 'EOF'
{
    "₩" = ("insertText:", "`");
}
EOF

이 명령어는 DefaultkeyBinding.dict 파일을 생성하고, ₩ 키 입력을 ` (백틱)으로 대체하는 설정을 기록합니다.

3단계: 파일 확인

제대로 생성되었는지 확인해 봅시다:

cat ~/Library/KeyBindings/DefaultkeyBinding.dict

다음과 같은 내용이 출력되면 성공입니다:

{
    "₩" = ("insertText:", "`");
}

4단계: 로그아웃 후 재로그인

이 설정은 로그인 시에 읽어들이기 때문에, 변경 사항을 적용하려면 로그아웃 후 다시 로그인해야 합니다. 또는 맥을 재시작해도 됩니다.

재로그인 후에는 한글 입력 상태에서 ` 키를 눌러도 ₩ 대신 ` (백틱)이 입력될 거예요.

텍스트 편집기로 직접 만드는 방법

터미널이 익숙하지 않다면 Finder에서 직접 파일을 만들 수도 있어요.

  1. Finder에서 Command + Shift + G를 누르고 ~/Library/KeyBindings를 입력해서 해당 폴더로 이동합니다 (폴더가 없으면 Library 폴더에서 KeyBindings 폴더를 새로 만드세요)
  2. 텍스트 편집기(TextEdit)를 열고 새로운 문서를 만듭니다
  3. 포맷 > 일반 텍스트로 변환 (Command+Shift+T)을 클릭해서 일반 텍스트 모드로 전환합니다
  4. 다음 내용을 정확히 입력합니다:
{
    "₩" = ("insertText:", "`");
}
  1. 파일 > 저장에서 파일 이름을 DefaultkeyBinding.dict로 지정하고, 위치를 ~/Library/KeyBindings/로 선택해서 저장합니다

주의: 반드시 **일반 텍스트(.txt가 아닌 .dict)**로 저장해야 합니다. TextEdit의 기본 형식인 서식 있는 텍스트(RTF)로 저장하면 작동하지 않아요.

설정 후 확인하는 방법

로그아웃/재로그인을 한 뒤에 설정이 제대로 적용되었는지 확인해 봅시다.

메모 앱 또는 텍스트 편집기를 열고:

  1. 한글 입력 상태(메뉴 바에 “한”이 표시된 상태)에서
  2. ` 키(숫자 1 왼쪽)를 누릅니다
  3. ` (백틱)이 입력되면 성공!
  4. 이전처럼 ₩이 나오면 설정 파일 경로나 내용을 다시 확인해 보세요

VS Code에서 확인: VS Code를 열고 한글 입력 상태에서 백틱을 입력해 보세요. 마크다운 파일에서 ```을 입력해서 코드 블록이 정상적으로 만들어지면 완벽합니다.

터미널에서 확인: 터미널 앱에서는 이 설정이 적용되지 않을 수 있어요. 터미널은 자체적인 키 입력 처리를 하기 때문입니다. 하지만 대부분의 터미널 앱(기본 터미널, iTerm2 등)에서는 한글 상태에서도 백틱이 정상 입력되는 경우가 많아요. 만약 터미널에서 여전히 ₩이 나온다면, 해당 터미널 앱의 설정에서 키 매핑을 별도로 조정해야 합니다.

마크다운과 코딩에서 백틱이 중요한 이유

왜 개발자들이 이 설정을 필수로 하는지 궁금한 분들을 위해, 백틱이 쓰이는 대표적인 상황들을 정리해 볼게요.

마크다운 인라인 코드: 마크다운에서 코드를 인라인으로 표시할 때 백틱으로 감쌉니다. `console.log()`처럼요. 이걸 ₩console.log()₩로 쓰면 당연히 작동하지 않죠.

마크다운 코드 블록: 여러 줄의 코드를 표시할 때 백틱 세 개(```)로 감쌉니다. 개발 블로그를 쓰거나 GitHub README를 작성할 때 수시로 사용해요.

JavaScript 템플릿 리터럴: ES6 이후 JavaScript에서 문자열을 만들 때 백틱을 사용합니다. `Hello, ${name}!` 이런 식이요. React 개발자라면 styled-components에서도 백틱을 매우 자주 써요.

쉘 명령어: 리눅스/맥 쉘에서 백틱은 명령어 치환에 사용됩니다. `date`처럼 백틱 안에 명령어를 넣으면 그 실행 결과가 문자열로 치환돼요. (최근에는 $(date) 문법을 더 많이 쓰지만요.)

슬랙/디스코드 메시지: 슬랙이나 디스코드에서 코드를 공유할 때도 백틱을 씁니다. 한글로 메시지를 쓰다가 코드를 넣어야 할 때 ₩이 나오면 정말 불편하죠.

주의사항 및 참고사항

이 설정을 적용하기 전에 알아둘 점들이 있어요.

₩ 기호가 필요할 때: 설정 후에는 한글 상태에서 ₩을 직접 입력할 수 없게 됩니다. ₩ 기호가 필요한 경우에는 Control+Command+Space로 이모지 및 기호 뷰어를 열어서 “원화”를 검색해서 입력하거나, 다른 곳에서 복사해서 붙여넣기 하면 돼요. 사실 ₩ 기호를 직접 타이핑할 일은 거의 없기 때문에 불편함은 미미합니다.

앱별 적용 범위: DefaultkeyBinding.dict 설정은 Cocoa 기반 앱에서 작동합니다. 대부분의 macOS 네이티브 앱과 많은 서드파티 앱에서 잘 작동하지만, Electron 기반 앱(VS Code, Slack 등)에서는 동작이 다를 수 있어요. 다만 최신 버전의 VS Code에서는 대부분 잘 작동합니다.

macOS 업데이트 후: macOS를 업데이트해도 ~/Library/KeyBindings/ 폴더는 유지되므로 설정이 사라지지 않아요. 안심하셔도 됩니다.

기존 설정 파일이 있는 경우: 이미 DefaultkeyBinding.dict 파일이 존재한다면, 기존 내용을 덮어쓰지 말고 중괄호 안에 "₩" = ("insertText:", "\”);` 한 줄을 추가해 주세요.

이 설정은 맥을 사용하는 한국 개발자들 사이에서 “맥북 사자마자 해야 할 것” 1순위로 꼽히는 항목이에요. 한 번 설정해 두면 한글과 백틱 때문에 겪는 스트레스에서 완전히 해방됩니다.