인코딩


컴퓨터의 모든 데이터는 0과 1로 구성된다. 지금 보고있는 글도 사실은 0과 1의 집합이다.

“사과”가 사과를 가리키는데 약속이 필요하듯, 0과 1로 우리의 문자를 표현하는 것도 일종의 약속 덕분이다.

이런 약속들을 특별히 인코딩(Encoding) 표준이라고 하는데, 대표적으로 **아스키(Ascii)**와 **유니코드(Unicode)**가 있다.

아스키는 7비트 데이터에 대한 인코딩 표준이다. 이를 이용하면 알파벳과 특수문자 등을 표현할 수 있다.

예를 들어, 아스키에서 1 한 개, 0 다섯 개, 1 한 개를 이어 붙이면 “A” 로 해석된다. 이에 따라 “1000001”이라는 데이터를 아스키로 변환하면 “A”가 된다.

과거에는 영어는 아스키, 한글은 CP-949, EUC-KR 등을 사용했다. 그러나 이러한 방식은 호환성 측면에서 국제 소프트웨어를 개발하려는 회사에 큰 부담이 됐다.

가끔 소프트웨어를 실행했을 때 글자가 깨져보이는것은 인코딩이 호환되지 않아 발생하는 문제다.

이러한 어려움을 해결하고자 유니코드라는 새로운 표준이 만들어졌다. “Uni(하나의”라는 접두사가 나타내듯, 유니코드는 모든 언어ㅣㅡ 문자를 하나의 표준에 담겠다는 목표로 제정되었다. 유니코드에서 한 문자는 최대 32개의 비트로 표현된다.

32비트로 표현할 수 있는 정보의 가짓수는 2^32, 대략 42억개이다. 전 세계의 문자를 표현하고도 남을 수치이다. 따라서 최근에는 한글, 한자 히라가나, 가타카나, 알파벳과 같은 문자 외에 각종 이모지들도 유니코드에 포함되고 있다. 😁

인코딩을 이요하면 우리의 문장을 컴퓨터에 저장하고, 표현할 수 있다.

그리고 네트워크를 이용하면 인코딩한 정보를 다른 사람들과 쉽게 교환할 수도 있다.

통신 프로토콜


웹 서버에 있는 리소스를 클라이언트가 받아 보려면, 클라이언트는 웹에게 특정 리소스를 지정하여 제공해달라고 요청해야 합니다. 그러면 서버가 해당 요청을 이해하고, 대응되는 동작을 통해 클라이언트에게 리소스를 반환합니다.