한 리스트를 빙글 빙글 돌면서 빈 자리 찾기

요즘 블로그에 통 글을 안 써와서 거의 폐가와 같이 되어 가고 있었는데요.. ^_^
다름이 아니라, 제가 "이러면 좋겠다!"하고 생각해왔던 바로 그런 성격의 너무 좋은 분을
만나게 되어서 다른 곳에는 신경 쓸 시간이 없었네요. 이히히;

그래도, 1달에 1개 정도는 유지해 두고자;; 쌓아뒀던 코드 단편 하나를 올려 봅니다. 헤헤.

종종 아주 긴 리스트에서 자원관리를 하면서, 자원을 순차탐색으로 할당해야하는 경우가 있습니다.
주로 자원이 직접 사람이 쓰는 것이거나 해서, 순서대로 가는 것이 인지적으로나 쓰고 있는
자리가 모아지는 점에서 유리한 경우에 그런데요. 도서관 같은 곳에서 좌석을 배정한다거나,
DHCP서버에서 IP 주소를 나눠준다거나, 순차적으로 나눠주는 큐 관리 시스템에서 작업을
나눠줄 빈 큐를 찾는다거나 생각보다 제법 많습니다.

이런 경우에, 10번째부터 순차검색하기 시작했으면 끝까지 돈 다음에 처음부터 9번째까지 돌아야
하는 것이 중심원리(?)인데요. 구현하는 방법은 물론 클래스 인스턴스가 최근 찾은 인덱스를
변수로 들고 있다가 그 인덱스부터 끝까지 한 번 돌리고, 처음부터 시작한 인덱스까지 다시
돌리는 방법이 가장 평범하겠습니다. 완전 순서대로 배정할 필요는 없고 대충만 맞으면 되는
경우다 싶으면, FIFO 큐 같은 것도 괜찮은데, 이걸 쓰면 시간이 지날 수록 여기저기 듬성 듬성
나와서 원래 목적과는 달라질 수도 있고요~

그래서 range 2번 돌리는 폼 안 나는(?) 코드 대신 보통 끊임없는 이터레이터에서 개수 제한하는
트릭으로 많이 쓰이는 zip을 섞어서 이렇게 하면 비교적 폼 나게(;;) 연속 검색이 가능한
순차검색이 되겠습니다~

실행하면 이렇게 나옵니다.

못 찾으면 전체를 한 번 돌고, 찾으면 거기서 중단하면 그 다음에 시작하면 거기서부터 시작합니다~

여기서 종종 마지막으로 돌았던 놈에서부터 다음에 찾을 때 시작하고 싶은 경우가 있는데요. 비슷한 것이 아쉬운 사례로, itertools.takewhile을 쓰면 처음엔 조건이 맞을 때까지 다 가져오는 것은 좋은데, 그 다음 원소를 가지고 오고 싶어서 .next()하면 이미 조건 맞는지 보려고 갖고간 바람에, 조건 안 맞는 것 가져오는 목적으로 그 다음 이터레이터를 쓰지 못하는 것이 엄청 불편합니다.

그래서 전에 찾았던 부분에서 다시 시작하도록 해 보자면~

네~ 좀 지저분하긴 해 졌는데요;; 실행하면 이렇게~

모르는 것을 보면 전혀 못 알아볼지라도 찾아보기 좋아하는 어떤 분(^_^)을 위해 용어에 좀 과도하게 링크를 걸었습니다 ^^;

파이썬 2.6의 상위 호환성 기능

파이썬 역사상 가장 큰 개혁인 3.0이 발표된 지 이제 한 달이 되어 갑니다.
이번 업데이트는 워낙 변한 것이 많아서 파이썬 개발팀 내부에서도 실제 개발에 적용되려면 2년은
걸릴 것으로 보고 있는데요. 그래서 중간 징검다리로 파이썬 2.6이 3.0을 전후로
발표되었습니다. 2.6에는 3.0 대비에 대한 기능이
많이 들어갔는데, 이 부분만 간단하게 맛보기로 소개해 드립니다~

파이썬 3.0 호환 대비 옵션

파이썬 2.6에서는 3.0에 대비하는 개발자의 편의를 위해서 -3 옵션을 지원합니다.
파이썬을 띄울 때 -3 옵션을 주면 3.0 호환성 경고가 뜹니다. 예를 들면 이렇게요~

이렇게 파이썬 3.0에서 없어지면서 대체할 수 있는 것을 쓰면 경고가 뜹니다.
옵션으로 주지 않고 프로그램 안에서 옵션을 넣어준 것 처럼 하려면
sys.py3kwarning 을 True로 설정해 주면 됩니다.
프로그램 안에서는 sys.py3kwarning을 보면
-3이 설정되었는지 알 수 있지만, 파이썬이 뜨고 나서는 바꿀 수 없습니다.

파이썬 3.0 호환 빌트인 함수

파이썬 3.0에서 새로 생기거나 동작이 바뀌는 빌트인 함수를 2.6에서 미리 쓸 수 있습니다.
그냥 3.0을 바로 쓰는 것과 무슨 차이냐 하면, 기존 2.x용으로 개발된 프로그램 안에서도
모듈 하나 안에서만 선택적으로 빌트인 함수를 3.0 것으로 바꿔서 3.0인 것처럼 쓸 수 있는
것이죠. 하나씩 이렇게 3.0용으로 바꾸다보면 돌아가는 상태를 유지한 채로 2.x에서 3.0용으로
부드럽게 넘어갈 수도 있고요~

future_builtins 모듈이 파이썬 3.0 빌트인 함수를 제공합니다.

파이썬 3.0에서 바뀌는 문법 미리 맛보기

파이썬 3.0에서 바뀌는 print나 유니코드 문자열, 바이트 문자열 같은 것들을 모듈 단위로 미리 쓸 수도 있습니다. 마찬가지로 부분 부분 대처를 해서 3.0용으로 부드럽게 넘어갈 수 있겠죠.

유니코드 문자열
print 함수

어때요! 한 번 해보고 싶으시죠!

다음에는 파이썬 3.0 호환성과 직접적인 관련은 없는 2.6의 새로운 기능을 소개해 드리겠습니다~

파이썬의 매력이 self를 쓰는 거라고 생각해요

종종 파이썬에 대한 평을 인터넷에서 한 번씩 검색해 보는데요. 많은 분들이 가장
많이 싫어하는 것은 뭐니뭐니 해도 "들여쓰기 강제"겠죠. 뭐 이거야 취향 문제라
어쩔 수 없는 것이고. 사실 파이썬 사용자들 중에서 "들여쓰기 강제"를 좋아하는 사람이
많기 때문에 파이썬의 원래 목적에도 더 맞다고 생각되고… ^.^;

그에 못지않게 자주 지적되는 것이, 객체 안에서 꼭 self.를 달아 줘야 된다는 것인데요.
저는 self.를 항상 명시적으로 붙이는 거야말로 파이썬의 참 매력이고, self가 없어지면
파이썬이 무너진다고 생각합니다! 특히 자바 프로그래머들이 파이썬의 self에 대해
많이 지적하는데, 자바와 파이썬 모두에서 영향력이 있는 브루스 엑켈도 self를
(메쏘드 선언에서만이라도) 없애보자
했는데, 그에 대한 응답으로 귀도가 불가능한 일이다라고
그 이유를 논리적으로 설명했었습니다.

브루스 엑켈의 제의가 선언에서만 없애자는 것이었기 때문에, 메쏘드 내부의 코드에서
없애면 안 되는 이유에 대해서는 귀도가 설명하지 않았는데요. 브루스 엑켈이 스스로 결론 내린
그 앞 부분의 문제 "self가 왜 있어야 하냐!" 그 이유에 대해서 좀 설명해서
자바 프로그래머 분들이 파이썬을 좀 더 이해할 수 있도록 도와볼까 합니다.

파이썬에서 self가 붙게 된 역사적인 이유는 파이썬의 클래스 내 메쏘드는 기본적으로
외부에 독립되어 있는 함수에 껍데기를 씌운 것이기 때문입니다. 자바는 아예 독립 함수가 없고,
다른 언어에서는 대체로 독립된 함수들과 메쏘드는 다른 취급을 받는데, 파이썬에서는 그냥
함수를 메쏘드로 편입시켜서 쓸 수도 있고, 둘을 비슷한 방법으로 바꿔서 다룰 수 있습니다.
예를 들면 이런 코드가 가능하겠죠.

밖에서 선언된 함수를 클래스 정의할 때 메쏘드로 끌어들인 것이죠. 메타클래스를 쓴다면 더
동적으로 해 버릴 수도 있습니다. 도대체 이런 코드를 뭐에 쓰냐! 하는 의문을 가지실 수도 있는데요.
의외로 이런 기술이 많이 쓰입니다. egg함수를 C로 구현된 확장모듈에서 끌여들일 수도 있고요.
egg만 사용자가 구현할 수 있도록 노출시켜서 외부 모듈에서 불러올 수도 있고요. 심지어
R이나 .NET같은 브릿지에서 다른 언어로 구현된 것을 쓸 수도 있습니다. 메쏘드가 결국
함수기반이라는 것은 생각보다 강력한 개념으로, __로 시작하는 내부 속성을 쓰면 더욱 희한한 것도
제어할 수 있게 되고, 클래스를 안 쓴 코드와 클래스를 쓰는 코드 사이를 넘나들거나 점진적으로 변경할 때 아주 쓸모가 있습니다.

파이썬에서 instance.method(A, B) 는 class.method(instance, A, B) 와 같은 역할을 합니다.
이것은 함수가 메쏘드가 된 얘기 외에도, 다중상속을 받았거나 이름이 중복되는 메쏘드를 부를 때 쓰이기도 하고, 다양하게 상속받은 하위 인스턴스들을 명시적으로 한 메쏘드에게 콕 찝어 줄 때도 쓰이고, 이 규칙 하나가 수많은 모호함을 해결해 줍니다. 그래서 이 일관성이 문법 전반에 계속 흐르고 있습니다.

그렇다면 그냥 함수는 함수로 쓰고 메쏘드는 메쏘드로 쓰고 같은 데서 상속받으면 비슷한 인터페이스가
나올 수 있지 않겠느냐 하는 의문이 있을 수도 있습니다. self의 또 다른 존재 이유로 파이썬을 파이썬으로
만드는 가장 중요한 특징인 "네임스페이스"가 등장합니다.

"네임스페이스"는 파이썬에서 변수를 담아두는 공간으로, 원래는 로컬, 모듈 전체, 빌트인 세 가지 네임스페이스를 찾도록 되어 있다가, 파이썬 2.1부터 상위에 싸여있는 것들도 찾도록 돼 있습니다. 이해를 돕기 위해 예를 들어드리면

이런 파일이 있다면 A는 모듈 전체, 나머지는 로컬에 들어갑니다. 그런데 Y()의 입장에서 C는 로컬인데, B와 D는 자기 로컬은 아니면서 상위 네임스페이스에 속한 변수들이 됩니다. 따라서, 파이썬 2.1부터는 모듈 전체로 가기 전에 B, D가 있는 X영역부터 찾습니다. 파이썬은 변수 선언을 하지 않기 때문에, 변수의 네임스페이스는 대입이 한 번이라도 일어난 최소의 네임스페이스에 영역을 잡는데요. 위에서 C는 Y()안에서 대입이 있었기 때문에 Y()안의 네임스페이스에 잡히고, B, D는 X()에서 대입이 있기 때문에 X()의 네임스페이스에 잡힙니다. 그런데, A는 대입이 모듈에서만 있고, X()에는 없어서 X() 로컬이 아니라 글로벌로 잡힙니다.
이런 네임스페이스를 바꿔주는 키워드가 원래부터 지원되는 global과 파이썬 3.0부터 지원되는 nonlocal이 있습니다. 이건 따로 관심이 있으시면 매뉴얼을 보시면 되겠습니다. +_+

여기서 갑자기 웬 네임스페이스 설명을 self하는 데 하느냐! 하면..

self.을 생략하게되면 로컬 네임스페이스와 인스턴스 네임스페이스가 섞이게 된다는 것입니다. 즉 클래스에서 x = 1하면 이게 로컬로 갈 지, 인스턴스로 갈지 모호해 지는거죠. 자바나 C++은 명시적으로 선언을 하기 때문에 헷갈리지 않지만, 파이썬은 선언을 않기에 명시적으로 쓸 필요가 있죠. 그래서 펄이나 루비에서는 따로 @나 !같은 기호를 도입해서 쓰는데.. 파이썬의 원칙 중 매우 중요한 것으로 "연산자 너무 늘리지 말자"가 있어서 고려 대상은 아닙니다. self.라고 쓰면 파이썬 문법을 모르는 사람도 아 이게 뭐구나! 하고 추측을 할 수 있지만 @같은 걸 붙여놓으면, 문법책을 참조하거나 고난도의 눈치를 보지 않고서는 인스턴스 네임스페이스인지, 클래스 네임스페이스인지, 글로벌 네임스페이스인지 알기가 힘들겠죠.

그럼 또 제기될 수 있는 의문! 대입은 그럼 명시적으로 하고, 쓸 때만 인스턴스와 클래스도 한 번 타 주면 되지 않겠니? 하고 소극적인 부탁을 해 볼 수도 있겠는데요. 읽는 방법, 쓰는 방법이 다른 건 아무래도 파이썬 원칙에는 맞지 않고, 속도도 많이 느려집니다.

모호한 것을 보면, 추측할 수 있을 거라는 유혹은 단호하게 거절한다. (In the face of ambiguity, refuse the temptation to guess.) — 팀 피터스, 파이썬의 선(Zen)

Watch movie online The Transporter Refueled (2015)

xkcd “파이썬” 3.0 수정판

며칠 전에 올린 파이썬 3.0 발표 소식에 까리용님께서 만화 속의 호환성 버그를 발견하셔서
3.0 지원 버전으로 만화를 고쳐봤습니다.

xkcd - Python (fixed for 3)

원본은 xkcd에서 온 것이고, 원라이선스는
CC 원저자표시-비상업적사용 2.5입니다.

혹시 손글씨 잘 쓰시는 분 있으시면 한국어판 번역도 하나 만들면 좋겠네요~
xkcd는 손글씨모양 글꼴을 쓰지 않고 모두 일일이 쓰는 게 매력이라, 역시 이것도 손글씨를
써서 입혀야 할 것 같아서.. 🙂

film Miss You Already 2015

파이썬 3

드디어 예정대로 파이썬 3.0 정식 버전이 나왔습니다.

파이썬 3.0은 그동안 이 블로그에서 꾸준히 소개해 와서 특별히 또 소개하지는 않고요. (2007년 3월 1일, 2007년 8월 31일, 2008년 8월 1일) 자세한 내용은 파이썬 3.0에는 뭐가 새로 나왔나!를 참조하시면 되겠습니다~

릴리스 안내문에서 언급한 간단한 바뀐점 목록을 번역해서 옮겨적어 봅니다.

  • 오래된 언어들의 지저분한 것들을 많이 고침
  • 오랫동안 쓰지 말라고 했던(deprecated) 기능들과, 중복되는 문법들을 없앰
  • 표준 라이브러리를 개선하고 구조를 바로 잡음
  • 문자열과 사전 같은 내장 객체들의 세세한 동작을 더 파이썬스럽게 바꿈
  • 그 외에 수많은 새로운 기능이!

파이썬 3.0 새 소식이 나오면 가장 많이 궁금해 하실 부분이, "지금 파이썬을 배우려면 3.0을 배워야 하냐 2.x를 배워야 하냐"하고, "프로그램이 다 2.x용으로 돼 있는데 3.0으로 어떻게 넘어가냐" 일텐데요.

우선 1번) 파이썬 3.0은 하위호환성을 상당 부분 포기했기 때문에, 당장은 업계에서 2.x를 계속 쓰게 될 것입니다. 파이썬 2.x와 3.0이 겉보기에는 문법 차이가 좀 있는 것처럼 보이지만, 파이썬의 기본 이념은 그대로 가지고 있기 때문에 우선 파이썬 2.x를 배운 다음에 3.0 문법을 나중에 배우는 것은 별 일이 아닙니다. 지금 배운다면 2.x를 배우고 쓰시다가, 좀 익숙해진 다음에 3.0에서 다른 게 뭔지 한 번 봐 두시면 됩니다.

2번) 파이썬 2에서 3으로 넘어가는 것은 거의 모든 파이썬 프로그램이 다 2~3년 안에는 겪어야 할 일이기 때문에, 미리 파이썬 3.0을 디자인하면서 자동으로 문법을 변환할 수 있을 것인가! 같은 것까지도 고려 대상이 됐습니다. 그래서 파이썬 3.0에는 2to3이라는 프로그램이 들어있는데, 이걸 사용하면 웬만한 것들은 대부분 자동으로 파이썬 3.0용 프로그램으로 변신할 수 있습니다. 그리고, 파이썬 2.6이 파이썬 3.0을 대비하기 위한 중간 계단으로 같이 나왔습니다. 파이썬 2.6을 쓰시면 파이썬 3.0에 아주 잘 대비된 프로그램을 만들 수 있습니다. 2.6에도 2to3이 같이 들어 있습니다.

참, 그리고 파이썬 3.0 최종판에는 아쉽게도 텔레파시 지원은 예정과 다르게 빠졌지만,
반중력 비행 기능이 생겼습니다. x로 시작하는 모 사이트에 따르면(!) 파이썬에서 import antigravity를
했더니 날 수 있었다고 합니다! (한 번 해 보세요!)

Watch Full Movie Online Streaming Online and Download

루프를 몇 번만 돌려 보고 싶을 때

스크립트에서 같은 작업을 많은 데이터에 반복할 때, 한 번 도는데 엄청나게 오래 걸리거나
다른 사이트 리소스를 쓰기 때문에 괜히 민폐를 안 끼치려고 앞 부분만 테스트하는 게 좋을 때가 많습니다.
한 번만 돌릴 때는 이렇게 보통..

종종 첫 데이터는 엄청 단순해서 한 5개나 앞쪽 10개만 돌려보고 싶을 때, [:5]나 [:10]하면 좋겠죠.
그런데, 어떤 건 이터레이션은 되지만 이터레이션 자체가 자원을 많이 먹거나 민폐를 끼치거나
하는 경우가 있습니다. 그 때 뭐 제한하려면 enumerate같은 걸 써서 i >5 면 중단 이러면 되겠지만
역시 너무 순수해 보여서 지루하고 타이핑도 많아서 귀찮습니다. 그래서 제가 보통 쓰는 방법

왠지 12345 일일이 써 주면 아! 다섯번 하는구나! 하는 필이 확 오고, 에러로 끝내주니까 아주 신납니다. 🙂

혹시 직접 쓰시는 재미있는 방법이 있으면 소개해 주세요~

“지는 해 파이썬”에 대해

며칠 전에 올린 글에서 파이썬을 "지는 해"라고 표현했던 것이 많은 분들의 반향을 일으켰는데요~
파이썬이 망해간다는 걸로 이해하시는 분들이 많아서, 의도를 명확하게 하려고 좀 부연 설명을 달아 봅니다.

"뜨는 해"인 언어들의 특징은 이런 게 있습니다.

  1. 주로 좋다고 하는 사람들은 초괴짜 개발자 아니면 손보다 입으로 더 많이 개발하는 컨설턴트들이다.
  2. 뭔가 사소한 문제가 생기면 해결법을 찾는게 무척 재미있다. 그렇지만 보통 한 나절은 걸리고, 결론적으로 인터프리터나 표준 라이브러리를 고쳐서 본의 아니게 "오픈소스에 기여"하게 되어 뿌듯하다.
  3. 대부분 사람들은 해 보면 재미있겠다고 생각하지만, 실제로 회사에서 쓰게 되면 그 날로 발목 잡혀서 휴가도 못 간다. 그래서 감히 해 볼 엄두를 못 낸다.
  4. 라이브러리나 문서를 찾다보면 없어서 결국 "아 재미있겠는데!"하고 한참 재미를 보다보면, 본의 아니게 라이브러리도 만들고 문서도 쓰고 해서, 자기 이름이 검색엔진에 많이 걸리고 알아보는 사람이 늘어난다.

반면에 "지는 해"인 언어들은 이런 게 있겠죠.

  1. 특별히 회사에서 얘기를 안 해도 상사가 이번 프로젝트에서 그 언어를 써 보면 어떻겠냐고 추천한다.
  2. 더 이상 제품 설명서나 홍보에 "이 제품은 어떤어떤 언어로 만들었습니다."를 안 적는다.
  3. 뭔가 몰라서 검색엔진이나 게시판을 찾아보면 똑같은 문제를 다른 사람이 다 겪어보고 경험을 적어놔서 따라하면 된다.
  4. 그 언어를 하는 사람을 찾는 구인 광고를 자주 본다.
  5. 라이브러리가 필요해서 찾으면 이미 여러 개가 있어서 뭐가 좋은지 보고 받으면 된다.

저는 이미 한국에서 파이썬이 적합한 분야에는 적절한 빈도로 사용되고 있다고 봅니다. SI나 시스템관리, 게임, 그래픽, 운영체제 같은 전통적인 컴퓨터 분야 뿐만 아니라, 과학계산, 기계공학, 생산관리, 음악, 아파트, 전화기 등등 수많은 분야에서 도입돼서 쓸만한 분야에서는 웬만한 개발자들은 "파이썬"을 한 번 쯤은 들어봤습니다. 이제 여기서 더 파이썬을 쓰는 곳이 늘어난다면, 그건 파이썬이 잘 해서라기 보다는 그냥 그 분야가 확장됐다거나 변화했다고 볼 수도 있을 정도입니다.

"지는 해"라고 "망해가는 언어"가 아니라, 이제 뜨는 과정이 어느 정도 됐으니 큰 고생 없이 쓸 수 있다는 것을 의도했습니다. 해는 대략 12시에 중천에 뜨지만, 사람들은 대부분 오후와 밤에 생활하지 않습니까? C는 벌써 20년째 지는 해인데도 여전히 많은 분야에서 건재하죠.

꽃별천지

suapapa님께서 재미있는 걸 하셨기에
저도 import 해서 꽃별천지를!

흑흑.. 지옥으로.. T_T

그렇다면.. "그 분"은..

아 이름을 개명해야겠어요

한국에서 파이썬이 파이썬이 된 사연

얼마 전에 파이썬 3.0으로 가는 길목으로 파이썬 2.6이 공개되었고, 파이썬 3.0 정식 발표가
임박해 있습니다. (현재 예정은 12월 3일)

오늘 드디어 FreeBSD 포트에도 파이썬 2.6과 3.0rc1을 넣었습니다. 아직 디폴트 버전으로 지정하지는 않았고, GNOME이나 KDE같은 주요 의존 포트들에서 대규모 빌드 테스트가 끝나면 올릴 예정입니다. 2.5 때는 사소한 문제가 엄청나게 발생해서 디폴트 되는데만 거의 3달 가까이 걸렸는데 2.6은 바뀐게 별로 없으니 금방 지나가리라 믿습니다;

그런데, 한국에서 파이썬을 "파이썬"이라고 부르게 된 계기를 말로 알려드린 적은 있었지만, 특별히 글로 쓴 적은 없는 것 같아서 3.0 백일기도 하는 마음으로 적어 봅니다. ㅎㅎ;

파이썬은 국립국어원의 외래어 표기법에 맞게 표기하면 "파이선"이라고 표기해야 맞습니다. 외래어 표기법에서는 영어를 한글로 적을 때는 된소리를 안 쓰기 때문인데요.

파이썬이 처음 한국에서 막 뜨려고 하던 2000년 초기에 한국에서 파이썬을 다루는 홈페이지는 광운대 이강성교수님과 당시 서울대에 계시던 이관수님의 홈페이지 밖에 없었습니다. 그 때 이 두 홈페이지에 다니는 사람들이 파이썬을 다양한 방법으로 불렀는데, "파이선", "파이던", "파이똔", "파이톤", "파이싼", "파이딴", "퓌톤", "피톤", "피쏜" 등등 부를 수 있는 조합은 거의 다 나오지 않을까 싶을 정도로 다양하게 불렀죠. 그러다가, 이강성교수님께서 운영하시는 파이썬정보광장 첫 모임이 드디어 2000년 4월 28일 저녁에 역삼동에서 강남대로 따라 양재동으로 가는 길에 있는 백두산이라는 고깃집에서 있었고, 그 자리에 참석했던 대략 20명 정도 되는 최초의 한국 뱀신족들이 파이썬을 "파이썬"으로 부르기로 합의합니다. (당시에 Guido van Rossum을 한글로 어떻게 표기할까에 대해서도 얘기를 했었는데, 이건 결론이 안 났습니다.)

우선, Python의 어원은 그리스어에서 나왔으니 "퓌톤"류의 표기를 좋아하는 의견들도 있었지만, 파이썬 언어 자체는 Monty Python에서 온 것이라 영국식 발음이 원천이고, 귀도도 미국에 살고 있으니 영어로 해야겠다하고 "퓌톤"을 버리게 되었고요. "파이선"이라는 표준 표기 대신 "썬"을 쓴 것은 "파이선"하면 너무 발음이 새고 좀 약해보여서 강하고 새로운 인상을 주자(?)하는 의미에서 "썬"으로 의견이 모아졌습니다.

결국 그렇게 한글 표기법을 정한 이후로, 이름 덕인지 2000~2001년 그 모임에 참석한 분들이 주요 프로그래밍 잡지 기자분들의 도움으로 파이썬 관련 연재를 쏟아내면서, C/C++과 자바 말고는 별 게 없던 지루한 프로그래밍 동네의 수요와 맞아 떨어져 급속도로 "해 본 적은 없지만 언젠가는 해 보고 싶은 언어"로 상당기간 수위권을 달렸고, 지금은 대안언어라고 부르기 민망한 "지는 해" 쪽에 속하는 언어가 됐습니다. 🙂

전문가가 되기 위한 파이썬 책

Expert Python Programming

나와 있는 파이썬 책은 대부분 “파이썬 1주일 만에 배우세요!” 아니면 “파이썬으로 뭐시기 하기” 두 부류였습니다. 아무래도 파이썬이 배우기 쉬운 언어처럼 보이는게 주요 마케팅 요소다 보니까, 쉽게 배워서 어디다가 써 먹는 것 밖에 없었는데요. 얼마 전에 전문가 파이썬 프로그래밍(Expert Python Programming)이라는 책의 출간 소식이 발표됐습니다.
그동안 파이썬 자체를 주제로 하면서 초보서적이 아닌 것은 거의 Python Essential Reference밖에 없었기에 무척 기대가 되어서 당장 내용을 살펴 봤습니다. 🙂 아직 출간이 안 돼서 내용은 못 봤는데 목차가 공개되어 있네요~

다루고 있는 내용은 패키지 관리, 빌드, 네이밍, 테스트 주도 개발, 지속적 통합, 소프트웨어 개발 사이클, 최적화 등이 있어서 전반적으로 파이썬 문법이나 내부 구조에 대한 것 보다는, 오랫동안 파이썬 개발을 하다보면 얻을 수 있는 경험적 지식이 들어 있습니다. 대충 파이썬 고급서가 나오면 아무래도 파이썬 내부구조나 VM자체, 개념 같은 것을 다루지 않을까 생각했는데, 일일이 찾아서 배울 수는 있지만 처음 접근하기가 쉽지 않은 것들을 그런대로 잘 모아놓은 것 같네요~

파이썬을 쓰다보면 언제든 한 번은 만날 만한 것들을 빨리 배울 수 있게 잘 모아놓긴 했지만, 제목과는 달리 전체적으로 소프트웨어 개발 공정에 관련된 것들만 듬성듬성 다룬 것 같은 느낌이 약간 나긴합니다. 그래도 이런 책이 나왔다는 것은 매우 반갑네요. 🙂

가격은 $40인데 여러 권 사면 할인도 해 준다고 합니다. 신기하게도 한국도 무료배송 지역이군요. -ㅇ-;