개인공부) 서버실습(32) - UTF-8, Encoding

Justin·2022년 6월 25일
0

서버공부

목록 보기
31/45
post-thumbnail

✅ 지난시간

패킷 처리를 위해 코드 개선 작업중 GameSession이라는 공통이름을 Client Session, Server Session으로 구분하고, Send와 Recv 처리하던 코드등을 라이브러리화 시키기 위해 PlayerInforReq 클래스에 Write(), Read()를 만들어 정리를 해두었다.

🌐 UTF-8과 Encoding

💬 Enncoding 이란?

네이버에 도움을 받자면 인코딩이란 이렇게 정의할 수 있다. 자주 접하는 동영상을 인코딩 하는 것과 유사하지만 다르다고 할 수 있을 거 같다.

인코딩
하나의 명령어를 컴퓨터에 표현하기 위하여 명령어의 의미를 일정한 비트 패턴으로 표현하는 방법

우리가 컴퓨터에게 명령을 내리기 위해 사용하는 코드와 문자가 0101로 구성 되어야 하지만, 이를 컴퓨터가 알아들을 수 있는 말로 풀어서 설명해주어야 한다.

이때 우리가 컴퓨터에게 이해시키기 위해 우리의 언어 -> 컴퓨터 언어로 변경하는 과정을 인코딩, 컴퓨터 언어로 작성된 내역을 우리의 언어로 풀어내는 과정을 디코딩이라 할 수 있다.

🔁 문자열 인코딩

문자 인코딩은 사람이 사용하는 문자를 컴퓨터에 표현하기 위해 약속된 규칙에 따라 변환하는 과정을 말한다. 이때 대표적인 규칙이 '아스키(ASCII) 코드'이다.

하지만 아스키 코드는 8비트 구조로 이루어져 있어 영어를 담기에는 충분했지만, 타 국가들의 언어를 담을 수가 없어 호환성 이슈가 발생하여 더 통합적인 규칙이 필요하게 되었다.

🌐 Unicode와 UTF-8

유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. 다만 유니코드 자체는 모든 언어를 표현할 수 있지만 필요하지 않은 부분도 있어 공간의 낭비가 발생할 수 있다.

그렇기에 가변적으로 사용되는 UTF-8은 그 유니코드를 위해 가장 대중적으로 사용되는 인코딩 방식이다.

🔷 UTF-8의 특징

UTF-8은 1바이트 부터 4바이트 까지 가변적으로 사용되며, 아스키 코드에 해당하는 영문 및 숫자 표기 시에는 1바이트를 사용하며 한글 표기시에는 3바이트가 사용된다.

UTF-8의 장점
유니코드의 경우에는 다른 국가에서 한글 언어팩이 설치되지 않더라도 한글 표현이 가능하다.😄

물론 우리 나라에서도 다른 나라의 언어를 볼 수 있다. 그래서 다양한 언어로 작성되는 환경이나, 웹과 같은 다양한 국가의 사람들이 보는 경우 자주 사용된다.

🔷 UTF-16의 특징

UTF-8과는 다르게 영문도 2바이트, 한글 표기 시에도 2바이트를 사용한다. 만약 한글을 위한 서비스라면 UTF-8보다 16을 사용하는 것을 고려해볼 수 있다.


나도 팀원들과 협업 할 때 팀원 중 한 명이 EUC-KR을 사용해버려서 주석들이 다 이상한 글자 표기로 변해 고생을 했던 기억이 있다.

그때 얼추 인코딩에 대해 개념을 정리 했었지만, 자세하게는 표현하기 어려운데, 이번 기회에 좀 정리가 된 것 같다.

profile
인디 게임을 만들며 공부하고 있습니다.

0개의 댓글