컨설팅의 비밀 (The Secrets of Consulting)

[ISBN-8991268005] 전에 인사이트 출판사에서 메일온 것에 하나 답변을 줬던 적이 있는데, 나중에 좋은 책이 출간됐다고 하나 보내줬는데 바로 이 《컨설팅의 비밀》을 받았습니다. 아무래도, Programming Pearls 같은 책을 주로 번역 출판하던 회사라서 뭔가 싸구려 책은 아니겠지 했는데, 컴퓨터 관련 책도 아니라니 참 기대가 됐습니다.

회사에 택배를 우선 선불로 보내줘서 아주 좋은 인상을;; 그런데 아아 역시 이거 상당하군요. 페이퍼백이 14900원이라니 -ㅇ-; 그래 뭔가 읽을 게 있으니 그렇게 했겠지 하고;; 으음 그런데 뭔가 뒷면의 추천에 오우 김창준님이 추천하는 말 끝을 쓰셨군요. 뭔가 기대가 되면서.. :) 그런데 받고 한 3분쯤 있다가 갑자기 친구 [WWW]승범이에게서 msnm메시지가 왔는데 앗 갑자기 웬 방금 받은 책의 표지가 있는 [WWW]페이지의 URL을 알려주는 것이 아닙니까! 아앗 내가 이 책 받은 걸 어떻게 알았지! 했는데 아이 이런 흐흐 승범이가 이 책의 일러스트를! 아 그림이 어디선가 본 그림체 같다 했더니~ 아 이제 책에 호감이 굉장히 생기면서 괜히 뿌듯하면서;;

그런데 그 이후로 책을 다 읽는데는 시간이 꽤 걸렸습니다; 우선 전에 읽던 《베트남 10000일의 전쟁》과 《전쟁의 역사》를 덜 읽어서 출퇴근할 때만 읽다보니 아무래도 시간이.. 내용은 주로 컨설턴트의 고객 다루는 방법, 자기 발전하는 방법에 대해서 쓰고 있는데, 유명한 책이라서 그런지 역시 법칙이 상당히 많아서 뒤에 부록으로 법칙 목록이 정리되어있기도 합니다.; 각각의 법칙이 실제 저자의 경험에서 나온 것이라 그런지 설명이 상당히 수긍이 가도록 되어 있어서 아아 그래 맞아 맞아~ 하며 맞장구를 치며 읽게 됩니다. 수긍이 갔던 부분 몇군데를 발췌해 보자면,,

돈이 필요하면, 일자리를 구하지 말라.

왜? 이상한가? 만약 돈이 절실하면 이 일자리 하나로 돈 문제를 해결하려고 몸값을 너무 높게 책정할 것이기 때문이다. 아니면 가격을 바탕으로 자신을 팔려서 가격을 너무 낮게 책정하던가. 이러한 경우 둘 다 컨설팅에서 몸값을 도구로 사용할 유용한 기회를 놓쳐 버린다. — 254 페이지, 금전에 대한 니드와 다섯 번째 법칙

뭔가를 잃는 최선의 방법은 그것을 지키려고 애쓰는 것이다. — 201 페이지, 로머의 원칙

그 외에도 꼭 컨설턴트가 아니라도 누군가에게 뭔가 조언을 할 일이 생길만한 경우, 외부의 컨설턴트에게 대처하는 경우 등에서 이 책을 안 읽었더라면 여러번 시행착오를 거쳤을 만한 일들이 많이 적혀 있어서 “페이퍼백이 14900원”임에도 불구하고 아주 가치 있는 책으로 느껴집니다. :)

파이썬 2.4a2 릴리스 계획

파이썬 릴리스 엔지니어인 앤써니 백스터씨에 따르면 이번 주 목요일에 파이썬 2.4a2를 릴리스할 예정이라고 합니다. 2.4 브랜치의 첫 릴리스이자 MSI 인스톨러가 실제 사용이 가능할 지 알아보는 첫 알파 릴리스였던 2.4a1에 이어 이번 2.4a2에서는 2.4의 가장 큰 싸움터였던 [PEP]318 메쏘드 데코레이터의 시험 무대가 됩니다.

메쏘드 데코레이터는 필요성에 대해서는 대체로 최소한 +0 정도는 주고 있었지만, 공감을 얻어내는 깔끔한 문법이 하나도 나오지 않은 상태에서 반발을 사는 안만 수십개가 난립하고 있었는데, 우선 2.4a2에서 귀도의 결정으로 앤써니가 자바 스타일 문법을 그대로 사용한 것을 우선 트렁크에 넣었습니다. 이렇게 됩니다.

지금까지 함수 끝에다가 test = staticmethod(test)했던 다른 언어에서 건너온 사람들이 거부감을 느낄 듯 한 문법상의 문제점을 해결을 해서 뭐 그럭저럭 괜찮은 것 같기는 하지만서도.. @라는 여태까지 파이썬에서 사용되지 않았던 기호를 하나 더 사용하게 된 것은 조금 거부감이 듭니다. 뒤에 as붙이는 거나 []안에다 마구 써대는 것 보다는 그래도 훨씬 나은 것 같네요;;

그리고, 2.4a2에서는 CJKCodecs 1.1이 머지돼서 HKSCS와 JIS X 0213:2004지원이 원활해졌습니다. 또한, 인터랙티브 셸에서 sys.stdin.encoding을 존중하지 않던 문제가 해결되어, 이제 u”한글” 이런 식으로 인터랙티브 셸에서도 쓸 수 있게 되었고, 일본 사람들이 shift-jis 로캘에서 몇몇 글자를 입력하면 이스케이프때문에 에러가 나는 문제가 해결됩니다.

그 외에 국제화와 관련이 없는 주요 문제들로는

  • 그동안 임포트 중에 실패한 모듈들이 모듈 캐시에 남아서, 그 다음에 또 임포트하면 마치 에러가 안 난 것처럼 배시시 거리고 있는 현상이 이제 고쳐졌습니다.

  • None이 컴파일러에서 상수형으로 처리되어 더이상 None = 1 같은 처리가 불가능해졌습니다. (..)

  • SSL 소켓을 넌블러킹 소켓으로 사용할 수 있게 되었습니다.

  • threading 모듈의 쓰레드 오브젝트에 local이라는 속성이 추가돼서 TLS(Thread-Local Storage) 사용이 가능해 졌습니다.

  • Optik이 1.5로 업그레이드 되었습니다.

새로운 한국의 FreeBSD 커미터!

오늘 드디어 한국 사람으로는 최초로 소스 커미터로 [WWW]편용현씨(yongari@)가 등록되었습니다. 그동안 pf 포팅을 하시면서 Max Laier를 통해서 소스를 넣고 계셨는데, 이제 쉽게 pf 커밋을 직접 하실 수 있게 되었군요. :)

developers@에 보내신 소개말씀에 따르면 네트워크 스택, 패킷 필터링, 디바이스 드라이버와 sparc64포팅에 주로 관심이 많이 있으시다고 그러시는군요. 멘터는 5.x 릴리스 엔지니어인 Scott Long씨가 맡아 주고, 아마 sparc64부분에서 Jake Burkholder씨가 코-멘터링하는 것 같습니다.

이제 다음엔 도큐먼트 커미터가 나올 차례인가요? :)

Rune Locale의 UTF-8 로캘에서의 문제점

며칠 전에 NBSP가 space인가 아닌가에 대해서 얘기를 좀 했었는데, 이 문제가 아무래도 불거지게 된 것은 BSD Rune Locale의 isctype 함수들의 특성 때문이었습니다. BSD Rune은 4.4BSD 시절에 생겨난 것으로, POSIX Locale가 만들어지기 이전부터 디자인된 멀티바이트 캐릭터셋 API이기 때문에, 그 이후 POSIX Locale 스펙과 맞지 않는 점이 있습니다. 바로, POSIX에서는 isspace, isalpha같은 ctype함수들을 싱글 바이트로 표현할 수 있는 코드포인트들로 제한을 하고 있지만, Rune에서는 iswctype이 도입된지도 얼마 되지 않았고 그냥 isctype 함수들이 wide character 코드포인트까지 모두 담당해버려서 결국 UTF-8 로캘같이 전체가 하나의 캐릭터셋이라서 싱글 바이트의 경우와 wide character가 겹쳐버리는 경우 잘못된 답이 나와버리는 것입니다.

구현

isspace(0xa0)

iswspace(0xa0)

isalpha(0xc0)

iswspace(0xc0)

BSD Rune

true

true

true

true

glibc

false

false

false

true

Solaris

false

true

false

true

올바른 답(POSIX/Unicode)

false

true

false

true

그래서 Tim에게 메일을 보냈더니 Rune과의 하위호환성을 5.x까지는 유지하겠다고 manpage에 써 놓아서 우선 바꾸지는 못 하지만, 6.x에서 고칠 수 있겠다는군요.. 그리고 manpage에 언급을 넣어 줘서 COMPATIBILITY에 이제 isctype에서 와이드 캐릭터 전영역을 커버하지 않도록 곧 수정될 수도 있다는 경고가 붙게 되었습니다. 그러면서 우선 버그를 피해갈 수 있는 방법을 하나 알려줬는데.. 이렇게 합니다 ;;

흐흐;; 우선 파이썬 포트와 파이썬 2.4 트렁크에 해당 패치를 넣으려고 합니다.