flowdas http://www.flowdas.com/ en-us Sun, 07 Mar 2021 00:00:00 +0900 http://www.flowdas.com/2021/03/07/type-casting-in-python.html http://www.flowdas.com/2021/03/07/type-casting-in-python.html <![CDATA[Type casting in Python]]> Type casting in Python

오픈 소스 프로젝트를 하나 시작했습니다. Typeable 이라는 것인데 파이썬에 타입 캐스팅을 도입하는 것을 목표로 하고 있습니다.

파이썬에 타입 캐스팅이 아예 없는 것은 아닙니다. 가령 int(3.14) 같은 표현은 사실상 float 형을 int 형으로 바꾸는 타입 캐스팅입니다. set([1,2,3]) 도 마찬가지입니다. 이처럼 파이썬의 타입(혹은 생성자)은 하나의 인자를 제공할 때 타입 캐스팅 연산자 역할을 하는 경우가 많습니다만, 반드시 그런 것은 아닙니다. bytes(10) 은 타입 캐스팅이라고 보기에는 무리가 있는 걸과를 줍니다.

타입 캐스팅은 변환(conversion)을 수반합니다. 3.143 으로 바꾸는 것이 변환의 예로 충분하지 않다면 int("2021") 을 생각해보십시오. 이런 변환이 원하는 것이 아닐 경우도 있는데, 가령 str(b'hello') 는 디코딩하는 대신 "b'hello'" 를 돌려줍니다.

타입 캐스팅은 검사(validation)도 수반합니다. int(None) 처럼 변환이 불가능하면 TypeError 를 일으킵니다. 이 역시 언제나 상황에 맞지는 않습니다. 가령 bool 이나 str 은 거의 예외를 일으키지 않습니다. (사실 일부러 그렇게 만드는 경우를 빼고는 당장 생각나는 경우가 없습니다.) 또 앞의 str(b'hello') 과는 달리 그 반대인 bytes('hello')TypeError 를 일으킵니다.

이 처럼 파이썬에 타입 캐스팅이 부분적으로 지원되기는 하지만, 일관성이 결여되어 있습니다. 즉 타입 캐스팅을 언어 기능으로 일관되게 지원하려는 의도가 없었다는 뜻입니다. 또 한가지 문제는, 얕은(shallow) 타입 캐스팅만 지원할 뿐, 깊은(deep) 타입 캐스팅을 지원하지 않는다는 것입니다. 파이썬의 컨테이너 형들에 대해 앝은 복사를 지원하는 copy.copy() 와 깊은 복사를 지원하는 copy.deepcopy() 가 표준 라이브러리에서 제공되고 있지만 타입 캐스팅에는 이런 지원이 없습니다. 예를 들어 봅시다. val 을 키가 문자열이고 값이 정수의 리스트인 딕셔너리로 변환한다고 합시다. 아마 다음과 같이 작성할 수 있을겁니다:

{str(k): list(map(int,v)) for k, v in val.items()}

이 코드가 변환이 가능한 경우를 일부 놓치는 문제는 제외하더라도, 자료 구조를 코드로 매변 옮겨 적어야 한다는 것이 더 큰 문제입니다. 뭔가 더 좋은 방법이 있어야만 합니다. 그렇게 믿는 이유는 이미 파이썬에서 "키가 문자열이고 값이 정수의 리스트인 딕셔너리" 라는 표현을 코드로 나타내는 방법을 제공하고 있기 때문입니다. dict[str,list[int]] 가 그 표현입니다. (3.9 이전 버전에서는 이 표현은 허락되지 않습니다. 대신 typing.Dicttyping.List 를 사용해서 Dict[str,List[int]] 라고 적어야 합니다.) 저는 예전에 주석으로 {str:[int]} 라고 적어놓고는 했습니다만, 파이썬 표준 방식은 조금 더 장황한 양식을 요구합니다. 어쨌거나 이것도 꽤 직관적이고 간결합니다. 자 그러면 혹시 dict[str,list[int]](val) 하면 될까요? 에러는 발생하지 않습니다만, 결과는 원하는 결과가 아닙니다. dict(val) 한 것과 정확히 같은 결과입니다. 다시 말해 dict[str,list[int]] 라는 표현은 형 어노테이션으로는 쓸모가 있지만 런타임 환경에서는 dict 와 동작이 같습니다.

typing 을 좀 더 살펴보면, typing.cast() 라는 함수가 있습니다. 설명을 조금 보면 이게 바로 우리가 원하는 것입니다. 값을 지정한 형으로 변환한다네요. 하지만 더 읽어보면 형 검사기에 정보를 주기위한 용도로 사용될 뿐, 런타임 환경에서는 값을 그냥 반환한다고 합니다. 자 이것이 typing 모듈의 현 상황입니다. 형 어노테이션과 형 검사기를 지원하지만 런타임 환경에서는 그리 쓸모 없는 모듈. 과연 그럴까요?

형 어노테이션이 런타임 환경에 조금씩 스며들고 있습니다. functools.singledispatch() 를 보십시오, 비록 대안을 제공하고는 있지만 첫번째 인자의 형 어노테이션을 확인합니다. dataclasses 를 보십시오, 이 모듈은 형 어노테이션을 하지 않고는 아예 쓸 수도 없습니다. typing.get_type_hints() 함수는 런타임 환경에서 이런 기능들을 구현하는데 쓸 수 있는 아주 강력한 도구입니다.

그래서 시작했습니다. 런타임 환경에서 동작하는 typing.cast() 를 만들자. 이제 겨우 부분적이나마 동작하는 버전이 나와서 공유합니다. 그래서 앞에서 예로 든 변환은 이제 이렇게 수행할 수 있습니다:

cast(dict[str,list[int]], val)

앞으로 나눌 이야기가 많으니 오늘은 이만 합니다.

Typeable 의 설명서는 https://typeable.flowdas.com 에 있습니다. 설치하려면 pip install typeable 하시면 됩니다.

]]>
Sun, 07 Mar 2021 00:00:00 +0900
http://www.flowdas.com/2019/01/14/the-strange-last-voyage-of-donald-crowhurst.html http://www.flowdas.com/2019/01/14/the-strange-last-voyage-of-donald-crowhurst.html <![CDATA[도널드 크로허스트의 기이한 마지막 항해]]> 도널드 크로허스트의 기이한 마지막 항해
도널드 크로허스트의 기이한 마지막 항해 - 8점
니컬러스 토멀린 & 론 홀 지음, 박여영 옮김/클

1968년 10월 31일 영국. 단독 세계 일주 요트 경주에 도널드 크로허스트가 도전합니다. 오직 혼자, 외부의 도움이나 중간 기착 없이 자신의 요트로 망망대해를 일주해야 합니다. 외부와 완전히 단절된 것은 아니고, 라디오, 전신, 전화가 있습니다. 공인된 경험도 없고, 부실한 준비로 출발부터 불안했던 크로허스트는, 얼마 후 하루 주행 거리 신기록을 수립했다는 놀라운 소식을 전해옵니다. 어느덧 경쟁자들이 하나둘 탈락하면서 유력한 우승 후보로 떠오릅니다. 하지만 연락이 끊기고 이듬해 7월 10일 엉뚱한 장소에서 표류 중인 빈 배가 발견됩니다. 무슨 일이 있던 것일까요? 그 배에 남아있는 일지, 녹음, 비디오테이프에서 드러난 진실은 떠들썩한 스캔들을 일으킵니다. 자신의 거짓말에 익사한 한 남자의 이야기는 어둡기보다는 서글픕니다.

]]>
Mon, 14 Jan 2019 00:00:00 +0900
http://www.flowdas.com/2018/12/31/how-not-to-be-wrong.html http://www.flowdas.com/2018/12/31/how-not-to-be-wrong.html <![CDATA[틀리지 않는 법]]> 틀리지 않는 법
틀리지 않는 법 - 10점
조던 앨런버그 지음, 김명남 옮김/열린책들

매혹적인 제목이다. 틀리고자 작정한듯한 사람들이 연일 매스컴을 장식하지만, 그래도 우리 모두의 본성에는 틀리지 않고자 하는 바이 들어있다고 믿고 싶다. 저자가 알려주는 비결은 "수학적 사고" 다.

저자 자신이 수학 신동으로 이름을 날렸으니 독자로서는 기가 약간 죽을 수밖에 없고, 천재들의 자화자찬이 아닌가 할 수 있다. 하지만 그런 이야기가 아니다.

"수학적 사고" 가 어떤 것인지, 왜 이것이 우리를 올바름으로 이끌어주는 도구인지, 천재들의 전유물이 아니라 우리 모두 어떤 식으로 수학을 호흡하고 있는지 탁월한 문장에 약간은 너드스러운 유머를 곁들여가며 설명하고 있다.

무척 재미있지만 쉬운 책은 아니다. 저자가 말하고자 하는 것을 빠짐없이 따라가려면 대학 초년생 수준의 수학은 이해할 수 있어야 할듯하다. 이제 고등학교 들어가는 딸아이에게 읽어주니 전혀 감흥이 없단다. 내가 낄낄거리며 읽었던 부분도 전혀 재미없단다. 하지만 세부 사항을 대충 흘려들으며 읽어도 그리 많은 것을 놓치지는 않을 것 같다. 재미는 조금 줄어들겠지만.

특히 마음을 끄는 구절이 있다.

천재성은 어떤 발생한 사건이지, 어떤 종류의 사람이 아니다.

애시버리의 시에서 인용한 구절도 계속 맴돈다.

왜냐하면 이것은 행동이므로, 이 확신하지 않는 것은.

올해 읽은 최고의 작품이다.

원서는 2015년에 출간된 <How Not to Be Wrong> 이다.

]]>
Mon, 31 Dec 2018 00:00:00 +0900
http://www.flowdas.com/2018/12/23/guitar-zero.html http://www.flowdas.com/2018/12/23/guitar-zero.html <![CDATA[뇌과학의 비밀]]> 뇌과학의 비밀
뇌과학의 비밀 - 8점
개리 마커스 지음, 김혜림 옮김/니케북스

음악을 좋아하기는 하지만, 재능은 없는 중년의 인지심리학자가, 안식년을 맞아 기타 연주에 도전하는 이야기입니다. 구성 자체는 예전에 소개한 우리는 왜 달리는가 와 비슷합니다. 달리기가 기타 연주로 바뀌었을 뿐, 자신의 실제 경험담을 뼈대로 삼고, 관련된 연구들로 살을 붙입니다. 학습 능력과 관련된 뇌에 관한 연구들이 많이 소개되고, 유명 음악인들을 인터뷰한 내용도 자주 만날 수 있습니다. 물론 기타 연주에 관한 내용도 상세히 다룹니다.

같은 음치이기는 하지만, 그리 음악에 대한 애착이 없는 사람으로서, 이 책을 보고, 이제라도 음악 공부를 해봐야겠다는 생각이 들지는 않습니다. 하지만 다른 분들은 어떻게 느낄지 모르겠습니다. 하지만 확실한 것은, 안식년이 없는 사람들은 꿈도 꾸지 말라는 것입니다. 매주 한 두시간씩 연습하는 것으로는 턱도 없으니까요. 은퇴 후라면 모를까.

저자는 클루지 라는 작품으로 이미 소개한 적이 있는 개리 마커스입니다. 2012년에 출간된 원서의 제목은 <Guitar Zero> 입니다.

]]>
Sun, 23 Dec 2018 00:00:00 +0900
http://www.flowdas.com/2018/12/14/les-fleurs-du-mal.html http://www.flowdas.com/2018/12/14/les-fleurs-du-mal.html <![CDATA[악의 꽃 (앙리 마티스 에디션)]]> 악의 꽃 (앙리 마티스 에디션)
악의 꽃 (앙리 마티스 에디션) - 8점
샤를 피에르 보들레르 지음, 앙리 마티스 엮고 그림, 김인환 옮김, 정장진 그/문예출판사

마티스의 그림을 좋아합니다. 보고 있으면 귀에 대고 비밀을 속삭이는 듯한 느낌을 받습니다. 뭔가 느끼고는 있었지만 깨닫지는 못하던 것을 알려주는 숨결.

마티스가 보들레르의 작품에서 뽑은 시에 드로잉을 붙여 펴낸 선집입니다. 원래는 석판화를 준비했다는데, 원화가 망가지는 사고로 포기하고, 전에 찍어둔 사진을 사용해서 영인본으로 300권을 펴냈다고 합니다. 드로잉이기 때문에 전반기의 마티스를 규정하는 야수파다운 원색은 볼 수 없습니다만, 감정은 그대로 살아있습니다.

]]>
Fri, 14 Dec 2018 00:00:00 +0900
http://www.flowdas.com/2018/12/10/lost-city-monkey-god.html http://www.flowdas.com/2018/12/10/lost-city-monkey-god.html <![CDATA[원숭이 신의 잃어버린 도시]]> 원숭이 신의 잃어버린 도시
원숭이 신의 잃어버린 도시 - 8점
더글러스 프레스턴 지음, 손성화 옮김/나무의철학

온두라스의 원시림에 "백색 도시"라는 저주받은 도시가 있다는 전설이 있습니다. "원숭이 신의 도시" 라고도 불리는 이곳은 몇몇 탐험가들이 발견했다고 주장했지만 그 진위가 밝혀지지 않았습니다. 한때 번성했으나 신의 저주를 받아 한순간에 몰락하고 지금은 그 토대를 찾을 수도 없는 잊힌 문명.

요즘은 자율주행 차에 자주 쓰이는 라이다라는 신기술의 도움으로, 원시림에 감춰진 비밀이 드러납니다. 이 탐사대에 동반한 <셔널 지오그래픽> 의 특파원이 매혹적인 이야기를 전합니다. 발견의 순간에는 나도 그런 자리에 있으면 좋겠다는 설렘이 듭니다. 하지만 이는 아주 잠깐이고, 독사와 온갖 질병에 몸서리를 치게 됩니다.

아주 매끄럽게 읽히는 책은 아닙니다만, 흥미진진한 이야기들로 가득 차 있습니다.

원서는 2017년에 출간된 <The Lost City of the Monkey God> 입니다.

]]>
Mon, 10 Dec 2018 00:00:00 +0900
http://www.flowdas.com/2018/12/03/killers-flower-moon.html http://www.flowdas.com/2018/12/03/killers-flower-moon.html <![CDATA[플라워 문]]> 플라워 문
플라워 문 - 10점
데이비드 그랜 지음, 김승욱 옮김/프시케의숲

해마다 5월이 되면 오세이지 인디언들의 광대한 영토를 뒤덮은 꽃들이 떨어지기 시작합니다. 그들이 5월을 "꽃을 죽이는 달" 이라고 부르는 이유입니다.

오세이지 인디언들은 백인들에게 자신들의 광활한 영토를 뺏기고, 캔자스 남동부로 피신합니다. 이곳에서도 역시 백인 이주민들의 약탈에 견디다 못해, 땅을 판 돈으로 백인들이 눈독을 들이지 않는 불모지를 사서 이주합니다. 그 후 정부와의 협상을 통해 이 땅을 오세이지 인디언들에게 분할하며, 그 밑에 있는 광물 자원에 대한 권리 역시 인정한다는 약속을 받습니다. 그래서 이제 백인들 틈에서 살아갈 수 있는 길이 열린듯했습니다.

하지만, 이 땅에서 유전이 발견되고, 그 결과 갑작스럽게 인디언들이 부유해지고, 다시 비극이 시작됩니다.

이미 잃어버린 도시 Z 로 한번 소개한 데이비드 그랜이 작년에 새로 낸 책(Killers of the Flower Moon)입니다. 번역본은 올가을에 나왔습니다. 전작보다 더 뛰어난 논픽션입니다. 치밀한 자료 조사는 물론이고, 추리 소설의 느낌을 받을 정도로 이야기 전개가 흡입력이 있습니다. 후반으로 갈수록 도저히 손에서 놓을 수가 없습니다. 좀 우울해져도 상관없다면 꼭 보세요.

]]>
Mon, 03 Dec 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/26/alley.html http://www.flowdas.com/2018/11/26/alley.html <![CDATA[골목길 역사산책 서울편]]> 골목길 역사산책 서울편
골목길 역사산책 : 서울편 - 8점
최석호 지음/시루

한국 근대사의 자취가 남아있는 장소들을 중심으로 산책로를 소개합니다. 말이 심하게 많은 가이드처럼 그 주변의 역사를 안내합니다. 이야기가 재미있습니다만, 듣다 보면 산책 중이었다는 것을 가끔 잊게 됩니다. 그래서인지 장마다 지도를 곁들인 요약을 제공하고 있습니다.

부암동, 정동, 북촌, 서촌, 동촌을 차례대로 방문합니다. 이 중 부암동 산책길은 제 산책길이기도 합니다. 좀 멀리 갈 때는 서촌 산책로까지 이어지기도 합니다. 특히 백사실 계곡은 추사 김정희의 별서 정원이 있던 자리인데, 여름에는 아이들 데리고 배드민턴 치면서 놀다 오던 곳입니다. 예능 프로그램에 소개된 이후로는 오히려 자주 찾지 않게 되네요. 저자도 이곳에 있던 연못과 정자가 사라진 것을 안타까워하면서, 1935년에 동아일보에 실린 사진을 인용하고 있는데, 아주 최근까지도 있었다는 것을 조사하지는 못한듯합니다. 지역 주민이다 보니 부암동 편은 제가 이 책을 평가하는 시금석 역할을 합니다. 산책로에서 소개하는 곳들은 대체로 널리 알려진 것들입니다. 이곳을 아주 잘 알고 있는 가이드라는 느낌은 나지 않지만, 그곳에 얽힌 이야기들이 보충합니다. 한 번쯤 이 책 들고 걸어보면 재미있을듯합니다.

이런 기획의 책이 처음은 아닙니다. 이 블로그에서도 2010년에 "옛 지도를 들고 서울을 걷다"라는 책을 소개한 적이 있습니다.

덧붙이자면, 저자, 출판사, 서점들이 밝히지 않는 내용이 있습니다. 2015년에 출판된 골목길 근대사 라는 책이 있습니다. 이 책의 지은이인 "최석호" 외에도 두 명의 공저자가 같은 출판사에서 펴냈는데, 정동, 서촌, 동촌에 대한 내용이 이 책과 겹칩니다. 자세히 비교해보면, 이 책을 "골목길 역사산책" 이라는 두 권의 책으로 확장한 증보판입니다. 나머지 두 저자가 사라진 것으로 보아, 아마도 "최석호" 씨가 주저자였던 것이 아닐까요? 혹 아니었다 하더라도 증보한 내용(가령 각 장에 상당량의 내용이 추가되었고, 부암동과 북촌은 새로 더해진 장입니다)은 상당합니다. 두 권으로 나눴다고 했는데, 이 책은 "서울편" 외에도 "개항도시편" 이 더 있습니다. "개항도시편" 도 다음에 소개할 기회가 있지 않을까요?

]]>
Mon, 26 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/19/goldfinch.html http://www.flowdas.com/2018/11/19/goldfinch.html <![CDATA[황금방울새]]> 황금방울새

십 년에 한 번씩 세상에 나와 문학상을 쓸어가시는 분이 있다. 도나 타트. 그녀의 세 번째 소설이다.

소년 시오는 미술관에서 폭탄 테러로 엄마를 잃고, 자신은 큰 상처 없이, 얼떨결에 전시되어 있던 카렐 파브리티우스의 <황금방울새>라는 작은 그림을 들고나오게 된다. 이후로 상실, 집착, 선택, 유약함의 파노라마가 펼쳐진다. 일단 무지하게 재미있으면서도, 문장, 플롯 어느 하나 부족한 부분이 없다. 디킨스 적이라는 평들이 있는데 올리버 트위스트나, 데이비드 코퍼필드처럼 성장 소설이라는 점, 상당히 많은 등장인물들이 우연으로 얽혀들어 가는 것, 중심 플롯 주변의 잔가지가 무성하다는 점이 비슷하다. 그리고 작품이 무척 길다.

<황금방울새>라는 그림은 네덜란드 화가 카렐 파브리티우스의 1654년 작품인데, 같은 해 파브리티우스는 화약 공장 폭발 사고로 사망한다. 묘한 겹침이다. 이 그림의 크기가 A4 용지보다 조금 큰 정도라는 것을 기억해두면 좋다.

출판사의 광고를 보면 "완독률 98.5%의 압도적 1위"라는 구절이 있다. 완독률 98.5%? 가능한 소린가? 찾아보니 호킹 지수라는 것인데 "아마존 킨들을 통한 완독률"이라고 출판사는 소개하고 있다. 마치 1,000명이 시작하면 15명 빼고 모두 끝까지 읽는다는 뜻으로 들리는데, 좀 믿기 어려운 소리다. 다른 식으로 해석할 수도 있겠다. 전부 1,068쪽의 책을 평균 1,052쪽까지 읽는다? 이 역시 믿기 어려운 것은 매 한가지다. 호킹 지수 98.5%는 완독률과는 아무 상관 없는 숫자다. 아마 책의 끝부분에서 깊은 인상을 받은 독자들이 많다는 뜻이리라.

]]>
Mon, 19 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/16/little-drummer-girl.html http://www.flowdas.com/2018/11/16/little-drummer-girl.html <![CDATA[리틀 드러머 걸]]> 리틀 드러머 걸
리틀 드러머 걸 - 8점
존 르 카레 지음, 조영학 옮김/알에이치코리아(RHK)

박찬욱 감독의 연출로 만들어지는 동명 드라마의 원작 소설이라, 요즘 유명세를 타고 있다. 이 책을 집어든 이유도 다르지 않다. 아이고 더 미루면 안되겠구나. <나이트 매니저> 처럼 일단 드라마를 먼저 보고나면, 책을 읽을 기회는 없어진다. 책장 가득 쌓여있는 다른 책을 미루고 볼 이유가 있을까?

스파이물의 극 사실 주의 작가 <존 르 카레>의 작품은 이 블로그에 5번째 소개된다. 작품 수가 스무편이 넘으니 아직도 많이 남았다. 분량도 넉넉하고, 농도도 높아서 읽고 나면 포만감이 좋다. 작전을 준비하는 1부만 390쪽이다.

이스라엘 정보기관이 팔레스타인 테러 조직을 잡기 위해 여배우를 포섭하는 내용. "테러리스트 잡는 정의의 사도" 가 등장하는 것은 아닐지 걱정하지 않아도 된다. 대신 나무 등걸의 주름하나, 붙어있는 벌레 하나까지 모두 그려낸다. 그래서 극 사실 주의고, 그래서 추악함의 선명한 이미지를 얻을 수 있다.

]]>
Fri, 16 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/14/singleton.html http://www.flowdas.com/2018/11/14/singleton.html <![CDATA[싱글톤]]> 싱글톤

지난 포스트에서 가상 환경 친화적 앱이 어떤 특성을 가져야 하는지 설명했다. 그 글에서 마지막에 소개한 Application Singleton을 이제 구현해보려고 한다.

싱글톤을 만드는 방법부터 시작하자.

Read more...

]]>
Wed, 14 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/12/history-begins-at-sumer.html http://www.flowdas.com/2018/11/12/history-begins-at-sumer.html <![CDATA[역사는 수메르에서 시작되었다]]> 역사는 수메르에서 시작되었다
역사는 수메르에서 시작되었다 - 8점
새뮤얼 노아 크레이머 지음, 박성식 옮김/가람기획

기원전 2333년. 단군이 고조선을 건국했다고 믿고 있는 해다. 이 당시의 사람들은 어떤 생각을 하면서 살았을지 궁금했다. 비슷했겠지? 고작 4천 년 동안 사람이라는 동물이 뭐 그리 많이 달라졌을까? 동물로서의 사람은 그대로일지 몰라도 문화는 다를 수도 있지 않을까? 그 시절에 남겨놓은 기록이 없으니 궁금해도 참고 살 수밖에요.

하지만 비슷한 시기에 지금의 이라크 남부 지역에서는 수메르인들이 쐐기문자로 점토판에 기록을 남기고 있었습니다. 수메르인들이 이곳에 살기 시작한 지는 훨씬 더 오래되었지만, 대략 기원전 3,000년쯤부터 상형문자를 쓰기 시작했고, 기원전 2,500~2,000년쯤에는 표음문자 체계로 넘어옵니다. 일단 표음문자가 되면 해독이 비교적 쉬워집니다. 그래서 고조선 사람들과 비슷한 시기에 살고 있던 수메르인들의 생각을 엿볼 수 있게 됩니다. 평생 수메르에 매달린 학자가 이 점토들에서 발견된 생각들을 39개의 주제로 나누어 소개하고 있습니다. 잘 알려진 길가메시 이야기도 있지만, 제가 제일 좋아하는 부분은 처음 세 가지입니다. <학교>, <촌지>, <청소년 문제>입니다. 그 당시에도 "요즘 젊은것들은...", "선생님 저희 아이 좀 잘 부탁합니다" 가 있었다는 내용인데, 듣기만 해도 웃음이 나옵니다.

소위 세계 4대 문명 중 메소포타미아 문명을 가장 오래된 것으로 보고 있고, 이 책이 사방에서 <최초>라는 단어를 사용하는 것은 그 때문입니다. 하지만 모르는 일이지요, 아마 더 앞선 문명들의 증거는 또 등장할 겁니다. 하지만 그 문명들이 이처럼 상세한 기록을 남겨두었을지는 의문입니다. 그러니 기록으로만 따지면 계속 최초를 유지할 수 있을지도 모르겠습니다.

이 책이 처음 번역되어 출간된 것은 2000년이고, 제가 읽은 것도 그 근방일 겁니다. 원서(History Begins at Sumer: Thirty-Nine Firsts in Recorded History)는 더 오래되었는데, 초판이 나온 것이 1956년, 이 번역본이 원전으로 삼고 있는 3판이 나온 것이 1981년입니다. 그런데 얼마 전 도서관에 가니 새로 들어온 책 전시대에 놓여 있더군요. 서지 정보를 보니 올해 개정판이 나왔다네요. 가진 책과 대조해보았습니다. 그런데 도대체 뭘 개정했다는 건가? 내용에서는 차이점을 찾지 못했습니다. 과거에는 "역사 명저 시리즈" 의 1권으로 나왔으나, 이번 책은 그런 시리즈에 속하지는 않았습니다. ISBN이 바뀌었고, 표지가 좀 달라졌고, 가격이 20% 올랐습니다.

]]>
Mon, 12 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/09/nightflyers.html http://www.flowdas.com/2018/11/09/nightflyers.html <![CDATA[나이트 플라이어]]> 나이트 플라이어
나이트플라이어 (일러스트 에디션) - 6점
조지 R. R. 마틴 지음, 김상훈 옮김/은행나무

가늠도 되지 않는 먼 미래를 배경으로 하는 판타지 호러. 곁들여진 컬러 삽화로 그래픽 노블의 느낌을 가미한 중편. 재킷 주머니에 넣고 다니며 하루나 이틀만에 끝내기에 적당한 판형과 분량.

<조지 R. R. 마틴> 이라는 이름 때문에 집어든 책이지만, 1980년에 처음 나온 책이 지금 번역되어 나온 이유는, 아마도 Syfy 에서 드라마로 만들기 때문이 아닐까? 전에 만들어진 영화는 망했다는 것 같은데, <익스팬스> 만큼만 만들어주면 볼만 할 수도.

이 작품의 중심 키워드는 <호러>인데, <샤이닝>과 비교하는 서평이 붙어있기도 하지만, 그 정도에는 미치지 못한다. 중편이라 캐릭터를 깊이 파고들지도 못한다. 초능력이 등장하는 작품에 SF 라는 단어를 붙이는 것은 늘 불편하다. 그냥 판타지라고 하면 격이 떨어지나?

]]>
Fri, 09 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/06/venv-friendly-app.html http://www.flowdas.com/2018/11/06/venv-friendly-app.html <![CDATA[가상 환경 친화적 앱]]> 가상 환경 친화적 앱

Rule 0 - 응용 프로그램은 가상 환경에서 실행된다

좀 오래 묵은 글이지만 파이썬의 가상 환경의 장점에 대해서는 이미 소개한바있다.

그래서 일단 가상 환경을 쓰기로했다고 가정해보자. 그러면 거꾸로 응용 프로그램을 만들 때, 이 가상 환경에 좀 더 친화적이고, 가상 환경이 주는 혜택을 좀 더 끌어낼 수 있도록 만드는 방법이 있을까?

이 질문에 답하는 것이 이 글의 목적이다.

Read more...

]]>
Tue, 06 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/11/04/david-copperfield.html http://www.flowdas.com/2018/11/04/david-copperfield.html <![CDATA[데이비드 코퍼필드]]> 데이비드 코퍼필드

디킨스 번역판들을 연대순으로 훑고 있다. <올리버 트위스트> 와 <오래된 골동품 상점> 를 거쳐 이제 막 <데이비드 코퍼필드> 를 마쳤다. 원래 한 권짜리 동서문화사 판을 사뒀는데, 결국 읽은 것은 도서관에서 빌린 비꽃에서 나온 세권짜리다.

디킨스 작품과 코드가 맞는 편이라 재미있게 보기는 했지만, 그래도 좀 지친다. 자전적 소설이라고 알려진만큼, 디킨스 자신의 인생 행보와 묘하게 겹치는 장면이 많다.

지금 생각해보니 두 가지 의문이 남는다. 하나는 작품속에 드러나는 사회가 상당히 계급화되어 있는데, 이 작품만으로는 충분히 감이 잡히지 않는다. 그 당시 영국의 계급 사회에 대해 딴 책을 한 권 찾아읽어야하겠다. 둘째는, 술에 관한 것이다. 작품 초반에 코퍼필드가 런던 공장에서 일할 때, 모은 돈으로 술집에 가서 맥주를 시키는 장면이 나온다. 이 때의 주인공 나이가 8세(11세인가?). 이런식으로 어린 아이들이 술을 찾아다니는 장면은 쥘 베른의 <십오소년 표류기> 에도 등장한다. 난파선에서 탈출한 후에 다시 돌아가 생필품들을 챙겨오는데, 처음 찾아 다니는 것이 브랜디 상자다. 옛날 유럽이 알콜 중독 상태였다는 말이 빈말은 아닌듯.

]]>
Sun, 04 Nov 2018 00:00:00 +0900
http://www.flowdas.com/2018/08/15/inspecting-traceback.html http://www.flowdas.com/2018/08/15/inspecting-traceback.html <![CDATA[트레이스백 들여다보기]]> 트레이스백 들여다보기

파이썬은 처리되지 않은 예외를 만날 때 트레이스백을 인쇄합니다. 문제를 파악하는데 결정적인 정보가 포함된 경우가 많습니다. 하지만 예외가 발생했을 때 제공되는 트레이스백 객체에는 이렇게 인쇄되는 내용보다 더 많은 정보가 포함되어 있습니다.

트레이스백 객체를 들여다보는 방법을 설명하려고 합니다.

Read more...

]]>
Wed, 15 Aug 2018 00:00:00 +0900
http://www.flowdas.com/2018/06/05/dataclass.html http://www.flowdas.com/2018/06/05/dataclass.html <![CDATA[데이터 클래스]]> 데이터 클래스

파이썬 3.7 의 안정판 출시를 앞두고 있는 시점이라 한글 도큐멘테이션을 그에 맞추어 업데이트하느라 꽤 시간과 노력을 들이고 있습니다. 어떤 변화가 있는지는 파이썬 3.7 의 새로운 기능은? 에 정리되어 있습니다.

모든 변경이 중요하겠지만, 그중 눈에 띄는 것은 새로 추가된 dataclasses 모듈입니다. 쓰기도 쉽고 그 용도도 광범위합니다. 3.6 버전을 위한 백포트도 제공되는데 이렇게 설치하면 됩니다:

pip install dataclasses

아쉽지만, 변수 어노테이션을 필요로 하는 모듈이기 때문에, 파이썬 3.5 나 그 이전 버전에서는 지원할 방법이 없습니다.

자 이제 어떤 녀석인지 조금 더 들여다봅시다.

Read more...

]]>
Tue, 05 Jun 2018 00:00:00 +0900
http://www.flowdas.com/2018/04/29/aplr.html http://www.flowdas.com/2018/04/29/aplr.html <![CDATA[The Annotated Python Language Reference #3]]> The Annotated Python Language Reference #3

2. 구문 분석

2.1. 줄 구조(Line structure)

2.1.7. 빈 줄

스페이스, 탭, 폼 피드(formfeed) 와 주석만으로 구성된 논리적인 줄은 무시된다. (즉 NEWLINE 토큰이 만들어지지 않는다.) 대화형으로 문장이 입력되는 도중에는 빈 줄의 처리가 REPL 구현에 따라 달라질 수 있다. 표준 대화형 인터프리터에서는, 완전히 빈 줄(즉 공백이나 주석조차 없는 것)은 다중 행 문장을 종료시킨다.

APLR

스페이스(space)는 ' ' 문자를 가리킬 때 사용합니다. 반면 공백(whitespace)은 스페이스, 탭, 폼피드 문자들을 통칭할 때 사용합니다.

APLR

REPL 은 Read-Eval-Print Loop 의 약자입니다. 문장을 입력받고 실행한 후 결과를 출력하는 것을 반복하는 대화형 환경의 인터페이스를 뜻합니다.

Read more...

]]>
Sun, 29 Apr 2018 00:00:00 +0900
http://www.flowdas.com/2018/04/29/korean-language-switcher.html http://www.flowdas.com/2018/04/29/korean-language-switcher.html <![CDATA[파이썬 한국어 선택기]]> 파이썬 한국어 선택기

http://docs.python.org 사이트에서는 언어 선택 옵션으로 English, French, Japanese 를 제공해왔습니다. 오늘 부터 네번째 언어로 Korean 이 추가되었습니다. 지금 당장은 3.7 버전 이상에서만 등장하는데, 일단 3.7 버전에서 Korean 을 선택한 후에, 3.6 버전으로 바꾸면 3.6 버전의 한글판이 나옵니다. 곧 3.6 버전에서도 자연스럽게 선택할 수 있으리라 봅니다.

좋은 소식이 하나 더 있습니다.

파이썬 한글 번역팀에 식구가 늘었습니다. 그래서 파이썬 한국어 번역 에 간단한 공동 번역 가이드라인도 추가했습니다. 차츰 살을 더 붙여나가겠습니다.

]]>
Sun, 29 Apr 2018 00:00:00 +0900
http://www.flowdas.com/2018/04/15/aplr.html http://www.flowdas.com/2018/04/15/aplr.html <![CDATA[The Annotated Python Language Reference #2]]> The Annotated Python Language Reference #2

2. 구문 분석

파이썬 프로그램은 파서(parser) 에 의해 읽힌다. 파서의 입력은 구문 분석기(lexical analyzer) 가 만들어내는 토큰(token) 들의 스트림이다. 이 장에서는 구문 분석기가 어떻게 파일을 토큰들로 분해하는지 설명한다.

APLR

구문 분석기가 만들어내는 토큰들의 목록은 token 모듈에서 제공됩니다. tokenize 모듈로 파이썬 소스 파일의 구문 분석을 수행할 수도 있습니다.

파이썬은 프로그램 텍스트를 유니코드 코드값으로 읽는다; 소스 파일의 인코딩은 인코딩 선언을 통해 지정될 수 있고, 기본값은 UTF-8이다. 자세한 내용은 PEP 3120 에 나온다. 소스 파일을 디코딩할 수 없을 때는 SyntaxError 가 발생한다.

Read more...

]]>
Sun, 15 Apr 2018 00:00:00 +0900
http://www.flowdas.com/2018/04/11/introduction-machine-learning-python.html http://www.flowdas.com/2018/04/11/introduction-machine-learning-python.html <![CDATA[scikit-learn 자습서]]> scikit-learn 자습서

역자덕에 출판된 책에 추천사를 써봤다. 여기 다시 옮길 필요는 없겠다. 늦었지만 기록을 위해 남겨둔다.

어차피 책 한 권 읽고 기계 학습을 마스터할 수는 없으니, 가리지 말고 두루 읽어야 한다. 꽤 정성들인 번역이니 처음 시작하기에 좋은 선택이다.

]]>
Wed, 11 Apr 2018 00:00:00 +0900
http://www.flowdas.com/2018/04/08/aplr.html http://www.flowdas.com/2018/04/08/aplr.html <![CDATA[The Annotated Python Language Reference]]> The Annotated Python Language Reference

이 참조 설명서는 언어의 문법과 "중심 개념들(core semantics)"을 설명한다. 딱딱하더라도 정확하고 완전해지려고 한다. 중심에서 벗어난 내장형, 내장 함수, 모듈들의 개념들은 파이썬 표준 라이브러리 에 기술되어 있다. 언어에 대한 비형식적인 소개는 파이썬 자습서 에서 제공된다. C와 C++ 프로그래머를 위해서는 두 개의 설명서가 따로 제공된다: 파이썬 인터프리터 확장 및 내장 는 파이썬 확장 모듈을 작성하는 방법에 대한 큰 그림을 설명하고, 파이썬/C API 레퍼런스 설명서 은 C/C++ 프로그래머에게 제공되는 인터페이스들을 상세하게 기술한다.

APLR

실제로 언어 레퍼런스는 딱딱할 뿐만 아니라 함축적이기 때문에 읽기가 매우 어렵습니다. 이 시리즈는 언어 레퍼런스에 상세한 주석을 붙여, 모호한 부분들에 대한 해석과, 관련 정보들을 제공해서 좀 더 이해하기 쉬운 버전으로 만듭니다. 이 과정에서 언어 레퍼런스의 정확성을 손상시키고 싶지는 않습니다. 때문에 언어 레퍼런스의 구조를 그대로 따르면서, 이런 식으로 주석을 제공합니다.

Read more...

]]>
Sun, 08 Apr 2018 00:00:00 +0900
http://www.flowdas.com/2018/04/05/wall-street-journal-guide-information-graphics.html http://www.flowdas.com/2018/04/05/wall-street-journal-guide-information-graphics.html <![CDATA[인포그래픽 상식 모음]]> 인포그래픽 상식 모음
월스트리트저널 인포그래픽 가이드 - 9점
도나 M. 웡 지음, 이현경 옮김, 강규영 감수/인사이트

이 책이 처음 나왔을 때 한 권 사서 모두 읽어보라고 하고는, 정작 본인은 이제야 끝냈다. 고작 150쪽 정도되는 책이니 시간이 없어서라는 핑계도 대지 못하겠다.

문서나 웹 페이지로 그려놓은 도표들을 보면서 디테일한 부분들에서 불편함을 느끼는 경우가 많다. 소수점으로 정렬되지 않은 표를 볼 때, 명도 대비가 너무 약해서 가독성이 떨어지는 차트를 볼 때. 알록달록 하지만 뭘 보라는 것인지 모르겠을 때, 웹 디자인 시안의 품질이 도표가 들어간 페이지가 나올 때마다 곤두박질 칠 때… 그럴 때마다 이 책을 슬쩍 건내주고 싶다. 본인이 직접 해도 똑 같은 실수들을 저지를 것이 분명하기 때문에 손 닿는 곳에 꼽아둬야겠다. 최소한 이 책의 지침을 따르면 기본을 의심받는 일은 없을 것이기에.

실용적인 책이다. 저자의 다른 책이 있나 뒤져보았지만 찾지 못했다.

]]>
Thu, 05 Apr 2018 00:00:00 +0900
http://www.flowdas.com/2018/03/17/augmented-assignment.html http://www.flowdas.com/2018/03/17/augmented-assignment.html <![CDATA[증분 대입문]]> 증분 대입문

그동안 프로젝트 하나를 진행하느라 바빠서 포스팅할 시간이 없었습니다. 제가 Functional Data Engineering Platform 이라고 부르는 것인데, 기계 학습을 위한 실용적인 실행 환경을 제공하는 제품입니다. 얼마전에 상용 환경에 투입되었고, 그럭 저럭 기대한 성능을 보여주고 있기 때문에, 이제 다른 곳에도 신경쓸 여유가 좀 생겼습니다. 이 제품에 대해서는 따로 소개할 기회가 있을겁니다. 오늘은 좀 더 가벼운 이야기나 나눠봅시다.

아무 생각 없이 쓰던 코드가 어느날 갑자기 이상하게 보일 때가 있습니다. 얼마전에 그런 경험을 했는데, 다음과 같은 코드입니다.

>>> l = []
>>> l += 'hello'
>>> l
['h', 'e', 'l', 'l', 'o']

Read more...

]]>
Sat, 17 Mar 2018 00:00:00 +0900
http://www.flowdas.com/2018/01/23/dict-is-ordered.html http://www.flowdas.com/2018/01/23/dict-is-ordered.html <![CDATA[딕셔너리는 순서 있는 매핑]]> 딕셔너리는 순서 있는 매핑

파이썬 3.7 부터 표준 딕셔너리 dict 가 삽입 순서를 보존합니다. 다음과 같은 코드가 항상 같은 결과를 준다는 뜻입니다.

>>> d = {}
>>> d['b'] = None
>>> d['a'] = None
>>> list(d)
['b', 'a']

Read more...

]]>
Tue, 23 Jan 2018 00:00:00 +0900
http://www.flowdas.com/2018/01/12/python-docs-ko.html http://www.flowdas.com/2018/01/12/python-docs-ko.html <![CDATA[python-docs-ko]]> python-docs-ko

파이썬 도큐멘테이션의 한국어 번역을 위한 PSF 공식 git 저장소가 개설되었습니다.

그 동안의 작업들도 3.6 브랜치에 모두 푸시했습니다.

이 저장소는 docs.python.org 사이트의 빌드 스크립트가 읽어오는 장소입니다. PEP 545 가 정하고 있는 방식으로 이름을 붙입니다. 옆을 둘러보시면 python-docs-ja 나 python-docs-fr 같은 이름의 저장소들도 보실 수 있습니다.

]]>
Fri, 12 Jan 2018 00:00:00 +0900
http://www.flowdas.com/2014/01/05/generators-in-python.html http://www.flowdas.com/2014/01/05/generators-in-python.html <![CDATA[파이썬 제너레이터]]> 파이썬 제너레이터

지난 글에서는, 생산자-소비자 패턴(Producer-Consumer Pattern)의 소비자 쪽의 코드를, 함축적이면서도 자연스럽게 기술할 수 있는 방법을 제공하는 이터레이터를 살펴봤습니다. 오늘은 생산자 쪽을 들여다봅니다.

Read more...

]]>
Sun, 05 Jan 2014 00:00:00 +0900
http://www.flowdas.com/2013/12/08/iterators-in-python.html http://www.flowdas.com/2013/12/08/iterators-in-python.html <![CDATA[파이썬 이터레이터]]> 파이썬 이터레이터

대부분의 파이썬 튜토리얼들과는 달리 파이썬 3.3을 중심으로 기술하고 파이썬 2를 포함한 하위 버전에서 차이를 보이면 따로 설명합니다.

Read more...

]]>
Sun, 08 Dec 2013 00:00:00 +0900
http://www.flowdas.com/2013/11/24/asyncio-python-tulip.html http://www.flowdas.com/2013/11/24/asyncio-python-tulip.html <![CDATA[asyncio - Python Tulip]]> asyncio - Python Tulip

주로 성능을 이유로 파이썬에서 비동기 IO가 인기를 얻고 있습니다. GIL (Global Interpreter Lock) 때문에 파이썬에서는 쓰레드를 통한 성능 향상을 꾀하기 어렵다는 점도 이런 경향을 더욱 가속화합니다. 이 영역에서 널리 알려진 이름들에는 Twisted, gevent, Tornado 등이 있습니다. 가장 오랜 역사를 자랑하는 Twisted 는 HTTP 뿐만 아니라 파이썬의 비동기 네트워크 엔진을 추구하고 있고, gevent 는 코루틴(Coroutine)이 콜백(callback)의 대안이 될 수 있음을 보여줬고, Tornado 는 스스로 웹 서버를 표방하고 있지만 Generator 기반의 코루틴 을 사용하는 프레임워크도 포함하고 있습니다. 잘 돌아가고 있는 듯 보이지만 이 들은 서로 호환이 되지 않는다는 문제가 있습니다. Gevent 로 작성한 채팅 서버를 Twisted로 이식하는 것은 처음부터 새로 작성한다고 생각하는 편이 좋습니다. 다른 조합도 상황은 크게 달라지지 않습니다. 한 프레임워크로 작성한 코드를 다른 프레임워크로 옮기는 것이 어렵다는 것이 그리 놀랄만한 일은 아닙니다. 하지만 이 프레임워크들이 공존할 수 있는 방법도 없는 걸까요? 최근 희망이 보이기 시작했습니다.

Read more...

]]>
Sun, 24 Nov 2013 00:00:00 +0900
http://www.flowdas.com/2013/11/17/printing-numbers.html http://www.flowdas.com/2013/11/17/printing-numbers.html <![CDATA[숫자 인쇄하기]]> 숫자 인쇄하기

아들 녀석에게 프로그래밍을 가르쳐준답시고 “헬로! 컴퓨터프로그래밍” 이라는 책을 들여다 본적이 있습니다. 저자가 어린 아들에게 파이썬 프로그래밍을 설명한다는 형식을 취하고 있는 꽤 재미있는 책입니다. 책의 두 저자 중 한 명은 아들인데 초등학생이라고 합니다. 전체적으로 초등학생 수준에 맞추어져 있을 거라고 기대할 수 있지만, 그 보다는 살짝살짝 높은 기준을 넘나드는 부분들이 있습니다.

이 책의 62쪽을 보면 38.8 이라는 숫자에 관한 내용이 나옵니다.

Read more...

]]>
Sun, 17 Nov 2013 00:00:00 +0900
http://www.flowdas.com/2013/11/10/thread-safety-in-python.html http://www.flowdas.com/2013/11/10/thread-safety-in-python.html <![CDATA[Thread-Safety in Python]]> Thread-Safety in Python

얼마 전에 한 파이썬 커뮤니티에서 이런 질문이 올라왔습니다.

Python에서 사전에 하는 입출력 연산이 원자적 연산인가요?
동기화된 사전 쓰레드가 하나 필요한데 입출력 연산에도 락을 걸어야 하나 해서요

문맥상으로 볼 때, 입력 연산은 딕셔너리에서 Key로 Value를 조회하는 것을 뜻하고, 출력이란 Key-Value Pair 를 등록하는 것을 뜻하는 것으로 보입니다. 결국 다음과 같은 문장들의 thread-safety 에 관해 묻고 있는 것입니다.

Read more...

]]>
Sun, 10 Nov 2013 00:00:00 +0900
http://www.flowdas.com/2013/10/20/nose.html http://www.flowdas.com/2013/10/20/nose.html <![CDATA[파이썬 프로젝트 시작하기 - Nose]]> 파이썬 프로젝트 시작하기 - Nose

이 글은 프로젝트의 틀을 구성하는 방법에 관한 시리즈의 네 번째 글입니다. 앞선 포스트들의 목록은 다음과 같습니다.

오늘 다룰 내용은 Nose 를 사용한 테스트입니다.

Read more...

]]>
Sun, 20 Oct 2013 00:00:00 +0900
http://www.flowdas.com/2013/10/13/setuptools.html http://www.flowdas.com/2013/10/13/setuptools.html <![CDATA[파이썬 프로젝트 시작하기 - Setuptools]]> 파이썬 프로젝트 시작하기 - Setuptools

이 글은 Setuptools 를 사용하여 프로젝트의 틀을 구성하는 방법에 관한 것으로, Virtualenv 와 Distutils 에 관한 내용을 담고 있는 다음 포스트에 이어지는 세 번째 글입니다.

Read more...

]]>
Sun, 13 Oct 2013 00:00:00 +0900
http://www.flowdas.com/2013/10/06/distutils.html http://www.flowdas.com/2013/10/06/distutils.html <![CDATA[파이썬 프로젝트 시작하기 - Distutils]]> 파이썬 프로젝트 시작하기 - Distutils

이 글은 다음 포스트에 이어지는 글입니다.

Read more...

]]>
Sun, 06 Oct 2013 00:00:00 +0900
http://www.flowdas.com/2013/09/29/geogebra-part-3.html http://www.flowdas.com/2013/09/29/geogebra-part-3.html <![CDATA[지오지브라와 파이썬의 만남 - Part 3]]> 지오지브라와 파이썬의 만남 - Part 3

파이썬 스크립트가 어떤 식으로 동작하는지 확인했으니, 이제는 다듬어봅시다.

Locus 와 Trace

전에는 Locus 로 점 Q 의 자취를 그렸습니다. 작은 원이 큰 원의 둘레를 구르면서, 그 위의 점 QLocus 위를 지나가는 모습을 보여줍니다. 하지만 이 자취가 미리 그려져 있기 때문에 시각적인 효과가 그리 만족스럽지는 못합니다. 자취가 Q 가 지나온 자리까지만 그려진다면 더 좋겠습니다. 한번 바꿔봅시다.

지오지브라에서 이런 목적으로 Trace 라는 기능을 제공합니다만, 이 역시 시각적으로는 별로입니다. 점 Q 의 Trace 를 켜면, 듬성듬성 Q 가 지나온 지점들이 점으로 남을 뿐이고, 이마저 화면을 확대, 축소하면 지워져 버리고 맙니다. Trace 는 우리가 원하는 게 아닙니다.

Read more...

]]>
Sun, 29 Sep 2013 00:00:00 +0900
http://www.flowdas.com/2013/09/22/virtualenv.html http://www.flowdas.com/2013/09/22/virtualenv.html <![CDATA[파이썬 프로젝트 시작하기 - Virtualenv]]> 파이썬 프로젝트 시작하기 - Virtualenv

주석

파이썬 3 환경에서 가상 환경을 사용하는 방법은 가상 환경 친화적 앱 에서 논의합니다.

Virtualenv 는 시스템에 설치된 파이썬에 영향을 주지 않고 파이썬의 가상 환경을 유지할 수 있도록 합니다. 가상 환경에서는 파이썬 실행파일, 라이브러리 설치 장소 등이 따로 제공됩니다. 이 곳에 패키지를 설치해도 시스템의 파이썬이나 다른 가상 환경에는 영향을 주지 않도록 설계되어 있습니다.

이 글에서는 Virtualenv 를 사용해서 프로젝트 별 가상 환경을 구성하고, 편집기나 IDE 등이 가상 환경을 사용하도록 설정하는 방법을 살펴봅니다. 이제 막 파이썬의 기초를 마치신 분들도, 일찌감치 Virtualenv 를 활용하는 법을 익혀두시면 좋습니다.

이 글에서는 virtualenvwrapper 와 같이 virtualenv 를 확장하는 패키지는 다루지 않습니다. 특별한 이유는 없고, 단지 필요성을 느끼지 못해 사용하지 않고 있기 때문입니다. 하지만 Setuptools 는 저희의 프로젝트 관리에서 중요한 역할을 담당합니다. Virtualenv 도 Setuptools 와 연계될 때 더욱 유용해집니다. Setuptools 의 일부는 다루지만, 본격적인 Setuptools 의 활용은 별도의 글에서 다루겠습니다.

Read more...

]]>
Sun, 22 Sep 2013 00:00:00 +0900
http://www.flowdas.com/2013/09/15/geogebra-part-2.html http://www.flowdas.com/2013/09/15/geogebra-part-2.html <![CDATA[지오지브라와 파이썬의 만남 - Part 2]]> 지오지브라와 파이썬의 만남 - Part 2

지오지브라5 베타버전을 기준으로 파이썬 스크립팅에 대해 알아보겠습니다.

Read more...

]]>
Sun, 15 Sep 2013 00:00:00 +0900
http://www.flowdas.com/2013/09/08/geogebra-part-1.html http://www.flowdas.com/2013/09/08/geogebra-part-1.html <![CDATA[지오지브라와 파이썬의 만남 - Part 1]]> 지오지브라와 파이썬의 만남 - Part 1

지오지브라(GeoGebra)는 ’움직이는 수학’을 표방하는 무료 소프트웨어입니다. 가령 점을 만들고, 그 점을 중심으로 하는 원을 작도할 수 있습니다. 점과 원과의 관계가 계속 유지되기 때문에 점을 움직이면 원도 따라 움직입니다. 수학에 약간의 호감이라도 갖고 계신 분들께서는 금방 재미를 느끼실 수 있을 겁니다. 기하학만을 예로 들었지만 이름에서 추측해볼 수 있듯이 대수학도 포함하고 있습니다. GeoGebra 는 기하(Geometry)와 대수(Algebra)를 합성해서 만든 이름입니다. 꽤 오랜 시간 많은 사람들이 헌신적으로 노력해온 덕에 유럽과 미국의 교육 현장에서 널리 사용되고 있고, 최근에는 국내에서도 출판, 강의, 연수 등 관련 활동도 활발해지고 있습니다.

Read more...

]]>
Sun, 08 Sep 2013 00:00:00 +0900
http://www.flowdas.com/2012/09/23/division.html http://www.flowdas.com/2012/09/23/division.html <![CDATA[나눗셈 이야기]]> 나눗셈 이야기

파이썬 강의를 할 기회가 있었습니다. 아무런 배경 없이 기초부터 접근했는데, 정리하다 보니 파이썬의 나눗셈이 초보자에게는 그리 만만하지 않다는 것을 발견하게 되었습니다. 그래서 짧은 글을 쓰게 되었는데, 이 곳에도 올려둡니다. 기초적인 내용이라 너무 고급스러운 글을 기대하시는 분들에게는 적당하지 않습니다.

Read more...

]]>
Sun, 23 Sep 2012 00:00:00 +0900