You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>데이터를 충분히 고문하면, 자연은 언제나 바른 말을 할 것이다. - 로널드 코스</p>
76
+
</blockquote>
77
+
<p>지금까지 파이썬 언어 자체(데이터 타입, 코드 구조, 구문 등)만 다뤘다.
78
+
2부부터는 실제 문제 적용을 다룰 것이다.</p>
79
+
<p>이 장에서는 데이터 길들이기에 대한 실용적인 기술을 배운다.
80
+
이것을 데이터 먼징(data munging) 또는 ETL(추출, 변형, 로드)라고 부른다.
81
+
프로그래밍 서적은 일반적으로 이러한 주제를 명시적으로 다루지 않지만, 개발자들은 목적에 따라 데이터를 올바른 형태로 만드는 데 많은 시간을 소비한다.</p>
82
+
<p>데이터 형식을 크게 텍스트(text)와 2진수(binary)로 나눌 수 있다.
83
+
텍스트 데이터(text data)는 파이썬 문자열(string)을 사용한다.</p>
84
+
<p>첫 번째로 지금까지 살펴보지 않은 문자열 정보를 다룬다.</p>
85
+
<ul>
86
+
<li>유니코드 문자</li>
87
+
<li>정규 표현식 패턴 매칭</li>
88
+
</ul>
89
+
<p>두 번째로 이진 데이터와 두 가지 파이썬 내장 타입을 살펴본다.</p>
90
+
<ul>
91
+
<li>불변 8비트 값의 바이트</li>
92
+
<li>가변 값의 바이트 배열</li>
93
+
</ul>
94
+
<p>=> "아니 텍스트도 2진수 아닌가?" 라는 질문에 대한 답은 <strong>"네, 맞습니다"</strong> 입니다. 컴퓨터에 저장되는 모든 데이터는 궁극적으로 0과 1의 조합인 2진수(바이너리)입니다.</p>
95
+
<p>그렇다면 왜 '텍스트'와 '이진' 데이터를 구분할까요? 이는 데이터를 <strong>어떻게 해석하고 다룰 것인가</strong>에 대한 실용적인 구분입니다.</p>
96
+
<ul>
97
+
<li><strong>텍스트 데이터(Text Data)</strong>: 0과 1의 나열이지만, <strong>정해진 규칙(인코딩, 예: UTF-8, ASCII)에 따라 인간이 읽을 수 있는 '문자'로 해석</strong>하기로 약속된 데이터입니다. 파이썬의 <code>string</code> 타입이 바로 이것을 다룹니다. 예를 들어, 2진수 <code>01000001</code>은 'A'라는 문자로 해석됩니다.</li>
98
+
<li><strong>이진 데이터(Binary Data)</strong>: 이미지 파일(JPEG), 실행 파일(EXE), 동영상(MP4)처럼 <strong>문자로 해석되지 않는 모든 종류의 데이터</strong>를 의미합니다. 이 데이터들은 각 파일 형식의 고유한 구조에 따라 해석되어야 합니다. 파이썬의 <code>bytes</code> 타입이 이런 데이터를 다룹니다.
99
+
'텍스트'와 '이진'의 구분은 물리적인 차이가 아니라, 그것을 사용하는 <strong>프로그램과 사람의 해석 방식에 따른 논리적인 구분</strong>입니다.</li>
100
+
</ul>
101
+
<h2>텍스트 문자열: 유니코드</h2>
102
+
<p>5장에서 파이썬 문자열 기본을 배웠다.
103
+
이제 유니코드를 배워볼 차례다.
104
+
파이썬 3의 문자열은 바이트 배열이 아닌 유니코드 문자 시퀀스다.
105
+
이것은 파이썬 2에서 파이썬 3의 가장 큰 변화다.
106
+
지금까지 이 책의 모든 텍스트 예제는 평범하고 오래된 아스키 코드(ASCII)를 사용했다.
107
+
컴퓨터의 기본 저장 단위는 바이트(byte)로 8비트(bit)에 256개의 고유한 값을 저장할 수 있다.
108
+
여러 가지 이유로 아스키 코드는 7비트(128개의 고유한 값)만 사용한다.
109
+
각 26개의 대소 문자, 숫자 10개, 문장 부호, 공백 문자, 비인쇄 제어 코드로 구성되어 있다.</p>
110
+
<p>슬프게도, 세계에는 아스키 코드가 제공하는 것보다 더 많은 문자가 존재한다.
111
+
파이썬은 많은 문자와 기호를 지원하기 위해 많은 노력을 했다.
112
+
이 책에서 가끔 독특한 문자와 기호를 보게 될 것이다.
113
+
다음은 일부 문자 코드다.</p>
114
+
<ul>
115
+
<li>Latin-1 or ISO8859-1</li>
116
+
<li>Windows code page 1252
117
+
이들 각 문자는 모두 8비트를 사용하지만, 그것조차도 충분하지 않다.
118
+
심지어 비유럽 국가의 언어는 8비트로 모든 문자를 표현할 수 없다.
119
+
국가별로 독자적인 문자열 인코딩을 사용하는 것을 해결하기 위해, 국제 표준화 기구에서 유니코드를 만들었다.
120
+
유니코드는 수학 및 기타 분야의 기호들도 포함한다. 심지어 이모티콘까지.</li>
121
+
</ul>
122
+
<blockquote>
123
+
<p>유니코드는 플랫폼, 프로그램, 언어에 상관없이 문자마다 고유한 번호를 제공한다. - 유니코드 협회</p>
124
+
</blockquote>
125
+
<p>유니코드 코드 차트 페이지는 현재 정의된 모든 문자 집합과 이미지에 대한 링크를 제공한다.
</span></span></code></pre><p><code>a = 3</code> 이렇게 하면 <code>a</code> 는 <code>3</code> 정수 객체를 가리킨다. 그리고 <code>a = 5</code> 이렇게 하면 <code>5</code> 정수 객체를 새롭게 가리키게 된다. 그리고 이전 정수 객체를 참조를 중단하게 된다.</p>
108
+
<h2>복사</h2>
109
+
<p><strong>복사는 여러 변수가 같은 객체를 가리키는 것을 의미한다.</strong></p>
0 commit comments