ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] μœ λ‹ˆμ½”λ“œ(Unicode)와 UTF-8 (feat. ν† μŠ€νŽ˜μ΄μŠ€)
    General/🟒 General 2022. 4. 5. 23:48

    해맑-

    자고둜 κ°œλ°œμžλŠ” μœ λ‹ˆμ½”λ“œμ— λŒ€ν•΄μ„œ λͺ¨λ₯΄λ©΄ μ•ˆλœλ‹€~

     

     μŠ€ν΄μŠ€ν‚€ μ•„μ €μ”¨μ˜ 말에 좩격을 λ°›κ³ , λΆ€λž΄λΆ€λž΄ μ •λ¦¬ν•΄λ³΄μ•˜λ‹€.

    μƒκ°ν•΄λ³΄λ‹ˆ ν”„λ‘œκ·Έλž˜λ¨Έλ‘œμ„œ μœ λ‹ˆμ½”λ“œμ— λŒ€ν•΄ 많이 μ ‘ν–ˆμ§€λ§Œ

    μ œλŒ€λ‘œ κ°œλ…μ„ 가지고 μžˆμ§€ μ•Šκ³  λ„˜μ–΄κ°”λ‹€λŠ” μ‚¬μ‹€μ— 쑰금 λΆ€λ„λŸ¬μ› λ‹€πŸ˜³

     

    μœ λ‹ˆμ½”λ“œλŠ” μ€‘μš”ν•˜μ§€λ§Œ κ°œλ…μ€ κ·Έλ ‡κ²Œ 어렡지 μ•Šμ•˜λ‹€. 그럼 μ‹œμž‘ν•΄λ³΄μž!

    λ¬Έμžμ—΄ 인코딩에 λŒ€ν•΄ μ •λ¦¬ν•œ 이전 글을 보면 더 이해가 μ‰¬μšΈμˆ˜ μžˆλ‹€.

    이전 글도 μ‘°μ—˜ 온 μ†Œν”„νŠΈμ›¨μ–΄μ™€ μœ„ν‚€λ₯Ό μ°Έκ³ ν•΄ μž‘μ„±ν•˜μ˜€λ‹€.

     

    μœ λ‹ˆμ½”λ“œ

     

    전세계 λͺ¨λ“  문자λ₯Ό μ»΄ν“¨ν„°μ—μ„œ μΌκ΄€λ˜κ²Œ ν‘œν˜„ν•˜κ³  λ‹€λ£° 수 μžˆλ„λ‘ μ„€κ³„λœ μ‚°μ—… ν‘œμ€€μ΄λ‹€.

    λ‹€κ΅­μ–΄ ν™˜κ²½μ—μ„œ μ„œλ‘œ ν˜Έν™˜μ΄ λ˜μ§€ μ•Šλ˜ 기쑴의 λ¬Έμžμ—΄ μΈμ½”λ”©λ“€μ˜ 문제λ₯Ό ν•΄κ²°ν•˜μ˜€λ‹€.

    λ”°λΌμ„œ μœ λ‹ˆμ½”λ“œλŠ” 컴퓨터 μ†Œν”„νŠΈμ›¨μ–΄μ˜ κ΅­μ œν™”(I18N) 와 지역화(L10N) 에 널리 μ‚¬μš©λ˜μ—ˆλ‹€.

     

    기쑴의 인코딩 방식은 νŠΉμ • 문자λ₯Ό νŠΉμ • λΉ„νŠΈμ—΄λ‘œ μ§€μ •ν•˜μ˜€λ‹€.

    예λ₯Ό λ“€μ–΄ ASCII μ—μ„œ 'A' λŠ” 65 μ΄λΌλŠ” κ°’μœΌλ‘œ ν‘œν˜„λ˜κ³ , 7λΉ„νŠΈ 1000001 둜 μ €μž₯λœλ‹€.

     

    μœ λ‹ˆμ½”λ“œμ—μ„œ λ¬ΈμžλŠ” μ½”λ“œν¬μΈνŠΈ λΌλŠ” κ°œλ…μ— μ‚¬μƒλœλ‹€.

    μ½”λ“œ ν¬μΈνŠΈλŠ” ‘U+’ 와 ‘16μ§„μˆ˜ 숫자 μ‘°ν•©’으둜 이루어진닀.

    예λ₯Ό λ“€μ–΄ πŸ˜€ λŠ” [U+1F600] λΌλŠ” μ½”λ“œ 포인트λ₯Ό 가지고 μžˆλ‹€.

     

    μœ λ‹ˆμ½”λ“œ μžμ²΄λŠ” 인코딩과 관련이 μ—†λ‹€.

     

    ν•΄λ‹Ή 문자λ₯Ό ν‘œν˜„ν•˜λŠ” μ½”λ“œν¬μΈνŠΈλ§Œ μžˆμ„ 뿐이닀.

    λŒ€μ‹  μ½”λ“œν¬μΈνŠΈλ₯Ό λ©”λͺ¨λ¦¬μ— ν‘œν˜„ν•˜λŠ” 방식인 UTF-8, UTF-16 λ“±κ³Ό 같은 인코딩이 μžˆλ‹€.

     

    μ•„λž˜ 사진은 μ™Όμͺ½λΆ€ν„° Character, Description, Unicode number(μ½”λ“œ 포인트) , UTF-8 Encoding μ—μ„œμ˜ 값을 λ‚˜νƒ€λ‚Έλ‹€.

     

     

    λ˜ν•œ μœ λ‹ˆμ½”λ“œμ—μ„œ λ¬ΈμžλŠ” 관념적인 κ°œλ…μ΄κΈ° λ•Œλ¬Έμ—,

    λͺ¨μ–‘이 μ•½κ°„ λ‹€λ₯Έ λ¬Έμžλ„ μ˜λ―Έκ°€ κ°™λ‹€λ©΄ 같은 μ½”λ“œν¬μΈνŠΈλ₯Ό 가지고 μžˆλ‹€.

    보톡 A λΌλŠ” 문자λ₯Ό μ˜ˆμ‹œλ‘œ 많이 λ“œλŠ”λ°, μ• ν”Œ μœ λ‹ˆμ½”λ“œ λ¬Έμžν‘œμ—μ„œ μ°ΎκΈ° μ–΄λ €μ›Œ 이λͺ¨μ§€λ₯Ό μ˜ˆμ‹œλ‘œ λŒ€μ‹ ν•œλ‹€.

     

    μ•„λž˜ λͺ¨μ–‘은 λͺ¨λ‘ 같은 μ½”λ“œ 포인트λ₯Ό 가지고 μžˆλ‹€.

    μœ λ‹ˆμ½”λ“œλ₯Ό ν‘œν˜„ν•˜λŠ” μ‹œμŠ€ν…œμ— 따라 μ‘°κΈˆμ”© λͺ¨μ–‘이 λ‹€λ₯΄μ§€λ§Œ, λ†€λžŒ μ΄λΌλŠ” 관념은 κ·ΈλŒ€λ‘œ ν‘œν˜„ν•œλ‹€.

    https://medium.com/free-code-camp/a-beginner-friendly-guide-to-unicode-d6d45a903515

     

    μœ„μ™€ 같은 λ‚΄μš©μœΌλ‘œ 미루어 λ³Ό λ•Œ, 졜근의 ν† μŠ€κ°€ κ°œλ°œν•œ 이λͺ¨μ§€κ°€ μ™œ λ…Όλž€μ΄ λ˜μ—ˆλŠ”μ§€ 이해할 수 μžˆλ‹€.

    μœ λ‹ˆμ½”λ“œκ°€ μ„€μ •ν•œ μ½”λ“œ ν¬μΈνŠΈκ°€ κ°€λ¦¬ν‚€λŠ” 관념을 μ•„μ˜ˆ λ‹€λ₯Έ κ²ƒμœΌλ‘œ 바꾸어버렸기 λ•Œλ¬Έμ΄λ‹€.

    이것은 μœ λ‹ˆμ½”λ“œ 정신에 μœ„λ°°λœλ‹€κ³  λ³Ό 수 μžˆλ‹€.

     

    ν˜„μž¬λŠ” 더이상 κ³΅ν™ˆμ—μ„œ μ°Ύμ•„λ³Ό 수 μ—†λ‹€.

     

    UTF-8

     

    κ°€μž₯ 유λͺ…ν•œ μœ λ‹ˆμ½”λ“œλ₯Ό μœ„ν•œ κ°€λ³€ 길이 문자 인코딩 방식이닀.

    μ½”λ“œ ν¬μΈνŠΈμ— 따라 1λ°”μ΄νŠΈμ—μ„œ μ΅œλŒ€ 4λ°”μ΄νŠΈκΉŒμ§€ κ°€λ³€μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 것이 νŠΉμ§•μ΄λ‹€.

    U+0000 λΆ€ν„° U+007F (μ‹­μ§„μˆ˜ 127) κΉŒμ§€ 1λ°”μ΄νŠΈλ‘œ ν‘œν˜„ν•œλ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€.

    이 νŠΉμ§• 덕뢄에 ASCII 와 100% ν˜Έν™˜λœλ‹€.

    μžμ„Έν•œ μŠ€νŽ™μ€ μœ„ν‚€λ₯Ό μ°Έκ³ ν•˜λ©΄ λœλ‹€.

     

    UTF-8 μΈμ½”λ”©μœΌλ‘œ λ°”μ΄νŠΈ ν‘œν˜„μ˜ 첫 λ°”μ΄νŠΈλ§Œ μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή λ°”μ΄νŠΈ ν‘œν˜„μ˜ 길이λ₯Ό κ²°μ •ν•  수 μžˆλ‹€.

    λ”°λΌμ„œ λΆ€λΆ„λ¬Έμžμ—΄μ„ μ–»λŠ” 과정이 맀우 쉽닀.

    예λ₯Ό λ“€μ–΄ 2λ°”μ΄νŠΈλ‘œ ν‘œν˜„λ˜λŠ” λ¬Έμžμ—΄μ€ 110.... 으둜 μ‹œμž‘ν•œλ‹€.

    3λ°”μ΄νŠΈλ‘œ ν‘œν˜„λ˜λŠ” λ¬Έμžμ—΄μ€ 1110....으둜 μ‹œμž‘ν•œλ‹€.


     

    μ˜€λŠ˜λ„ λ‚˜λŠ” μ„±μž₯ν–ˆλ‹€!!πŸ”₯

     

    πŸ€– [Back to the Basics] πŸ’»
    μ£Όλ‹ˆμ–΄ iOS 개발자 우짱의 기술 λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.

     

    [μ°Έκ³  자료 πŸ™‡πŸ»‍♂️]

    λŒ“κΈ€

μ–΄μ œλ³΄λ‹€ λ°œμ „ν•œ λ‚˜