메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

컬럼/인터뷰

『Python Cookbook』을 만든 편집자들과의 인터뷰

한빛미디어

|

2002-08-12

|

by HANBIT

14,933

오라일리사(O"Reilly)는 지난 7월 『Python Cookbook』을 출간하였다. 이 책에는 각종 문제와 이를 해결하는 방법을 비롯하여 파이썬 프로그래머들이 주역이 되어 만들어 낸 실용적 예제들이 가득하다. 2백 여가지가 넘는 각종 팁과 파이썬 권위자들인 귀도 반 로섬(Guido van Rossum), 팀 피터스(Tim Peters), 폴 프레스코드(Paul Prescod), 마크 해몬드(Mark Hammond)가 집필에 도움을 주었다. 이와 같은 방대한 협력 작업을 하나로 모으는 작업도 보기 드문 일로 최근 이 책의 편집자인 알렉스 마르텔리(Alex Martelli)와 데이비스 아셔(David Ascher)를 모시고 그 과정에 대해 인터뷰를 하였다.

스튜어트: 『Python Cookbook』을 쓰게된 특별한 계기라도 있었습니까?

아셔: 책의 서문에 기술하였듯이 이 책의 역사는 굉장히 복잡합니다. 『파이썬 시작하기』을 편집한 바 있는 고인이 된 나의 절친한 친구 프랭크 윌슨(Frank Willison)과 나는 한동안 ‘다음에 낼 파이썬 도서’에 대해 토론한 적이 있습니다. 우리는 함께 JPython(Jython이라는 이름은 그 때 널리 사용되지 않고 있었음) 책을 비롯하여 기타 다른 주제들에 대해 토론했습니다. 그때 나는 액티브스테이트(ActiveState)사에 일자리를 얻었고 그 결과 파이썬 집필에 들이는 시간이 급속히 줄어들게 되었습니다(다행스럽게도 파이썬/코드/를 작성하는 시간은 급격하게 증가했습니다!). 몇 달이 지나자 프랭크와 액티브스테이트사의 최고경영자(CEO)인 딕 하트(Dick Hardt) 사이에 쿡북에 대해 서로 협력하는 것이 양사의 이익에 도움이 된다고 판단하였습니다. 양사 모두가 얼마나 많은 작업이 소모될지 알지는 못했지만 액티브스테이트사가 온라인으로 제출 과정을 수행하고 오라일리가 그것을 책으로 출판하려고 했었죠. 프랭크라면 알았다고 할지라도 나에게 경고하지 않기로 간단하게 결정을 내렸을 겁니다!

마르텔리: 이와 같은 쿡북 이야말로 바로 파이썬계가 절실히 요구하는 것이라고 생각했습니다. 그래서 데이비드 아셔(David Ascher)와 로라 르윈(Laura Lewin)이 기존의 프로젝트에 참여해달라고 요청했을 때 저는 주저하지 않고 뛰어들었습니다.

실제로 오라일리가 이미 액티브스테이트와 쿡북을 만들 계획을 가지고 있다는 것을 알기 훨씬 전부터 나는 쿡북을 만들고 싶었습니다. 물론 저도 쿡북에 대한 제안서를 오라일리에 보냈지만 액티브스테이트사의 ‘공동체가-작성한다(community-written)’는 아이디어가 오라일리에게는 당연히 더 매력적으로 다가왔겠죠. 그래서 그 이후로 나는 계획을 바꾸어서 파이썬 쿡북 대신 파이썬 넛셀(Python Nutshell) 책을 쓰기로 했습니다.

스튜어트: 쿡북에 사용한 접근법이 파이썬에 어떤 도움이 되었나요?

마르텔리: 파이썬 언어를 배우는 것과 운전을 배우는 것은 비슷합니다. 쿡북(cookbook)은 운전 베테랑들이 획득한 팁으로부터 나온 지도와 같다고 볼 수 있죠. 진짜 운전을 잘하는 사람들은 어느 교차로가 붐비기 때문에 피해야 하는지, 그럴 때는 어느 지름길로 가야 하는지, 어떤 길은 피해야 하고 왜 피해야 하는지를 말해 줄 수 있습니다. 그렇게 되면 누구의 도움도 받지 않고 여러분 혼자서 고생하면서 길을 알아내는 것보다 (프로그래밍의 경우 실수투성이 프로그래밍을 혼자 작성하고 시행착오를 겪으며 알아내는 것이 되겠군요.) 훨씬 더 재미있고 생산적이 될 것입니다!
Python Cookbook


스튜어트: 얼마나 다양한 팁들이 『Python Cookbook』에 수록되어 있습니까? 그리고 얼마나 다양한 사람들(위의 예에서 말한 베테랑 운전수 같은 사람)이 최종 작업에 기여를 했나요?

마르텔리: 100여명이 넘는 사람들이 약 200여 가지의 팁과 트릭을 제공해주었습니다.

스튜어트: 그렇게 많은 사람들과 함께 작업하는 것이 쉽지는 않았을 텐데요? 그처럼 많은 사람들의 생각을 하나의 책으로 모으는데 어떤 어려움이 있었는지요?

마르텔리: 각 공헌자들의 스타일과 아이디어가 가진 다양성과 개성을 고려하면서 오라일리 쿡북이 요구하는 특유의 스타일과 표현으로 통일성을 맞추는 작업 또한 도전적인 일이었습니다. 우리는 이처럼 확연하게 상충하는 두 가지 목표를 만족시키기 위해 그 두 목표 모두가 근거로 삼는 메타 목표가 있다는 사실을 항상 염두에 두고 최선을 다해 노력하였습니다. 여기서 말하는 메타 목표란, 읽기가 명료하고 쉬워야 한다는 관점(통일성으로 최대한 기여)과 개개의 공헌자들이 제공한 팁의 개성이 나타나도록 파이썬에 접근하는 방법(다양성으로 최대한 기여)을 말하는 것으로 이 책을 읽는 독자에게 최대의 가치를 주자는 것이였죠. 그래서 편집 결심이 설 때마다 저는 ‘독자들에게 최대의 가치를!’이라는 메타 목표를 머리 속에 떠올리곤 했죠.

위에서 말한 원칙들이 한 치의 결점 없이 꼼꼼하게 실천된 것은 아닐 수도 있습니다. 우리는 ‘여러 명의 저자들이 집필한 오픈 소스 쿡북’이라는 새로운 지평을 열게 되었으니까요. 다음 격언이 말해주는 것처럼 말입니다. "등에 꽂힌 화살의 개수만 보고도 선각자가 누구인지 알 수 있다.(You can always tell the pioneers by the arrows in their backs)" 저도 위에서 말한 원칙들이 올바르기 때문에 편집자와 저자라면 누구나 항상 염두에 둘만한 가치가 있다고 생각합니다. 이 모든 일이 독자들을 위한 것이기 때문에 각 상황 그리고 모든 상황에서 내려야 할 올바른 선택이란 독자에게 최대한의 혜택을 주는 선택입니다.

아셔: 저도 방금 한 말에 동의합니다. 정말 명답이군요! 굳이 덧붙이자면 다음과 같은 내용이 될 것 같군요.

(다행스럽게도) 알렉스가(Alex)가 직면하지 않았던 도전과제 중의 하나는 ‘책 출품 형태’인 웹 사이트를 디자인하는데 따르는 어려움이었죠. 대부분의 ‘편집된 책들(edited volumes)’에서 편집자는 미리 선택된 모든 저자들을 조율해야 합니다. 각 저자에게 장과 주제를 할당하고, 일반적인 편집 가이드라인을 설정해주며, 그 분야에서의 주된 목소리가 확실하게 통일성을 유지하게 하여 공평하게 표현하는 일은 상대적으로는 쉬운 일입니다.

그렇지만 이 쿡북에서 저자들은 스스로 참여해서 자신들이 관심있는 분야의 주제에 대해 글을 씁니다. 저자들을 섭외에 대해서는 기존의 저자 관리 방법을 사용했지만 각종 팁들이 모인 섹션은 고르게 분포되지는 못했습니다. 어떤 섹션(예를 들어 ‘알고리즘’과 ‘객체 지향’ 장)은 엄청나게 풍부한 반면, 다른 섹션은 전체 장들에 나누어 담을 수 밖에 없었습니다. 굳이 한 가지만 말해보라면 Jython을 들 수 있는데 무슨 이유인지는 몰라도 Jython과 관련된 특유한 팁들은 별로 제출되지 않았습니다. 다행스럽게도 알렉스(Alex)가 그 공백을 메꾸는데 큰 도움을 줬기 때문에 책이 성공적으로 완성될 수 있었죠.

스튜어트: 지금 특히 더 이 책이 중요하게 부각되어야 할 이유는 무엇이라고 생각하십니까?

마르텔리: 파이썬 사용 속도가 점점 증가하는 추세에 있고 이때 파이썬 사용자들에게 절실하게 필요한 것은 요리법이 설명되어 있는 요리책처럼 모범 관행(good practices)과 하는법(how-tos)을 보여 주는 책입니다.

‘가장 적절한 순간은 바로 지금(the right moment is right now)’이라는 테마를 나는 점점 더 중요시 하게 되었습니다. 이제 갓 태어난 파이썬 비지니스 포럼(Python Business Forum)의 주요 계획중의 하나는 귀도(Guido)의 은총으로 선택된 파이썬 버전을 넘겨 받아 유지보수하고, 철저하게 테스트한 후 선별하여 "하나로 묶인 파이썬(Python in a Tie)"으로 알리는 것입니다. (이 포럼은 컨소시엄 형태의 회사로서 자신의 업무에 파이썬이 중대한 역할을 하는 사람들을 위한 것으로) 비즈니스 사용자들에게 거의 변경되지 않을 견고한 버전의 파이썬을 제공하기 위한 것인데, 파이썬 개발자 핵심 그룹에 있는 개발자들이 자신들의 선택에 따라 자유롭게 앞으로 나아갈 수 있게 해놓아서 더 빠른 행보로 앞으로 나아가고 있습니다.

‘하나로 묶인 파이썬(Python in a Tie)’에 대한 현재의 밝은 전망은 파이썬 쿡북이 훌륭히 소화해 낸 파이썬 버전(파이썬 2.2)에서 잘 볼 수 있습니다. 포럼이 계획을 잘 수행하고 널리 알려지게 되면 파이썬이 비즈니스에 엄청나게 사용될 거라고 나는 감히 예언합니다. 그 결과 새로운 비즈니스 사용자들은 모두 Python 2.2를 사용할 것입니다. 쿡북(그리고 곧 나올 넛셀 역시)은 정확하게 이것을 목표로 하고 있습니다. 방대하고 다양한 파이썬 공동체로부터 나온 실무에서 증명된(field-proven) 예제들, 장단점, 적용분야와 대안, 조언과 팁에 관한 토론 등등… 바로 이것이 『Python Cookbook』이 다루고 있는 모든 것입니다. 그리고 파이썬을 처음 접하는 사람과 이 경이로운 언어를 더욱 더 효과적으로 사용하고 싶어하는 기존의 파이썬 사용자라면 누구라도 필요한 책입니다.

스튜어트: 다른 파이썬 책과 비교하여 이 쿡북이 독특한 점이 있다면 무엇일까요?

마르텔리: 쿡북은 대단히 협력적인 작업으로 이루어진 책입니다. 이 책에 제시된 팁들은 수백 명의 저자들로부터 나왔고 그 저자들은 단순히 파이썬을 위해 자신들의 팁을 무료로 기부한 것입니다. 따라서 이 책은 현재 본질적으로 파이썬 사용자들이 유용하고, 재밌고, 중요하다고 생각되는 것들을 주로 다루고 있습니다. 각 장의 소개와 조직은 각 분야의 전문가 들에 의해 추가되었습니다. 우리는 상당한 부분을 편집했습니다. 제공된 팁을 선택하고, 조직한 후, 약간의 토론을 추가하여 완성했는데 이 모든 일은 전체가 일관성을 유지하도록 하는 것이었습니다. 그러나 이 일은 협력적인 작업으로 전체 소프트웨어 커뮤니티에 의해 작성된 책이라는 점에서 오늘날 독보적이라고 말할 수 있습니다.

스튜어트: 목표로 한 대상독자층은 누구입니까?

마르텔리: 파이썬에 대해 조금은 알고는 있지만 다양한 적용 분야에서 진짜 파이썬 전문가들과 서로 직접적으로 일하는 행운은 아직 가져 보지 못한 사람들을 대상으로 합니다. 따라서 이 책은 위에서 언급한 사람들에게 전문가들과 함께 일했을 때 얻을 수 있는 것과 똑 같은 경험은 물론이고 같은 종류의 노하우(know-how)를 제공한다고 할 수 있죠.

파이썬으로 코딩하는데 직접적인 관심은 없지만 그냥 파이썬이 무엇인지 이해하고자 하는 사람들에게도 나는 이 책을 추천하고 싶습니다. 이 책은 예를 들어 주어진 프로젝트에 어떤 언어를 사용해야 하는지와 관련된 전략적인 결정에 도움을 줄 수 있기 때문입니다. 세부적인 사항과 다양한 팁, 모듈과 프로그램에 대한 완벽한 예제와 격렬한 토론을 주의깊게 따라가 보지 않고서도 말입니다.

스튜어트: 책을 집필하는 과정 중에 생긴 뭐 재미있는 일화라도 있습니까?

마르텔리: 아버지가 농담삼아 커피 타준 비용을 저한테 청구하겠다고 겁을 주었지요. 집필하면서 무지막지하게 많은 커피를 마시고 있었으니까요. 책을 쓴다는 것은 곧 프로그래밍을 할 때 밤을 지새우며 일했던 것보다도 더 많은 밤을 새면서 일한다는 것을 의미했으니까요!

결국 아버지가 청구한 커피값은 책이 서문 가장 마지막에 감사의 말을 적어넣는 경의를 표함으로써 갚았다고 할 수 있죠. 단순히 저한테 커피를 타주신 것에 대해서가 아니라, 아버지 전 생애에 걸쳐서 열정을 잃지 않고 어려운 일들을 헌신적으로 이겨내시는 모범을 몸소 보여 주신것에 관해서 감사를 드렸습니다. 아버지는 곧 80세가 되십니다. 그렇지만 당신은 지금도 자신이 선택한 분야(의학)의 대학교수로서, 자신이 속한 분야의 전문능력 습득하기 위해 여전히 일하고 계십니다. 다행스럽게도, 예전처럼 전일제로 일하시지는 않기 때문에 지금은 저한테 명품 ‘에스프레소’를 타주실 시간은 있답니다.

스튜어트: 파이썬 언어와 관련된 재미있는 일화가 있다면 무엇이 있을까요?

마르텔리: 내가 처음 파이썬을 접하자 마자, 제 여자친구는 걱정에 빠졌습니다. 제가 무의식 중에 보여주는 태도에서 여러 징조로 보건데 분명 내가 그녀 아닌 다른 것에 깊이 빠졌다는 생각을 하게 되었으니까요. 물론 내가 그녀에게 새로 배우고 있는 언어에 대해 말해 주기전까지 그녀는 라이벌이 있다고 생각하고 있었으니까요. 그 전에도 여러 번 내가 기술적인 문제들에 전념하고 있는 모습을 본 적이 있지만 그 정도로 심각하게 몰두한 적은 없었으니 그녀가 오해 할만도 했습니다!

제 여자친구는 요즘도 파이썬이 ‘자신의 경쟁상대’라는 농담을 하곤 합니다. 이만하면 파이썬에 대한 나의 사랑이 제 여자친구에 대한 사랑만큼이나 견고하고, 뿌리깊다는 걸 증명할 수 있겠죠? 요즈음 볼로냐(Bologna)에 있는 집에서 직장이 있는 고덴부르그(Gothenburg)까지 ‘통근’을 하고 있습니다(거의 한 달에 일주일 정도 뿐이고 나머지 시간은 통신망(Net)을 통해 원격통근(telecommuting)을 합니다). 제가 현재 근무하고 있는 직장은 파이썬이 중심인 회사로서 스웨덴의 고덴부르그에 있는 AB Strakt사입니다.

스튜어트: 『Python Cookbook』 프로젝트에서 액티브스테이트(ActiveState)사의 역할은 무엇이었습니까?

아셔: 액티브스테이트가사 담당한 역할은 다음과 같은 세 가지가 있었습니다. 첫째, 액티브스테이트(ActiveState)사는 자신의 웹 사이트를 운영하고 있었습니다. 이는 곧 우리 웹 팀이 그 온라인 쿡북을 구현하고 다자인 할 책임이 있다는 것을 의미합니다(이 온라인 쿡북은 여전히 볼 수 있으며, 여러 언어에서 사용되고 있습니다--한 번 점검해 보세요). 둘째, 액티브스테이트사와 오라일리사 모두 쿡북에 대해 널리 알렸는데, 이것은 고품질의 제안을 얻기 위해서는 필수적인 사항이었죠. 마지막 역할은 액티브스테이트사가 제 월급을 지불해 주고 있다는 것입니다.

스튜어트: 데이비드(David)씨, 액티브스테이트사에 요즈음 뭐 특별한 일거리라도 있습니까. 요즈음 동료들이 어떻게 지내고 있는지 말씀 해주시겠어요?

아셔: 지금 현재 산뜻한 프로젝트들이 진행중입니다. 아마도 올 여름이 가장 격렬하게 코딩할 계절이 될 것 같은데요. 그 때쯤이면 지난 달의 오픈 소스 회의에서 시연한 것들을 실현하기 위하여 동분서주하고 있을 테니까요. PerlMx는 펄기반 스팸, 바이러스, 일반적인 메일을 걸러주는 소프트웨어로 많은 사용자들이 우리가 만든 이 소프트웨어를 좋아합니다. Visual Studio.NET 플러그 인이 멋진 새로운 특징들로 갱신되고 있지만, 제가 개인적으로 좋아하는 프로젝트는 현재 작업중인 다중언어 통합 개발 환경으로 이는 차세대 크로스 플랫폼 버전입니다(간단히 말해 코모도(Komodo)를 말함). 새로운 특징들에 대해 아직 말해 줄 수는 없지만 우리가 지금까지 달성한 작업에 대하여 개인적으로는 상당히 만족하고 있습니다. 또한 코모도(Komodo)의 흥미로운 부분은 대부분 파이썬으로 작성되었는데 이는 작성을 처음 시작했을 때처럼 여전히 재미있는 부분입니다.

스튜어트: 향후 파이썬의 발전 방향에 대해서는 어떻게 생각하십니까?

마르텔리: 생각컨데… 파이썬의 진화속도는 디자이너가 목표로 한 이상에 가깝게 다가갈수록 현저하게 느려질 것입니다(이미 상당히 근접하고 있지요). 사용자 기반의 성장은 계속되어 더욱 더 많은 미래의 사용자들이 ‘도우미로부터 도움을 받을’ 필요가 있을 겁니다.

스튜어트: 두 분 모두 파이썬 소프트웨어 재단(Python Software Foundation)에 참여하고 계신데요. 재단에 대해서, 그리고 어떻게 참여할 수 있는지에 관해서 말씀 좀 부탁드립니다.

마르텔리: 그 대답은 데이비드(David)씨가 하는게 좋겠습니다. 대개의 경우 저작료는 저자에게 돌아가지만 이 책의 경우 저작 로열티의 일부가 파이썬 소프트웨어 재단으로 가게된다는 사실에 흥미를 느끼실 독자들이 있을 것 같습니다. 저작료가 지원될 파이썬 소프트웨어 재단은 비상업적인 기구로서 파이썬을 장려하고 그의 사용을 지원하는데 그 목표가 있습니다.

아셔: 나는 PSF의 중역이고 이것은 내가 (PSF를 통치하는 조직인) 위원회에 속한다는 것을 의미합니다. 우리가 구축하고자 하는 조직은 파이썬에 상당한 기여를 하고 있고, 파이썬이 오래도록 번영하기를 기원하는 알렉스(Alex)와 같은 사람들로 이루어진 회원들의 이익에 기여할 수 있도록 하는 것입니다. 그 목적을 위해, 우리는 법적인 그리고 재정적인 인프라스트럭처(infrastructure)를 만들었습니다. 이 기구 덕분에 PSF가 더 쉽게 책임을 지고 파이썬의 성장을 촉진하는 것 뿐만 아니라 파이썬의 지적 재산권도 소유하게 될 것입니다. 개인 회원들은 기여를 하기 위해 PSF에 가입하기를 권장합니다만, PSF의 목표를 함께 공유하는 회사들은 스폰서 회원에 신청할 것을 권장합니다. PSF에 관한 정보는 파이썬 소프트웨어 재단의 홈 페이지에서 얻을 수 있습니다. 덧붙여, 나는 PSF와 관련하여 「Perl Review」에 기사를 하나 썼습니다(약간 익살스럽게 썼지만 기사의 내용은 신중합니다!).

스튜어트: 데이비드(David)씨, 『파이썬 시작하기』는 독자들에게 아주 인기있는 파이썬 책중의 하나입니다. 갱신작업 중이신가요?

아셔: 이제 쿡북이 출간되었으니, 『파이썬 시작하기』가 내가 계획하고 있는 다음 프로젝트입니다. 너무나 많은 것이 변경되었기 때문에 마음 설레는 갱신작업이 될 것 같습니다. 파이썬 2.0, 2.1, 2.2, 2.3 배포판에 대하여 현재 계획중입니다. 다행스럽게도 아직까지 초판의 거의 모든 내용이 여전히 잘 작동하고 있고 쓸모가 있습니다. 그러나 갱신할 시기가 된 것 같습니다.

스튜어트: 알렉스(Alex)씨, 당신은 지금 오라일리에서 『Python in a Nutshell』 작업을 하고 있다고 들었는데요. 어떻게 되어 가는지요?

마르텔리: 내가 처음 쿡북 작업을 시작한 2001년 10월에서 올해 3월까지 인어넛셀의 작업은 거의 중단된 상태로 있었습니다. 그 당시 나는 파이썬에 전념하기 하기위해 직업을 바꾸었죠. 결과적으로는 이와 같은 지연이 오히려 더 좋은 결과를 낳게 되었는데, 전체를 전면적으로 재작업하여 이제는 최신 버전인 파이썬 2.2에서 새로 나온 모든 개발과정을 다루고 있습니다. 쿡북처럼 말입니다. 『Python in a Nutshell』은 오라일리에서 2002년 10월에 출간될 예정이며 그 목표를 달성하기 위해 지금 열심히 작업하고 있습니다.
브루스 스튜어트(Bruce Stewart)는 O"Reilly & Associates사의 온라인 출판 그룹의 편집자이다.
TAG :
댓글 입력
자료실