해당 포스팅은 컴퓨터 사이언스 부트캠프 with 파이썬(양태환 저)를 보고 공부하며 개인적인 용도를 위해 정리한 글이다.
텍스트를 표현하는 방법
아스키 코드
- 정보 교환을 위한 미국 표준 코드의 준말 (ASCII)
- 키보드에 모든 기호에 대해 7비트 수 값을 할당했다.
- e.g. A 는 65, B 는 66. (대소문자를 구분한다.)
- 제어문자control character 는 글자를 출력하는데에 사용하지 않고 장치를 제어하기 위해 사용 된다.
- e.g.
NUL
은 널(NULL) 을 의미하며 00 을 할당 받았다.
- e.g.
유니코드
- 기존의 영어만 저장 가능했던 아스키 코드의 단점을 보완하기 위해 새로 만든 표준이다.
- 문자 코드에 따라 각기 다른 인코딩Encoding을 사용한다.
- 인코딩: 다른 비트 패턴을 표현하기 위해 사용하는 비트 패턴.
UTF-8
- 유니코드 중 가장 유명한 것은 8 비트를 사용하는 UTF-8 (unicode transformation format - 8 bit) 이다.
- 모든 아스키 문자를 8 비트로 표현하기 때문에 아스키 데이터를 인코딩 할 때에는 추가 공간이 필요하지 않다.
- 아스키가 아닌 문자의 경우 아스키를 받아 처리하는 프로그램이 깨지지 않는 방법으로 문자를 인코딩한다.
- 문자를 8 비트 덩어리Octet 의 시퀀스로 인코딩한다.
- 첫 번째 8 비트의
MSB
쪽에 있는 비트들이 8 비트 덩어리의 시퀀스를 표현하고 덩어리의 맨 앞을 식별하기 쉽다.- 어떤 프로그램이 문자의 경계를 찾아야하는 경우에 해당 방식은 매우 유용하다.
문자를 사용한 수 표현
베이스 64
- 3 바이트 데이터를 4개의 문자로 표현한다.
- 3 바이트의 데이터의 24 비트를 4가지 6 비트 덩어리로 나누고 각 비트 덩어리에 출력 가능한 문자를 할당해 표현한다.
- 모든 데이터가 3 배수일 수는 없으므로 원본 데이터가 2 바이트 남으면 끝에
=
를 붙이고 1 바이트가 남으면==
를 붙인다.
URL 인코딩
- 특별한 의미를 지니는 문자의 경우 리터럴Literal 로 사용 할 필요가 있다.
- 슬래시 문자 (
/
) 의 경우 16 진수로0x2F
인데 슬래시 문자를 URL 에 사용하되 특별한 의미를 지니게 하고 싶지 않은 경우%2F
로 표현한다.%
도 마찬가지로 리터럴로 사용하고 싶은 경우%25
로 표현한다.
- 슬래시 문자 (
색을 표현하는 방법
- Red, Green, Blue 를 사용하는 (RGB)
- 색은 컬러큐브color cube 라는 이름의 정육면체로 표현할 수 있다.
- (0, 0, 0) 은 검은색, (1, 1, 1) 은 흰색을 표현.
- RGB 은 32비트 (4바이트) 를 사용하는데 4바이트 중 3바이트는 색상을 남은 1바이트는 투명도transparency 를 나타낸다.
- RGBa 는 각 RGB 값에 투명도를 의미하는 알파값 (1 ~ 255) 값을 곱한다.
색 인코딩
- 색 인코딩인 16진수를 사용하여 #000000 (검은색) 부터 #FFFFFF (흰색) 까지의 값을 이용한다.