공부/인프런 - Rookiss

Part 4-4-3. 패킷 직렬화 : UTF-8 vs UTF-16

셩잇님 2023. 12. 6. 11:18
반응형

 

 

패킷 직렬화

 

 지난 시간에는 Send(=Write)와 Recv(=Read) 두 메서드를 Packet이라는 최상위 부모 객체에 abstract로 선언하여 이를 각자의 패킷(PlayerInfoReq)에서 override 하는 작업을 통해 또 한번의 개선을 진행했다. 이번 시간에는 Serialization에 더 자세하게 알아보기 전에 인코딩과 UTF-8, 16에 대해서 알아보자.

 


 

🍦 유니코드

 

유니코드(Unicode)란?
 유니코드는 글자들의 특별한 번호표 같은 것이다. 예를 들어, "A"는 유니코드에서 특정한 번호를 가지고 있고, "가"라는 한글도 또 다른 번호를 가지고 있다.

🧐 왜 이런 번호를 가지게 되었을까?
1. 글자를 쉽게 구분하기 위해

* 유니코드는 전 세계의 거의 모든 글자들을 포함하고 있습니다. 각 나라의 언어 별 글자마다 특별한 번호가 있어서, 컴퓨터는 이 번호를 보고 어떤 글자인지 알 수 있습니다.

2. 다양한 언어와 문자를 지원하기 위해

* 유니코드는 영어 뿐만 아니라 중국어, 한국어, 아랍어, 일본어, 이모지 등 여러 언어와 문자를 모두 수용할 수 있도록 설계되었다.

 예를 들면 우리가 전화번호부에서 친구의 번호를 찾을 때, 각 친구에게 고유한 전화번호가 있듯이, 유니코드는 각 글자에게 특별한 번호를 부여해 컴퓨터가 글자를 구분할 수 있게 해주는 것이다. 따라서 유니코드를 사용하면 어떤 컴퓨터에서든지 전 세계의 다양한 언어와 문자를 표현할 수 있게 되는 것이다.

 


 

💫 인코딩

 

 

인코딩(Encoding)이란?
 인코딩은 컴퓨터에서 텍스트를 표현하는 방법 중 하나입니다. 우리가 사용하는 글자나 숫자를 보기 좋게 표현하려면 컴퓨터에서 사용하는 0과 1의 조합으로 변환해야 합니다. 이러한 변환 과정을 인코딩이라고 부릅니다.

 

UTF-8, UTF-16이란?

 UTF-8: 이 방식은 가변 길이 문자 인코딩입니다. 각 문자마다 1바이트에서 4바이트까지 사용할 수 있습니다. 주로 인터넷에서 많이 사용되며, 영어와 같은 알파벳 문자는 1바이트, 한국어나 중국어와 같은 문자는 3바이트 이상 사용합니다.

 UTF-16: 이 방식은 고정 길이 문자 인코딩으로, 모든 문자를 2바이트로 표현합니다. 주로 윈도우 시스템에서 사용되고 있습니다.

😎 차이점
길이의 차이
UTF-8은 각 문자에 따라 다른 바이트 수를 사용하며, UTF-16은 모든 문자를 2바이트로 표현한다.

 

활용 분야
UTF-8은 주로 웹에서 많이 사용되고, 텍스트 데이터를 효율적으로 표현할 수 있다. 그러나 UTF-16은 주로 윈도우 시스템에서 사용되지만, 특히 서로 다른 길이의 문자를 처리하기 때문에 UTF-8보다 메모리를 더 사용한다.

 


 

맥이나 유니티 초기 설정같은 것들을 설정하면 흔히 EUC-KR, UTF-8, UTF-16 등에 대해서 잠깐 스쳐 보고 지나칠 수 있을 것이다. 이러한 것들에 대해 개념을 알아보고 무엇이 다른지 명확하게 알면 조금 더 개발할 때 수월하지 않을까? 👍

 

반응형