그간 자주 봤던 인코딩과 그 방식, UTF-8 등에 대해 정리해보도록 하겠습니다.
인코딩
컴퓨터는 정보를 binary 단위로 저장한다. ex - 0101010111(2)
하지만 이렇게 표현된 정보들을 사람의 관점에서 이해하고 사용하기에는 쉽지 않다. 컴퓨터도 마찬가지일 것이다.
서로 이해하기 위해서는 변환하는 과정을 거쳐 저장하고 보여줘야 한다.
알파벳으로 예를 들자면, A = 65
이를 이진법으로 변환하면 1000001(2)
즉 A = 65 = 1000001(2)가 되는 것이다.
이와 같이 컴퓨터는 모든 문자열마다 각각의 숫자를 정하고 매긴 문자열 집합을 생성한다.
- 사람이 컴퓨터에 문자를 입력하면 → 컴퓨터는 바이너리 숫자로 저장하고 → 다시 화면에 띄울 때에 문자열 집합에서 하나씩 찾아서 보여주는 것이다.
사람의 문자를 컴퓨터가 보여줄 수 있도록 바이너리 숫자로 바꿔주는 것을 character encoding이라고 한다.
하지만 문자열 집합은 통일되어 있지 않기 때문에 나라들마다 다르게 사용하고 있다. (가장 대표적: 미국의 ASCII)
이러한 불편함 (= 문자열 집합과 인코딩 방식을 맞춰서 사용해야 한다는 점)을 없애주기 위해 전세계의 문자들을 하나로 통일한 것을 Unicode라고 한다.
인코딩 방식
이진수로 변환한 다음 저장을 위해서는 메모리 내의 자릿수 할당 방식을 정해줘야 한다. (ex - A = 1000001(2)를 앞에는 0으로 채우고 8자리 그대로 사용할지, 16자리로 저장할 지 등등)
이와 같이 메모리 내의 자릿수 할당 방식을 정해주는 것을 인코딩 방식을 정해준다고 표현한다.
(참고: encoding ⇒ 어떤 것을 다른 형식으로 바꿔주는 것)
Unicode의 인코딩 방식 중 하나가 UTF-8인 것이다.
그 밖의 대표적인 인코딩 방식들로는 EUC-KR, USC-2, USC-4, UTF-16 등이 있다.
활용
URL Encoding
웹에서 서버로 데이터를 보낼 때 사용하는 방법이다.
- 웹사이트 주소 + URL 파라미터 → 서버로 인자 전송
평소 서치를 할 때 검색창에 분명 한글로 입력 했는데도 주소를 다른 곳에 붙여 넣어보면 기본주소%adsklads어쩌고로 나타나는 걸 계속 봤었는데, 이러한 이유가 URL의 인코딩 방식이 ASCII 코드의 문자 집합만 사용할 수 있기 때문이라서 그런 것이었다고 한다.
정리하자면 스페이스, 한글 등을 포함한 문자열을 약속된 방식(ASCII)으로 치환해서 서버로 전송하도록 하는 것이 URL Encoding인 것이다.
즉 URL Encoding이란 ASCII가 아닌 것들을 URL로 집어넣을 수 있게끔 ASCII로 바꿔주는 것!
사실 뭔지는 알고 있었는데 ... 그냥 변환 방식이다... 까지만 알고 설명할 정도는 아니었고 ... Xcode를 이런저런 살펴보다가 갑자기 궁금해져서 찾아보고 정리하게 되었스빈다 ... 맨날 뜬금없이 공부하는 듯 ...
그래도 도움이 되겠죠... ???
'공부 > computer science' 카테고리의 다른 글
예외 처리를 하는 이유 (0) | 2022.03.18 |
---|---|
JPEG vs PNG (0) | 2022.03.17 |
비동기 프로그래밍 방식에 대해 알아보자 (2) | 2022.02.01 |
프로그래밍 디자인 패턴에 대해 알아보자 (0) | 2022.01.28 |
difference of OOP and Functional Programming (0) | 2021.08.27 |
댓글