문자열? 그런 달달한 것이 남아있긴 한가?

  • Python basic and Application
  • 2016-08-13 (Sat) 12:40 - 13:05
  • Korean
  • 101
  • Photography and recording is allowed

Slide

http://www.slideshare.net/sigmadream/ss-64933776

Video

https://youtu.be/w-3oMfBjXCI

PDF

https://github.com/pythonkr/pyconapac-2016-files/raw/master/20160813-101-5-HanSanggon.pdf

Description

이번 발표는 주제는 'String'과 'Bytes'에 관한 내용입니다. Py2에서 Py3로 이동하는 과정에서 가장 많은 혼란과 팀내 잡음을 일으켰던 주제입니다. 서로 같은 이야기를 다른 용어로 이해하는 팀원들과 'One for All, All for One'이 되기 위해서 준비했던 내용입니다.

Ch01. "In the beginning was the Word, and the Word was with... - 요한복음1:1"

우리가 25분간 달려나가면서 모든 이들의 마음의 안식처이자 양식이 되어야 할 내용은 {0,1} 이외에 어떤 것도 존재하지 않았다라는 것 입니다.

> 인류 역사상 가장 훌륭했던 유기체 슈퍼 컴퓨팅 '좐 폰 노에만' 선생께서 컴퓨터를 만드실 때 "모든 컴퓨터 프로그램은 메모리에서 실행되면 참 좋겠다"라고 하시어, 현재 우리가 사용하는 모든 것은 메모리에 저장됩니다. 그 광활하고아름다웠던 백지의 공간엔 {0,1}만 존재합니다

Ch02. "君子不器(군자불기), 군자는 그릇이 아니다 - 공자"

문자란 약속의 표현입니다. {0,1}의 뭉치를 어떻게 '표현할 것인가'에 관한 문제를 논의하는 방법인 '문자열 인코딩' 입니다.

> {0,1}을 어떻게 표현할 것인가에 관한 내용은 우리가 보는 세상을 결정합니다.

Ch03. "너는 벌써 자기의 이마에다 인의(仁義)라는 자자(刺字)를 해 버렸다 - 장자"

지금 이 순간(!), 가장 널리 사용되는 문자 인코딩 방법은 "유니코드" 입니다.

> 파이썬3에서 사용되는 문자열(스트링)은 기본적으로 "유니코드"입니다. 개발자의 의지가 발현해서 키보드를 통해서 CP-949를 강제하지 않았다면 일단은 "유니코드"입니다(음... 그렇다면 UTF-8?이런건?).

Ch04. "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil - Donald Knuth"

유니코드를 '효율적'이란 이름으로 사용하기 위해서 우리가 했던 몇가지 방법을 알아보죠

> UTF-8, UTF-16, UTF-32 등등

Ch05. "Think Different - Apple ad"

Py2의 영향력 때문인지 Bytes와 String을 'De/In'code 하는 경향성이 있습니다. 이 두개는 전혀 다릅니다. 완전히 다르다고 생각해야 합니다. 심지어 String에 Bytes를 붙이는 연산(+)을 하는 경우도 있습니다(Stack overflow에 가보시면...).

> 두 개는 다른 자료형 입니다. 문자열을 표현하는 방법은 'Unicode'이고 Bytes는 '0-255'까지 정수 입니다. 하지만 Ch01에서 했던 내용은 잊지 않으셨죠? 우린 {0,1}이 있다면 뭐든 할 수 있습니다! 그렇지만 Ch02/Ch03의 내용도 상기해봐야 합니다. 

Comments

blog comments powered by Disqus

Sponsors

Keystone

Diamond

Platinum

Gold

Startup

Silver

Media