알트 입력법

알트 키(Alt)와 숫자 키패드를 이용하여 문자(특히 특수문자)를 입력하는 방식. 키보드에 할당되지 않은 문자를 입력하는 데 유용하며, 종종 유일한 방법이 된다.

영어로 ‘Alt code’라는 표현이 쓰이는데, 이 표현이 추상적인 문자 입력 방식 자체를 일컫는 것인지, 그 방식을 이용하기 위한 키 시퀀스를 일컫는 것인지 명확하지 않다. 문서를 만들어 설명할 만한 것은 전자이므로, 문서명을 “알트 입력법”으로 하였다.

역사[편집 | 원본 편집]

이 기능은 IBM PC가 그 시초다.[1]

IBM PC에서 Alt를 누른 채로 십진법으로 숫자를 입력하면, 시스템 바이오스는 대응하는 코드를 키보드 버퍼에 넣는다. 다시 말하면, 이 바이오스로 문자를 입력받는 소프트웨어 입장에서는 어떤 키를 하나 띡 누른 결과 그 코드가 입력된 것인 양 인식한다. 따라서 소프트웨어는 이를 코드페이지에 따라 변환한 문자를 화면에 출력하는데, 이것이 알트 입력법의 기초가 되었다.

이때 코드페이지는 다른 소프트웨어가 없는 한 하드웨어 코드페이지, 즉 코드페이지 437(아스키 코드가 아니다)이다. 이후 도스 등의 운영체제가 쓰이게 되면서 알트 입력법은 좀 더 대중화된다.

윈도우로 넘어오면서 코드페이지 Windows-1252(서유럽어) 등 이른바 ANSI 코드페이지들이 사용되기 시작했지만, 도스 시절의 코드값이 워낙 널리 알려진 탓에 알트 입력법에서만큼은 원칙적으로 옛날 코드페이지(즉 코드페이지 437)를 고수하게 된다. 그러나 위 ANSI 코드페이지나 유니코드를 이용한 입력 역시, 후술하듯 약간의 우회를 요하나, 허용하고 있다.

사용법[편집 | 원본 편집]

Alt를 누른 로, 입력하려는 문자에 해당하는 값을 누른 다음, Alt에서 손을 떼면 된다.

예) Alt를 누른 채로, 숫자 키패드의 1 3 3을 차례로 누른 다음, Alt에서 손을 뗀다.

이렇게 하면 코드 133에 해당하는 문자가 나타나는데(한국어 운영체제에서는 말줄임표(…, U+2026)), 이를 줄여서 Alt+133과 같이 표기한다. ‘해당하는 값’은 아스키 코드라고 흔히 잘못 알려져 있는데, 전술했듯 원칙적으로 현재 코드페이지에서의 값이고,[2] 유니코드를 이용하는 것도 가능하다. 어느 쪽을 이용하느냐에 따라 입력 방식이 다소 다르다.

원칙적인 입력법(코드페이지 이용)[편집 | 원본 편집]

Alt를 누른 채로, 입력하려는 문자에 해당하는 코드페이지에서의 값을 숫자 키패드를 이용하여 10진법으로 입력한다. 코드페이지는 언어에 따라 다르다.

예) Alt+133 → … (U+2026)

한국어 운영체제의 경우[편집 | 원본 편집]

한국어 윈도우의 경우 원칙적으로 코드페이지 949를 따른다.코드페이지 949 일람[3] 그러나 일부 코드는 Windows-1252를 따른다.

구체적으로 아래와 같다. 코드값은 편의상 16진수로 적었다.

  • 0x00~0x1F는 다음 아홉 개 외에는 입력되지 않는다.
    • 0x08, 0x09, 0x0A, 0x0D, 0x16, 0x1A, 0x1B, 0x1E, 0x1F.
  • 0x80~0xFE는 Windows-1252를 따른다.[4] 따라서 후술하는 영어 운영체제의 경우에 0을 붙여야 하는 경우라도 0을 붙일 필요가 없다.
    • 그런데 아래아한글에서는 왠지 0x89(‰, U+2030)와 0x91(‹, U+2039)이 각각 숫자 0과 9로 입력된다.
  • 코드가 할당되지 않은 값을 입력한 경우
    • 0x0100과 0x7FFF 사이의 값을 입력한 경우, 첫 바이트(16진수 두 자리)의 값에 따라 작동한다.
      예) Alt+12345 = 0x3039 ⇒ 0x30 = 0
    • 0xFFFF보다 큰 값을 입력한 경우, 65536(0x10000)으로 나눈 나머지(즉, 마지막 두 바이트)에 따라 작동한다.
      예) Alt+123123 = 0x1E0F3 ⇒ 0xE0F3 = 姓[5]
    • 위 두 가지 중 어느 하나에도 해당하지 않는 경우[6] 물음표(?, U+003F)가 입력되는 듯하다.
유용한 코드의 보기[편집 | 원본 편집]
문자 코드 다른 입력법 사용처
Alt+133 ㄱ+한자+PgDnPgDn+1 말줄임표
ß Alt+223 ㄲ+한자+PgDnPgDn+5 독일어
ä Alt+228 -
ö Alt+246
ü Alt+252
æ Alt+230 ㄲ+한자+PgDn+3 국제음성기호, 라틴어
ç Alt+231 - 국제음성기호, 프랑스어
è Alt+232 프랑스어, 이탈리아어
é Alt+233
ð Alt+240 ㄲ+한자+PgDn+5 국제음성기호
ø Alt+248 ㄲ+한자+PgDnPgDn+3


영어 운영체제의 경우[편집 | 원본 편집]

영어 윈도우의 경우 원칙적으로 코드페이지 437(소위 OEM 코드페이지)를 따른다.

예) Alt+161 → í (Latin small letter I with acute, U+00ED)
  • 다만, 0으로 시작하는 코드의 경우 Windows-1252(소위 ANSI 코드페이지)를 따른다. 링크 참조.
    예) Alt+0161 → ¡ (Inverted exclamation mark, U+00A1)

유니코드 이용 입력법[편집 | 원본 편집]

먼저 준비가 필요하다.

사용 준비[편집 | 원본 편집]

시스템 레지스트리를 건드려야 한다. 익숙하지 않을 경우, 시도하지 않는 것을 권장한다.

  • 실행(Win+R) 창에 regedit 입력. 레지스트리 편집기 창이 뜬다.
  • HKCU\Control Panel\Input Method 아래에 EnableHexNumpad라는 을 REG_SZ 형식으로 새로 만든다. 가끔 를 새로 만들라는 문서가 있는데, 잘못된 것이다. 키가 아니고 값이다. 참고로 폴더처럼 생긴 게 ‘키’, 파일처럼 생긴 게 ‘값’. 사실 편집(E)>새로 만들기(N)>문자열 값(S) 하면 된다.
  • 값 데이터는 1을 넣는다.
  • 로그오프한 후 다시 로그온한다. 혹은 재부팅한다.

입력 방법[편집 | 원본 편집]

알트 키를 누른 채로, 숫자키패드의 +버튼을 누른 다음 입력하려는 문자의 유니코드 값을 16진법으로 입력한다.

예) Alt+[+][2][0][1][3] → – (En Dash, U+2013)

16진법으로 입력할 때는, 0~9의 자릿수는 숫자키패드로, A~F의 자릿수는 대소문자 관계없이 일반 키패드로 입력하면 된다.

키 시퀀스를 나타내는 표준적인 표기법은 없는 듯하다.Alt++2013으로 적긴 뭣하고 아래에서 Alt+[+]2013과 같이 표기한다.

유용한 코드의 보기[편집 | 원본 편집]

문자 코드 다른 입력법 사용처
ŋ Alt+[+]14B ㄲ+한자+PgDnPgDn+8 국제음성기호
œ Alt+[+]153 ㄲ+한자+PgDnPgDn+4
ʃ Alt+[+]283 -
ʒ Alt+[+]292
ː(장음 부호) Alt+[+]2D0
‐(하이픈) Alt+[+]2010 문장부호
–(엔대시) Alt+[+]2013
—(엠대시) Alt+[+]2014
−(뺄셈 기호) Alt+[+]2212 수학 기호
′(프라임) Alt+[+]2032

표 안에 작대기가 네 개나 있는데, 뭐 이리 많아? 싶을지도 모른다. 심지어 이 네 개는 키보드에 있는 -(hyphen‐minus, U+002D)와 전부 다르다. 그럼 키보드에 있는 하이픈마이너스는 얻다 쓰라는 것인가?

답부터 말하면 쓸 데가 없다. 아마도 코딩할 때? 옛날에는 취소선 그을 때 썼겠지만 여기에는 연혁적인 이유가 있다.

키보드에 있는 하이픈마이너스는, 처리할 수 있는 정보량이 작던 시절에 하이픈과 뺄셈 기호를(가끔은 숫자 대시와 엔대시도) 하나의 기호로 모두 대표할 목적으로 만들어졌던 것인데[7], 이후 컴퓨터의 발전에 따라 용도별에 맞는 개별적인 glyph를 사용해도 될 만큼 많은 코드를 부여하는 것이 가능해지면서 그 기능들이 전부 분리되어 나가고 껍데기만 남은 것이다.

문제는 뭐냐면, 예를 들어 영어권 사용자들은 글을 쓰다 보면 하이픈이 필요하니까 저걸 하이픈으로 써서 걔네 글꼴로는 하이픈 비슷하게 나오고, 예를 들어 우리나라 사용자들은 (한국어 문장부호에 하이픈은 없으니까) 저걸 빼기로 써서 우리 글꼴로는 빼기 비슷하게 나온다는 것이다.[8]

앞에서 “키보드에 있는 빼기 기호”라고 하지 못하고 “키보드에 있는 하이픈마이너스” 이런 식으로 부자연스럽게 일컬을 수밖에 없었던 이유가 이거다. 한국 사람이라면 누구나 “키보드에 있는 빼기”라고 하고 싶겠지. 근데 그게 일반적으로 빼기는 아니라는 거다.

그러니까 글꼴의 상이에 따른 이러한 불합리를 방지하기 위해, 하이픈을 쓸 자리에는 U+2010을, 숫자 대시를 쓸 자리에는 U+2012를, 엔대시를 쓸 자리에는 U+2013을, 뺄셈 기호를 쓸 자리에는 U+2212를 각각 써 주자.

각주

  1. Alt code. 영어 위키백과.
  2. 물론 웬만한 코드페이지는 0x20~0x7E에서 아스키 코드와 일치한다.
  3. 마이크로소프트 엑셀에서 CODE 함수를 사용하면 코드페이지 949에서의 코드값을 알 수 있다.
  4. 참고로 코드페이지 949과 Windows-1252는 0x00~0x7F에서 일치한다. 궁극적으로는 0x00~0x7E에서 아스키 코드와 일치.
  5. 링크 참조.
  6. 예를 들어 65536으로 나눈 나머지가 0x{80~FF}{00~3F}인 코드 등.
  7. 참고로 이런 기호는 한둘이 아니다. 또 하나의 예는 그 이름도 괴상망측한 “수직 따옴표”들. 세미콜론 오른쪽에 있는 그거. 그거 따옴표 아니다. 따옴표를 누가 수직으로 찍 긋나? 그 기호는 옛날에 어포스트로피, 왼쪽 따옴표(6처럼 생긴 거), 오른쪽 따옴표(9처럼 생긴 거), 프라임 등을 모두 대표할 목적으로 만들었던 것인데, 지금은 어포스트로피와 오른쪽 따옴표는 U+2019, 왼쪽 따옴표는 U+2018, 프라임은 U+2032로 전부 분리되어 나갔다. 그럼 어디다 쓰는가? 마찬가지이다. 코딩할 때, 그리고 기울이거나 굵게 만들거나 둘 다 할 때 쓴다.
  8. Times New Roman 글꼴 쓰면서 “빼기가 왜 이렇게 쪼그매?” 하고 투덜댔던 경험이 있을 텐데, 빼기가 아니니까 쪼그맸던 거다. 그 글꼴에선 하이픈을 의도하고 만들었었을 것이다.