Skip to content

Latest commit

Β 

History

History
44 lines (23 loc) Β· 2.94 KB

File metadata and controls

44 lines (23 loc) Β· 2.94 KB

문자λ₯Ό ν‘œν˜„ν•˜λŠ” 방법

1. ASCII와 UNICODE

λ””μ§€ν„Έ μ»΄ν“¨ν„°μ˜ λ©”λͺ¨λ¦¬μ—λŠ” λΉ„νŠΈλ§Œ μ €μž₯ν•  수 μžˆμœΌλ―€λ‘œ 컴퓨터λ₯Ό μ΄μš©ν•˜μ—¬ μž‘μ—…ν•˜κ³ μž ν•˜λŠ” λͺ¨λ“  것은 λΉ„νŠΈμ˜ ν˜•νƒœλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.

컴퓨터 μ„Έμƒμ—μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” 두가지 μ½”λ“œλ‘œ, 첫 λ²ˆμ§ΈλŠ” 8λΉ„νŠΈ λ‹¨μœ„λ‘œ 약속을 μ •ν•œ ASCII(μ΄ν•˜ μ•„μŠ€ν‚€)이고, λ‹€λ₯Έ ν•˜λ‚˜λŠ” 16λΉ„νŠΈ λ‹¨μœ„λ‘œ 약속을 μ •ν•œ Unicode(μœ λ‹ˆμ½”λ“œ)이닀.

8λΉ„νŠΈλŠ” 2λ₯Ό 8번 κ³±ν•œ 256κ°€μ§€ 약속을 ν•  수 있고, 16λΉ„νŠΈλŠ” 2λ₯Ό 16번 κ³±ν•΄μ„œ λ‚˜μ˜¨ 숫자인 65,536κ°€μ§€μ˜ 약속을 ν•  수 μžˆλ‹€.

1.1 ASCII

μ•ŒνŒŒλ²³μ„ μœ„ν•œ 약속.

μ•„μŠ€ν‚€λŠ” λ―Έκ΅­ν‘œμ€€ν˜‘νšŒμ—μ„œ λ§Œλ“  μ½”λ“œλ‘œ, American Standard Code for Information Interchange(μ •λ³΄κ΅ν™˜μ„ μœ„ν•œ λ―Έκ΅­ ν‘œμ€€ 약속)의 μ•½μžμ΄λ‹€. μ•„μŠ€ν‚€μ—μ„œλŠ” μ˜μ–΄ λŒ€λ¬Έμž, μ˜μ–΄ μ†Œλ¬Έμž, 숫자, 특수문자λ₯Ό 8λΉ„νŠΈ μ•ˆμ— μ•½μ†ν–ˆλ‹€.

1.2 UNICODE

λͺ¨λ“  μ–Έμ–΄λ₯Ό μœ„ν•œ 약속.

μ»΄ν“¨ν„°μ—μ„œ 영문자만 μ‚¬μš©ν•œλ‹€λ©΄ μ•„μŠ€ν‚€λ‘œλ„ μΆ©λΆ„ν•˜μ§€λ§Œ μ‹œκ°„μ΄ 흘러 λ‹€λ₯Έ λ‚˜λΌ μ‚¬λžŒλ“€λ„ μ‚¬μš©ν•˜λ‹€ λ³΄λ‹ˆ μžκ΅­μ–΄λ₯Ό μ‚¬μš©ν•˜κ³ μž ν–ˆλ‹€. 영문자 외에 세계 μ—¬λŸ¬ λ‚˜λΌμ˜ λ¬Έμžλ„ ν‘œκΈ°ν•΄μ•Ό ν•  상황이 된 것이닀. κ·Έλž˜μ„œ μœ λ‹ˆμ½”λ“œλΌλŠ” μƒˆλ‘œμš΄ 약속을 λ§Œλ“€μ–΄ 약속 곡간을 더 λŠ˜λ Έλ‹€.

2. UTF-8

μ•žμ„œ μ„€λͺ…ν•œ μœ λ‹ˆμ½”λ“œμ˜ μ •ν™•ν•œ λͺ…칭은 UTF(Unicode Transformation Format, μœ λ‹ˆμ½”λ“œ λ³€ν™˜ 양식)이닀. μ •ν™•ν•˜κ²ŒλŠ” μœ λ‹ˆμ½”λ“œλŠ” κ΅­μ œν‘œμ€€ λ¬Έμžν‘œμ΄κ³  UTF-8은 인코딩 방식을 μ˜λ―Έν•œλ‹€.

16λΉ„νŠΈλ₯Ό ν•˜λ‚˜μ˜ 문자 κΈ°μ€€μœΌλ‘œ ν•˜λŠ” UTF-16도 있으며 κ·Έ 외에 32λΉ„νŠΈ κ³΅κ°„μœΌλ‘œ ν™•μž₯ν•œ UTF-32도 μžˆλŠ”λ° μ΄λŠ” μ–Έμ–΄ 외에 이λͺ¨μ§€μ™€ 같은 νŠΉμˆ˜κΈ°ν˜Έλ„ ν¬ν•¨λœ 약속이닀.

Web μΈμ½”λ”©μ˜ λŒ€λΆ€λΆ„μ€ UTF-8이 μ°¨μ§€ν•˜κ³  μžˆλ‹€. μ €μž₯, 톡신 μš©λŸ‰μ— λ―Όκ°ν•˜λ‹€λ©΄ UTF-8, UTF-16 μ€‘μ—μ„œ κ³ λ―Όν•΄μ•Όν•œλ‹€. λ¬Έμ„œμ—μ„œ 많이 μ‚¬μš©λœ CodePoint듀이 λͺ‡ λ°”μ΄νŠΈλ‘œ ν‘œν˜„λ μ§€ κ³ λ―Ό ν›„ κ²°μ •ν•˜λ©΄ μ €μž₯, 톡신 μš©λŸ‰μ„ μ•„λ‚„ 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 영문으둜 가득찬 λ¬Έμ„œμ˜ 경우 UTF-8둜 ν‘œν˜„ν•˜λ©΄ λŒ€λΆ€λΆ„ 1 byte둜 ν‘œν˜„λ˜κ³  UTF-16으둜 ν‘œν˜„ν•˜λ©΄ 2 byte둜 ν‘œν˜„λ˜λ‹ˆ UTF-8이 μœ λ¦¬ν•˜κ³ , ν•œκΈ€μ˜ 경우 UTF-8은 3 byte, UTF-16은 2 byte둜 ν‘œν˜„λ˜λ‹ˆ UTF-16이 μœ λ¦¬ν•˜λ‹€.

πŸ’‘ 인코딩(Encoding)? μ‚¬λžŒμ˜ μ–Έμ–΄λ₯Ό 컴퓨터 μ–Έμ–΄λ‘œ λ°”κΎΈλŠ” 과정을 인코딩(Encoding), κ·Έ λ°˜λŒ€ 과정을 λ””μ½”λ”©(Decoding)이라고 ν•œλ‹€.