파이썬(Python)으로 개발하신다구요? 아니면 파이썬을 유용하게 사용하고 있지만, 더 할만한 일이 없을까 생각해 본 적이 있다구요?

그렇다면 여기에 장고(Django)가 있습니다.

파이썬 개발자 중 장고를 모르는 분이 계실까 싶지만 그래도 소개를 해드리자면, 장고는 파이썬의 단순함과 명료함을 물려받은 웹 프레임워크입니다. 해외의 지식인 서비스랄 수 있는 마할로(Mahalo)워싱턴포스트의 웹시스템으로 사용되어 그 효율성과 성능을 입증하기도 했고, 구글앱엔진(Google App Engine)에서 지원하면서 더욱 주목을 받게 되었죠. 이렇게 뛰어나다지만 아직 나이가 어린 프로젝트이고, 국내에는 마땅한 문서가 없어서 개발자들께 많이 알려지지 못했었는데요. 드디어 장고를 설명한 책 『쉽고 빠른 웹 개발 Django』가 출간됩니다!

사용자 삽입 이미지

표지에 웬 기타냐구요? 장고 프로젝트를 처음 시작한 개발자들이 유명한 재즈 기타리스트인 장고 라인하르트(Django Reinhardt)를 좋아했기 때문에, 프로젝트 이름을 ‘장고(Django)’로 정했다고 합니다. 그리고 기타의 겉면을 감싸고 있는 무늬는 바로 ‘뱀의 비늘’입니다. 파이썬(Python)의 뜻이 ‘비단뱀/이무기’라는 데서 비롯된 뱀 비늘 무늬입니다. 이러니까 조금 무서운가요? (사실 파이썬 언어 자체는 뱀과 상관이 없긴 합니다.)

번역은 한날 님의 표현대로 파이썬/장고 세계의 숨은 고수이신 배민효 님께서 맡아, 파이썬/장고 세상을 널리 이롭게 하셨는데요. 장고 0.96 기준인 원서의 코드를 1.0.2에 맞게 고치고, 예제와 스크린샷을 모두 한글화 하는 등 노력을 많이 하셨습니다. 이 와중에 둘째 아이를 보시는 등 개인사도 다사다난하셨으니 정말 수고하셨다고 박수를 보냅니다.

민효 님께서 파이썬/장고 개발자들께 드리는 선물!이 또하나 있는데요. 바로바로 구글앱엔진 사용법입니다. 위에서도 말했듯이 구글앱엔진에서는 아직까지 파이썬/webapp 프레임워크만을 지원하고 있는데요. webapp 프레임워크가 장고와 꽤나 비슷하다보니 파이썬/장고 개발자라면 더욱 쉽게 구글앱엔진을 사용하실 수 있습니다만, 문제는 역시나 한글 문서가 없다는 점! 그래서 민효 님께서 부록으로 구글앱엔진 사용법을 설명해주셨습니다. 본문에 나온 북마크 웹 애플리케이션을 구글앱엔진용으로 수정한 코드도 모두 소개해주셨구요. >>ㅑ~~~

그나저나 옮긴이 약력을 보면 민효 님의 경력이 재미있는데요. 대학은 정치외교학과를 다니셨고, 이때 리눅스와 파이썬을 접했다고 하십니다. (도대체 정치외교와 리눅스/파이썬에 어떤 연결점이 있는건가요? ㅎㅎ) 게다가 늦게 배운 개발이 더 무섭다고, 오픈소스와 오마이뉴스 블로그, IETF까지 여러 프로젝트에 참여하셨고, 장고 프로젝트에서도 참여하고 있으며, 최근에는 유저스토리랩에서 장고로 프로젝트를 진행하고 계시답니다. 두 아이의 아빠 역할을 성실히 수행하시면서, 업무에서도 열정적인 모습에 박수를 보냅니다. ^^

또, 이 책이 파이썬과 관련된 책이다보니 파이썬 진영의 여러 개발자들께서도 도움을 주셨는데요. 김준기, 김형용, 박상엽, 한날 님께서는 내용과 소스코드 리뷰를 해주셨습니다. 모두들 이 책을 통해 파이썬과 장고의 편리함과 강력함을 더 깊이 이해할 수 있었다며 좋아하셨답니다. (자세한 리뷰 후기는 아래에…)

사실 프레임워크치고 쉽고 편함을 자랑하지 않는 프레임워크가 없을테지만, 장고는 정말 쉬워서 외국에서는 심지어 디자이너가 익힐 정도라고 합니다. 지금 웹 프레임워크를 고르고 계시다면 여기, 장고가 있습니다!

강컴, 교보, 예스24, 인터파크에서 예약판매 중입니다. ^^

김형용 님(인실리코젠 지식관리팀, BioHackers Net 운영)

가장 파이썬다운 웹 프레임워크, 장고.

그동안 장고로 웹 애플리케이션을 개발하면서 가장 인상깊었던 점은, 가장 파이썬답게 웹 개발을 추상화한 프레임워크라는 것이다. 파이썬의 가볍고 동적인 객체지향적 특성이 곳곳에 스며들어 웹 개발에서 번거로운 부분들을 많이 단축하게 해 주었으며, 새로운 기능을 조합하기에도 편리하고 재밌는 환경을 제공해 주었다. 초보 웹 개발자들이라면 간과하기 쉬운 중요한 점들을 놓치지 않고 지적하고 있어서 충분히 견고한 웹사이트를 개발할 수 있게 한다.

장고의 높은 성능과 사용 편의성에 비해 국내에는 활용 빈도가 높지 않은데, 이렇게 좋은 번역서가 나오게 되어 매우 반갑다. 이 한 권의 책을 통해 독자들은 장고의 다양한 기능을 폭넓게 익힐 수 있으며, 실전적인 감각을 익히게 될 것이다. 저자는 단순히 어떤 기능을 설명하기 위해 코드를 보여주지 않고, 종합적인 활용을 염두에 두고 예제를 제시한다. 하나하나 따라가다 보면 장고의 전반적인 기능과 매력을 느낄 수 있을 것이다.

장고의 중요한 특징 가운데 또 하나는 바로 재사용성이다. 내가 만든 기능을 장고 애플리케이션이란 단위로 컴포넌트화할 수 있으며, 이를 다른 웹사이트에서도 쉽게 조합하여 사용할 수 있다. 책에도 등장하는 contrib.comment 애플리케이션은 재사용의 대표적인 예제로, 댓글 기능을 어떤 사이트에라도 쉽게 추가할 수 있다. 이러한 방식으로 개발자는 자신만의 애플리케이션, 전 세계 다른 사람들의 애플리케이션 그리고 장고에 장착된 애플리케이션을 조합하여 순식간에 웹사이트를 만들어 낼 수 있다.

장고를 익힘으로써 웹 개발자는 웹 구현 자체보다는 아이디어의 구현에 더욱 노력을 쏟을 수 있을 것이다. 앞으로 더 많은 웹 개발자들이 장고의 쉽고, 빠르고, 재미있고, 견고한 웹 개발 기술을 통해 더욱 발전하고 기발한 웹사이트들을 만들기를 기대해 본다.

한날 님 (http://hannal.net)

장고로 쉽고, 빠르고, 편하고, 유연하게 개발하자.

‘쉽고, 빠르고, 편하고, 유연하게 개발하기’는 어느 시대에나 꼭 필요로 하던 덕목이다. 그러나 이 모두를 다 얻기는 쉽지 않아서 일부분은 포기하곤 한다. 그렇기에 10분만에 블로그를 만드는 영상이 나타났을 때 많은 사람들이 강한 인상을 받았다. 자판 두드리는 속도가 분당 1,000타가 넘는다 해도 블로그를 10분만에 만들기는 쉽지 않을 터, 뭔가 꼼수가 있을텐데 영상을 아무리 봐도 편집한 티는 나지 않는다. 이 마술을 가능케 한 비법은 크게 두 가지였다. 개발 언어가 가진 개성과 장점 그리고 그 언어를 기반으로 하는 웹 프레임워크.

장고는 파이썬이라는 프로그래밍 언어를 기반으로 하는 웹 프레임워크다. 책 제목처럼 쉽고 빠르게 웹 개발을 할 수 있다. 아니, 여기에 편하고 유연하다는 특징도 들 수 있다. 얼마나 쉽고 빠르게 개발을 할 수 있는가하면, 내가 파이썬과 장고를 거의 모르는 상태에서 딱 1주일만에 간단한 웹 게임을 개발할 정도였다. 참고로 나의 주 업무는 기획이다.

장고를 처음 접할 당시엔 우리말로 된 자료는 물론, 영어로 된 자료도 만족스럽지 않았다. 기능이나 상황 별로 문제를 해결할 수 있게 도와주는 자료는 있었지만, 이들을 하나로 엮어서 모양새 나는 뭔가를 만들 수 있게 도움을 주는 자료는 거의 없었다. 뛰어난 이라면 나무를 하나 하나 짚어가면서 숲을 그릴 수 있겠지만, 안타깝게도 대다수 사람들은 나무를 비롯하여 오솔길이라도 타박타박 거닐어봐야 숲을 그릴 수 있는데, 내가 그런 사람이다. 그래서 소위 삽질이라고도 하는 시행착오를 많이 겪었고, 그 고생을 다른 사람은 하지 않아야 한다는 생각에 강좌도 써봤다. 장고 자료 중 우리말로 쓰여졌으며 블로그를 만드는 과정을 시작부터 끝까지 진득하게 다루는 첫 강좌였지만, 스스로가 장고를 깊이 이해하지 못했다는 자각이 있어 많이 아쉬웠고, 이 부족한 강좌를 통과의례처럼 거치는 이들을 보며 미안한 마음이 들었다.

이 책은 장고라는 산책로를 아담하게 잘 그려내고 있다. 파이썬과 장고에서 맛볼 수 있는 명확하고 쉽고 날렵함을 제대로 살려내는 구성이다. 그래서 내심 이 책이 번역되기를 바랐고, 세상에 크게 드러나지는 않았지만 입에서 입으로 파이썬과 장고 개발 고수로 강호에 알려져 있는 배민효 님께서 책 원문을 생동감 있게 살려내며 번역을 하셨으니, 널리 사람들을 이롭게 하지 않는가!

소셜 북마크 어플리케이션은 개발 규모가 크지 않아 빠르게 결과물을 만들어 낼 수 있다. 그렇다고 단지 개발 규모가 작기만 한 것은 아니다. 웹 2.0 서비스를 만드는 데 많이 쓰이는 기술들을 두루 적용했기에, 간지러운 곳 긁어주듯 실무에서 두루 쓰는 부분을 잘 담고 있어 매우 알차다.

박상엽 님 (http://coldblaze.pe.kr/)

장고의 철학과 기능을 잘 설명해 준 책.

장고는 실제 서비스에서 발생하는 문제들의 해결 방법이 잘 반영되어 있는 웹 프레임워크입니다. 장고에는 프로그래밍의 즐거움 뿐만 아니라 서비스 운영과 최적화까지도 고민되어 있습니다. 그럼에도 불구하고 무척 유연합니다. 장고의 설계자나 개발자들에게 노하우가 많다는 것을 코드에서 느낄 수 있습니다. 구글앱엔진에서 공식적으로 지원하는 (아직까지는) 유일한 웹프레임워크인 이유가 충분하다고 생각합니다.

이 책은 장고의 철학과 기능들을 잘 설명해 줍니다. SNS와 웹 2.0의 주요 기능들을 큰 줄기로 다루고, i18n을 활용하여 애플리케이션을 손쉽게 국제화하는 방법과 캐시를 이용하여 시스템 성능을 향상시키는 방법도 잘 설명해 줍니다. 또한 테스팅 방법까지 소개하고 있어 품질관리 부분도 놓치지 않습니다.

이 책을 읽으면서 온라인에 흩어져 있는 지식들을 큰 그림으로 맞춰 보는 경험을 할 수 있었습니다. 아마 다른 독자들도 저와 같은 즐거운 느낌으로 읽어가시리라 생각합니다. 이 책과 더불어 한국에도 많은 개발자들이 장고를 활용하게 되었으면 좋겠습니다.

김준기 님 (KAIST 학사과정, http://daybreaker.info)

생각대로 작동하는 코드의 멋진 경험!

약 2년 전부터 장고에 관심을 가지고 사용해오던 터라, 이 책의 발간 소식을 들었을 때 정말로 기뻤습니다. 동아리와 졸업 프로젝트에서 장고를 활용하고 있는데 정말로 쉽고 빠르게 웹개발을 할 수 있습니다. 그래서 텍스트큐브 개발팀에도 장고를 사용하자고 했고, 주변 사람들에게도 장고를 써보자는 권유를 많이했지만, 역시 잘 갖추어진 한글 레퍼런스가 전무하다는 사실이 큰 벽이었습니다. 실제로 제가 장고를 이용해 개발하는 모습을 바로 옆에서 지켜봤던 사람들은 장고의 가능성을 인정했지만, 아직 국내에는 잘 알려지지 않은 편인데다가 온라인 레퍼런스를 보는 데 익숙하지 않은 사람들은 어려움을 토로하였습니다.

이 책은 장고를 단순히 소개하는 데 그치지 않고 실제로 동작하는 웹 애플리케이션을 만들어보기 때문에, 레퍼런스 북의 지루함을 탈피하면서도 실무에서 요긴하게 쓰이는 요소들을 잘 정리하고 있습니다. 한때 텍스트큐브 홈페이지를 장고로 제작하고 소스 코드도 뜯어보는 등 나름대로 경험이 있다고 생각했던(^^) 저조차 미처 사용해보지 못한, 알고보니 매우 유용한 요소들을 발견할 수 있었습니다.

비록 이 책이 장고가 가진 모든 battery(파이썬 커뮤니티에서는 파이썬 자체 또는 파이썬으로 만들어진 소프트웨어에 기본으로 포함된 유용한 라이브러리 기능들을 battery라고 부르는 관습이 있습니다. 공식 매뉴얼을 보면 ‘other batteries included’와 같은 표현을 볼 수 있습니다.)들을 밑바닥까지 상세하게 다루지는 않았지만, 장고의 세계를 헤엄치는 데는 훌륭한 가이드가 되어주리라 생각합니다. 장고가 얼마나 편리한지, 어떤 기능들을 제공해주는지만 알아도 이미 개발 작업은 반쯤 끝난 것이나 다름없습니다. 파이썬 자체의 간결함과 어우러진 장고는, 생각한 대로 코드가 동작하는 멋진 경험을 선사할 것입니다.

소스 코드정오표