우리 주변에는 수많은 텍스트 데이터가 있다
텍스트 데이터는 문자열(String)로 표현을 한다. 파이썬에서 문자열은 작은 따옴표(') 또는 큰 따옴표(")로 묶은 문자들이다.
str_01 = "Welcome~!" str_02 = "Hello World"
위와 같이 문자열 데이터를 변수에 저장, 리스트, 튜플, 딕셔너리에도 같은 방법으로 저장할 수 있다
변수에 데이터를 할당하면 이 데이터들은 컴퓨터의 주 기억장치인 메모리(RAM)에 저장된다
문자열 데이터가 메모리에 저장될 떄 컴퓨터 내부에서 일어나는 일
컴퓨터는 0과 1 이진 데이터(binary data)로 표현되기 때문에 데이터도 마찬가지로 0과 1로 변환돼 다루어진다
이진 데이터의 최소 단위는 비트(bit)이고, 비트가 8개가 모이면 바이트(byte)가 된다
메모리에는 바이트로 저장된다
- 바이트(byte) : 컴퓨터의 기본 저장 단위
- 1바이트(1 byte)는 8비트(bit)이다
- 1바이트에는 2의 8승개, 256개의 고유한 값을 저장할 수 있다
- 인코딩(encoding) : 문자열을 바이트로 변환하는 과정
- 디코딩(decoding) : 바이트를 문자열로 변환하는 과정
위 그림에서 사람이 이해할 수 있는 데이터는 텍스트 데이터, 문자열 데이터를 의미한다 그렇다면 문자열을 어떻게 이진수로 변환(인코딩)할까?
문자를 각 숫자에 대응 시키고 이 숫자를 이진수로 변환하는 방법을 사용한다
국제 표준 기구(ISO:International Standards Organization)는 전 세계 문자를 모두 표시할 수 있는 표준 코드를 제정했다. 이를 유니코드(Unicode)라 한다
UTF-8, UTF-16은 무엇인가? UTF-8과 유니코드가 같은 것이라고 혼동하는 경우가 많은데 유니코드는 오직 한 가지 버전만 존재하고, UTF-8, -16 등은 유니코드로 정의된 텍스트를 메모리에 인코딩하는 방식들을 말한다
참조 유니코드와 UTF-8
파이썬에는 유니코드를 확인할 수 있는 함수가 있다
ord()
해당 문자에 대응하는 유니코드 숫자를 반환
chr()
해당 유니코드 숫자에 대응하는 문자를 반환
파이썬에서 모든 문자열은 유니코드로 표현된다
파이썬 3부터 문자열은 유니코드의 규약을 따른다. 이는 외부 데이터 및 데이터베이스로부터 데이터를 읽거나 보낼 떄는 인코딩 혹은 디코딩 작업을 거쳐야 하며, 인코딩 규약은 내부적으로 유니코드(UTF-8)임을 의미한다