루밀LuMir's GitHub profile image
PLAY KEYBOARD, STRIKE A CODE🎨

한글 유니코드(Unicode)

자바스크립트는 UTF-16 인코딩을 활용하여 문자열을 표현한다. koregexp에 기여하기 위해 알아두면 좋은 한글 유니코드(Unicode) 관련 지식들은 아래와 같다.

  1. 호환용 한글 자모
  2. 현대 한글 자모
  3. 완성형 한글

Tip

자모는 한글을 이루는 낱글자를 뜻한다. '자모'를 '자음'과 '모음'의 약자로 알고 있는 경우가 많으나, 한자를 보면 子母가 아닌 字母이다. '글자(字)를 이루는 모(母)체'라는 뜻.

Tip

호환용 한글 자모현대 한글 자모 전체에 대한 유니코드 값을 알고 싶다면 아래 2개의 링크를 참고하기 바란다.

1. 호환용 한글 자모

Important

자바스크립트는 'ㄱ', 'ㅏ' 와 같은 개별 자모를 현대 한글 자모 가 아닌 호환용 한글 자모로 인식한다. 많은 입력 시스템에서 호환용 한글 자모를 사용하는 이유는 아래와 같다.

  1. 입력 시스템의 표준: 호환성 및 표준화를 위해, 대부분의 한글 입력기(IME)는 키보드 등으로 개별 한글 자모를 입력할 때 호환용 한글 자모(\u3130-\u318F)를 사용한다. 예를 들어, 'ㄱ'을 입력하면 호환용 자모(\u3131)가 사용된다.

  2. 호환성: 호환용 한글 자모는 초기(구형) 컴퓨터 시스템과의 호환성을 위해 유니코드 표준에 포함되어, 현재까지 여러 시스템 및 애플리케이션에서 활용된다. 대부분의 텍스트 입력 시스템과 폰트는 호환용 한글 자모를 사용하여 입력하고 렌더링한다.

  3. 중요성: 현대 한글 텍스트에서 자주 사용되는 것은 완성형 한글이므로, 개별 자모는 상대적으로 덜 중요하게 취급되며 호환용 한글 자모로 처리된다.

  4. 역사성: 호환용 한글 자모는 유니코드 초기에 도입되어, 당시의 컴퓨터 시스템 및 소프트웨어와의 호환성을 유지하기 위해 사용되었다. 그 결과, 많은 텍스트 파일, 데이터베이스, 프로토콜 등이 호환용 한글 자모를 기반으로 설계되었다.

호환용 한글 자모로 나타낼 수 있는 문자의 유니코드 값은 \u3130부터 \u318F까지며, 총 96개의 코드로 한글을 표현할 수 있다.

이 중 완성형 한글에서 사용하는 초성, 중성, 종성에 대해 알아보자.

1-1. 정규표현식

1-1-1. 초성

총 30개. (총 30개인 이유는 하단 Tip에 서술.)

/[ㄱ-ㅎ]/ 또는 /[\u3131-\u314E]/ (ㄱ-ㅎ)

1-1-2. 중성

총 21개. (완성형 한글의 중성 개수와 동일.)

/[ㅏ-ㅣ]/ 또는 /[\u314F-\u3163]/ (ㅏ-ㅣ)

1-1-3. 종성

총 30개. (총 30개인 이유는 하단 Tip에 서술.)

/[ㄱ-ㅎ]/ 또는 /[\u3131-\u314E]/ (ㄱ-ㅎ)

Note

호환용 한글 자모에서, 초성 및 종성은 서로 같은 유니코드 값을 사용한다.

Tip

초성 및 종성에서 공통으로 사용하는 자음은 아래와 같다. (총 16개)

  • ㄱ, ㄲ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅆ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ

초성에서만 사용하는 자음은 아래와 같다. (총 3개)

  • ㄸ, ㅃ, ㅉ

종성에서만 사용하는 자음은 아래와 같다. (총 11개)

  • ㄳ, ㄵ, ㄶ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅄ

이때, 위에 서술한 30(16 + 3 + 11)개의 자음 개수는 /[\u3131-\u314E]/ 범위의 유니코드 개수와 동일하다. 즉, 호환용 한글 자모는 초성과 종성을 따로 분리하지 않고 한데 묶어 표현하는 것이다.

1-2. 유니코드

1-2-1. 초성 및 종성 (자음)

상세 보기
RegExp\x0123456789ABCDEF
\u313x-
\u314x-

1-2-2. 중성 (모음)

상세 보기
RegExp\x0123456789ABCDEF
\u314x---------------
\u315x
\u316x------------

2. 현대 한글 자모

Important

현대 한글 자모koregexp에서 직접적으로 이용하는 개념이 아니므로, 참고만 하자.

현대 한글 자모로 나타낼 수 있는 문자의 유니코드 값은 \u1100부터 \u11FF까지며, 총 256개의 코드로 한글을 표현할 수 있다.

이 중 완성형 한글에서 사용하는 초성, 중성, 종성에 대해 알아보자.

2-1. 정규표현식

2-1-1. 초성

총 19개. (완성형 한글의 초성 개수와 동일.)

/[\u1100-\u1112]/ (ㄱ-ㅎ)

2-1-2. 중성

총 21개. (완성형 한글의 중성 개수와 동일.)

/[\u1161-\u1175]/ (ㅏ-ㅣ)

2-1-3. 종성

총 27개. (종성이 없는 경우를 제외한, 완성형 한글의 종성 개수와 동일.)

/[\u11A8-\u11C2]/ (ㄱ-ㅎ)

Note

종성이 없는 경우는 /\u0000/로 표현한다.

2-2. 유니코드

2-2-1. 초성

상세 보기
RegExp\x0123456789ABCDEF
\u110x
\u111x-------------

2-2-2. 중성

상세 보기
RegExp\x0123456789ABCDEF
\u116x-
\u117x----------

2-2-3. 종성

상세 보기
RegExp\x0123456789ABCDEF
\u11Ax--------
\u11Bx
\u11Cx-------------

3. 완성형 한글

완성형 한글로 나타낼 수 있는 문자의 유니코드 값은 \uAC00부터 \uD7A3까지며, 총 11,172개의 코드로 모든 한글을 표현할 수 있다.

3-1. 정규표현식

/[가-힣]/ 또는 /[\uAC00-\uD7A3]/ (가-힣)

3-2. 유니코드 낱자 구성

완성형 한글에서 쓰이는 낱자는 아래와 같다.

3-2-1. 초성

총 19개.

상세 보기
index초성
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

3-2-2. 중성

총 21개.

상세 보기
index중성
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

3-2-3. 종성

총 28개. (종성이 없는 경우 포함.)

상세 보기
index종성
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

3-3. 유니코드 계산 방법

  1. 위의 초성, 중성, 종성을 조합해서 만들 수 있는 총 글자 수는 아래와 같다.

    $$11,172 = 19(초성) × 21(중성) × 28(종성)$$

  2. 어떤 한글 글자의 십진수 유니코드를 구하는 공식은 아래와 같다.

    (초성index * 21 * 28) + (중성index * 28) + (종성index) + 44032

Note

  1. 초성index21 * 28을 곱해주는 이유는, 중성 및 종성 사이클이 모두 돌아야 다음 초성이 나타나기 때문이다.

  2. 중성index28을 곱해주는 이유는, 종성 사이클이 모두 돌아야 다음 중성이 나타나기 때문이다.

  3. 44032는 16진수로 0xAC00을 뜻한다. 이는 완성형 한글의 첫 시작 문자인 '가'의 유니코드와 동일하다.

3-4. 유니코드

상세 보기
RegExp\x0123456789ABCDEF
\uAC0x
\uAC1x
\uAC2x
\uAC3x갿
\uAC4x
\uAC5x
\uAC6x
\uAC7x걿
\uAC8x
\uAC9x
\uACAx
\uACBx겿
\uACCx
\uACDx
\uACEx
\uACFx곿
\uAD0x
\uAD1x
\uAD2x
\uAD3x괿
\uAD4x
\uAD5x
\uAD6x
\uAD7x굿
\uAD8x
\uAD9x
\uADAx
\uADBx궿
\uADCx
\uADDx
\uADEx
\uADFx귿
\uAE0x
\uAE1x
\uAE2x
\uAE3x긿
\uAE4x
\uAE5x
\uAE6x
\uAE7x깿
\uAE8x
\uAE9x
\uAEAx
\uAEBx꺿
\uAECx
\uAEDx
\uAEEx
\uAEFx껿
\uAF0x
\uAF1x
\uAF2x
\uAF3x꼿
\uAF4x
\uAF5x
\uAF6x
\uAF7x꽿
\uAF8x
\uAF9x
\uAFAx
\uAFBx꾿
\uAFCx
\uAFDx
\uAFEx
\uAFFx꿿
\uB00x뀀
\uB01x
\uB02x
\uB03x
\uB04x
\uB05x
\uB06x
\uB07x
\uB08x
\uB09x
\uB0Ax
\uB0Bx
\uB0Cx
\uB0Dx
\uB0Ex
\uB0Fx
\uB10x
\uB11x
\uB12x
\uB13x
\uB14x
\uB15x
\uB16x
\uB17x
\uB18x
\uB19x
\uB1Ax
\uB1Bx
\uB1Cx
\uB1Dx
\uB1Ex
\uB1Fx
\uB20x
\uB21x
\uB22x
\uB23x
\uB24x
\uB25x
\uB26x
\uB27x
\uB28x
\uB29x
\uB2Ax
\uB2Bx
\uB2Cx
\uB2Dx
\uB2Ex
\uB2Fx
\uB30x
\uB31x
\uB32x
\uB33x
\uB34x
\uB35x
\uB36x
\uB37x
\uB38x
\uB39x
\uB3Ax
\uB3Bx
\uB3Cx
\uB3Dx
\uB3Ex
\uB3Fx
\uB40x
\uB41x
\uB42x
\uB43x
\uB44x
\uB45x
\uB46x
\uB47x
\uB48x
\uB49x
\uB4Ax
\uB4Bx
\uB4Cx
\uB4Dx
\uB4Ex
\uB4Fx
\uB50x
\uB51x
\uB52x
\uB53x
\uB54x
\uB55x
\uB56x
\uB57x
\uB58x
\uB59x
\uB5Ax
\uB5Bx
\uB5Cx
\uB5Dx
\uB5Ex
\uB5Fx
\uB60x
\uB61x
\uB62x
\uB63x
\uB64x
\uB65x
\uB66x
\uB67x
\uB68x
\uB69x
\uB6Ax
\uB6Bx
\uB6Cx
\uB6Dx
\uB6Ex
\uB6Fx
\uB70x
\uB71x
\uB72x
\uB73x
\uB74x
\uB75x
\uB76x
\uB77x
\uB78x
\uB79x
\uB7Ax
\uB7Bx
\uB7Cx
\uB7Dx
\uB7Ex
\uB7Fx
\uB80x
\uB81x
\uB82x
\uB83x
\uB84x
\uB85x
\uB86x
\uB87x
\uB88x
\uB89x
\uB8Ax
\uB8Bx
\uB8Cx
\uB8Dx
\uB8Ex
\uB8Fx
\uB90x
\uB91x
\uB92x
\uB93x뤿
\uB94x
\uB95x
\uB96x
\uB97x륿
\uB98x
\uB99x
\uB9Ax
\uB9Bx릿
\uB9Cx
\uB9Dx
\uB9Ex
\uB9Fx맿
\uBA0x
\uBA1x
\uBA2x
\uBA3x먿
\uBA4x
\uBA5x
\uBA6x
\uBA7x멿
\uBA8x
\uBA9x
\uBAAx
\uBABx몿
\uBACx
\uBADx
\uBAEx
\uBAFx뫿
\uBB0x
\uBB1x
\uBB2x
\uBB3x묿
\uBB4x
\uBB5x
\uBB6x
\uBB7x뭿
\uBB8x
\uBB9x
\uBBAx
\uBBBx뮿
\uBBCx
\uBBDx
\uBBEx
\uBBFx믿
\uBC0x
\uBC1x
\uBC2x
\uBC3x밿
\uBC4x
\uBC5x
\uBC6x
\uBC7x뱿
\uBC8x
\uBC9x
\uBCAx
\uBCBx벿
\uBCCx
\uBCDx
\uBCEx
\uBCFx볿
\uBD0x
\uBD1x
\uBD2x
\uBD3x봿
\uBD4x
\uBD5x
\uBD6x
\uBD7x뵿
\uBD8x
\uBD9x
\uBDAx
\uBDBx붿
\uBDCx
\uBDDx
\uBDEx
\uBDFx뷿
\uBE0x
\uBE1x
\uBE2x
\uBE3x븿
\uBE4x
\uBE5x
\uBE6x
\uBE7x빿
\uBE8x
\uBE9x
\uBEAx
\uBEBx뺿
\uBECx
\uBEDx
\uBEEx
\uBEFx뻿
\uBF0x
\uBF1x
\uBF2x
\uBF3x뼿
\uBF4x
\uBF5x
\uBF6x
\uBF7x뽿
\uBF8x
\uBF9x
\uBFAx
\uBFBx뾿
\uBFCx
\uBFDx
\uBFEx
\uBFFx뿿
\uC00x쀀
\uC01x
\uC02x
\uC03x
\uC04x
\uC05x
\uC06x
\uC07x
\uC08x
\uC09x
\uC0Ax
\uC0Bx
\uC0Cx
\uC0Dx
\uC0Ex
\uC0Fx
\uC10x
\uC11x
\uC12x
\uC13x
\uC14x
\uC15x
\uC16x
\uC17x
\uC18x
\uC19x
\uC1Ax
\uC1Bx
\uC1Cx
\uC1Dx
\uC1Ex
\uC1Fx
\uC20x
\uC21x
\uC22x
\uC23x
\uC24x
\uC25x
\uC26x
\uC27x
\uC28x
\uC29x
\uC2Ax
\uC2Bx
\uC2Cx
\uC2Dx
\uC2Ex
\uC2Fx
\uC30x
\uC31x
\uC32x
\uC33x
\uC34x
\uC35x
\uC36x
\uC37x
\uC38x
\uC39x
\uC3Ax
\uC3Bx
\uC3Cx
\uC3Dx
\uC3Ex
\uC3Fx
\uC40x
\uC41x
\uC42x
\uC43x
\uC44x
\uC45x
\uC46x
\uC47x
\uC48x
\uC49x
\uC4Ax
\uC4Bx
\uC4Cx
\uC4Dx
\uC4Ex
\uC4Fx
\uC50x
\uC51x
\uC52x
\uC53x
\uC54x
\uC55x
\uC56x
\uC57x
\uC58x
\uC59x
\uC5Ax
\uC5Bx
\uC5Cx
\uC5Dx
\uC5Ex
\uC5Fx
\uC60x
\uC61x
\uC62x
\uC63x
\uC64x
\uC65x
\uC66x
\uC67x
\uC68x
\uC69x
\uC6Ax
\uC6Bx
\uC6Cx
\uC6Dx
\uC6Ex
\uC6Fx
\uC70x
\uC71x
\uC72x
\uC73x
\uC74x
\uC75x
\uC76x
\uC77x
\uC78x
\uC79x
\uC7Ax
\uC7Bx
\uC7Cx
\uC7Dx
\uC7Ex
\uC7Fx
\uC80x
\uC81x
\uC82x
\uC83x
\uC84x
\uC85x
\uC86x
\uC87x
\uC88x
\uC89x
\uC8Ax
\uC8Bx
\uC8Cx
\uC8Dx
\uC8Ex
\uC8Fx
\uC90x
\uC91x
\uC92x
\uC93x줿
\uC94x
\uC95x
\uC96x
\uC97x쥿
\uC98x
\uC99x
\uC9Ax
\uC9Bx즿
\uC9Cx
\uC9Dx
\uC9Ex
\uC9Fx짿
\uCA0x
\uCA1x
\uCA2x
\uCA3x쨿
\uCA4x
\uCA5x
\uCA6x
\uCA7x쩿
\uCA8x
\uCA9x
\uCAAx
\uCABx쪿
\uCACx
\uCADx
\uCAEx
\uCAFx쫿
\uCB0x
\uCB1x
\uCB2x
\uCB3x쬿
\uCB4x
\uCB5x
\uCB6x
\uCB7x쭿
\uCB8x
\uCB9x
\uCBAx
\uCBBx쮿
\uCBCx
\uCBDx
\uCBEx
\uCBFx쯿
\uCC0x
\uCC1x
\uCC2x
\uCC3x찿
\uCC4x
\uCC5x
\uCC6x
\uCC7x챿
\uCC8x
\uCC9x
\uCCAx
\uCCBx첿
\uCCCx
\uCCDx
\uCCEx
\uCCFx쳿
\uCD0x
\uCD1x
\uCD2x
\uCD3x촿
\uCD4x
\uCD5x
\uCD6x
\uCD7x쵿
\uCD8x
\uCD9x
\uCDAx
\uCDBx춿
\uCDCx
\uCDDx
\uCDEx
\uCDFx췿
\uCE0x
\uCE1x
\uCE2x
\uCE3x츿
\uCE4x
\uCE5x
\uCE6x
\uCE7x칿
\uCE8x
\uCE9x
\uCEAx
\uCEBx캿
\uCECx
\uCEDx
\uCEEx
\uCEFx컿
\uCF0x
\uCF1x
\uCF2x
\uCF3x켿
\uCF4x
\uCF5x
\uCF6x
\uCF7x콿
\uCF8x
\uCF9x
\uCFAx
\uCFBx쾿
\uCFCx
\uCFDx
\uCFEx
\uCFFx쿿
\uD00x퀀
\uD01x
\uD02x
\uD03x
\uD04x
\uD05x
\uD06x
\uD07x
\uD08x
\uD09x
\uD0Ax
\uD0Bx
\uD0Cx
\uD0Dx
\uD0Ex
\uD0Fx
\uD10x
\uD11x
\uD12x
\uD13x
\uD14x
\uD15x
\uD16x
\uD17x
\uD18x
\uD19x
\uD1Ax
\uD1Bx
\uD1Cx
\uD1Dx
\uD1Ex
\uD1Fx
\uD20x
\uD21x
\uD22x
\uD23x
\uD24x
\uD25x
\uD26x
\uD27x
\uD28x
\uD29x
\uD2Ax
\uD2Bx
\uD2Cx
\uD2Dx
\uD2Ex
\uD2Fx
\uD30x
\uD31x
\uD32x
\uD33x
\uD34x
\uD35x
\uD36x
\uD37x
\uD38x
\uD39x
\uD3Ax
\uD3Bx
\uD3Cx
\uD3Dx
\uD3Ex
\uD3Fx
\uD40x
\uD41x
\uD42x
\uD43x
\uD44x
\uD45x
\uD46x
\uD47x
\uD48x
\uD49x
\uD4Ax
\uD4Bx
\uD4Cx
\uD4Dx
\uD4Ex
\uD4Fx
\uD50x
\uD51x
\uD52x
\uD53x
\uD54x
\uD55x
\uD56x
\uD57x
\uD58x
\uD59x
\uD5Ax
\uD5Bx
\uD5Cx
\uD5Dx
\uD5Ex
\uD5Fx
\uD60x
\uD61x
\uD62x
\uD63x
\uD64x
\uD65x
\uD66x
\uD67x
\uD68x
\uD69x
\uD6Ax
\uD6Bx
\uD6Cx
\uD6Dx
\uD6Ex
\uD6Fx
\uD70x
\uD71x
\uD72x
\uD73x
\uD74x
\uD75x
\uD76x
\uD77x
\uD78x
\uD79x
\uD7Ax------------