광활한 파이썬 세계를 여행하는 히치하이커를 위한 안내서

 

입체표지
파이썬을 여행하는 히치하이커를 위한 안내서
(케네스 라이츠·타냐 슐로서 지음 | 김은지 옮김 | 376쪽)

광활한 파이썬 세계를 여행하다 보면, 어느 방향을 선택해야 할지 고민하는 순간이 옵니다. 최선을 고민하는 히치하이커에게 나침반 역할이 되어 줄 종합 안내서를 소개합니다. 파이썬 커뮤니티의 집단지성으로 완성된 ‘파이썬스러운’ 가이드! 《파이썬을 여행하는 히치하이커를 위한 안내서》입니다.

Untitled-1

http://docs.python-guide.org

《파이썬을 여행하는 히치하이커를 위한 안내서》는 파이썬 사용자 사이에서 널리 알려진 웹사이트「The Hitchhiker’s Guide to Python」를 책으로 정리한 버전입니다. 오픈 소스 프로젝트로 시작해 백 명이 넘는 커뮤니티 일원이 공동으로 힘을 모아 정리한 《파이썬을 여행하는 히치하이커를 위한 안내서》는 기존 파이썬 도서나 자료와는 성격이 다릅니다. 파이썬 언어 자체에 초점을 맞추지 않았습니다. 파이썬 설치부터 개발 환경 구성, 파이썬스럽게 코드를 작성하는 방법, 상황별 사용 가능한 라이브러리 등 파이썬을 둘러싼 방대한 내용을 일목요연하게 정리한 가이드 북입니다.

본문 미리보기

 1. 나에게 최적화된 개발 환경 설정하기!

파이썬을 막 시작한 분이라면 처음부터 명쾌하지 않은 질문에 대한 답을 고민하게 됩니다. 파이썬 2와 파이썬 3 중 어느 버전을 선택해야 할까요? 파이썬 3가 대세임에도 불구하고, 여전히 파이썬 2에 머물러 있는 분야가 있습니다. 이 책은 두 버전의 차이와 어떤 경우에 2 또는 3을 선택하는 게 좋을지를 경험자의 입장에서 설명해  주며 가이드를 제시합니다. (파이썬으로 처음 프로그래밍에 입문한 사람이나 버전을 신경 쓰지 않아도 되는 개발자라면, 파이썬 3를 사용하길 권장하고 있습니다.) 또한 파이썬 코드를 수정하고 테스트 및 디버그하는 과정에서 자주 쓰는 텍스트 편집기와 통합 개발 환경(IDE), 기타 개발 도구를 소개함으로써, 코딩 취향과 목적을 토대로 자신에게 좀 더 맞는, 내 목적에 좀 더 적합한 선택을 할 수 있도록 도와줍니다.

2. 파이썬을 ‘파이썬스럽게’ 사용하기!

가독성 높은 코드 작성은 파이썬 디자인의 핵심입니다. 파이썬 사용자들은 일정한 컨벤션, 코드 레이아웃, 코드 스타일을 준수하기 위해 노력하고 있습니다. 따라서 이런 파이썬 생태계를 이해하는 것은 중요한 부분입니다. 파이썬 사용자들은 파이썬을 ‘파이썬스럽게’ 쓰는 방법에 대해 많은 고민을 하고 있습니다. 이를 증명하듯 ‘파이썬 모범 사례 및 패턴’은 컨퍼런스 또는 세미나에서 인기 있는 주제 중 하나입니다. 이 책은 그런 고민을 하는 개발자를 위한 내용을 정리해 놓았습니다. 참고하면 좋을 코드 패턴 사례를 살펴보고, 제대로 로그를 기록하는 방법, 코드 테스트, 코드를 관리하고 개선하는 법, 코드를 패키징하고 배포하는 최선의 방법 등을 골고루 다룸으로써 파이썬을 더 파이썬스럽게 사용하는 베테랑 사용자로 한 단계 나아갈 수 있도록 안내합니다.

3.사용 목적에 따른 다양한 라이브러리 선택하기!

파이썬의 한계는 어디까지 일까요? 파이썬은 방대한 라이브러리로 둘러싸여 있습니다. 과학, 분석, 엔지니어링을 위한 기본 작업을 지원하는 라이브러리, 네트워킹에 필요한 라이브러리, 데이터베이스와 상호작용하는 라이브러리 등 각각의 주제별로 살펴보며 여러분의 프로젝트에 사용할 라이브러리 선택을 도와 줍니다.

“Life is Short, You need Python.”

인생은 짧기에 파이썬이 필요하다는 이 문장은 파이썬의 여러 특징을 함축하고 있습니다. 가독성이 높은 파이썬은 배우기가 쉬워 초보자의 시간과 노력을 절감해 주고, 다수가 참여하는 오픈 소스 프로젝트에서도 빛을 발합니다. 이 책으로 파이썬의 특징과 장점을 좀 더 빨리 파악함으로써, 파이썬을 더 효율적으로 사용할 수 있는 방법을 발견하는 데 도움이 되었으면 합니다.

▶ [ Yes24 ] [ 교보문고 ] [ 알라딘 ] [ 인터파크 ]

함수형 스타일의 자바스크립트 프로그래밍, ‘잘’ 배우는 방법

 

블로그_추천사02

함수형, 함수형,  여기저기서 들리는 ‘함수형’ 이야기. 그런데 어떻게 접근해야 할까요? 실무에 적용할 아이디어를 좀 더 빠르게 얻을 순 없을까요? 자바스크립트에서의 함수형 프로그래밍을 고민하는 프로그래머를 위한 실무밀착형 가이드! 《함수형 자바스크립트 프로그래밍》을 소개합니다.

요즘 자바스크립트는 정말 뜨겁습니다. 다양하게 등장하는 신기술들을 보고 있으면 ‘함수형’이 곳곳에 스며들고 있음을 알 수 있습니다. 페이스북은 리액트, 리덕스를 Elm과 같은 함수형 프로그래밍 기술의 영향을 받았다고 했으며, immutable.js와 같은 불변 객체 라이브러리를 만들기도 했습니다. RxJS는 함수형 반응형 프로그래밍으로 잘 알려져 있고, Underscore.js와 Lodash도 함수형 자바스크립트 라이브러리입니다.

자바스크립트는 여러 방향으로 발전하고 있으며 그중 한 방향은 함수형 프로그래밍으로 향해 있습니다. 그동안 어떻게 바뀌어 왔는지, 어떻게 바뀌어가고 있는지를 보면 알 수 있습니다. 자바스크립트에 직접 적용되었거나 되고 있는 map, filter, reduce, Promise, 화살표 함수 등이나 ECMAScript 다음 버전에 제안된 Pipeline Operator, Partial application, flatMap, Observable 등도 모두 함수형 프로그래밍에 대한 것들입니다. 자바스크립트의 함수는 이전부터 클로저, 일급 함수, 익명 함수, call, apply, bind, arguments 등의 강력한 기능을 갖추었고, 최근에는 async, await, 화살표 함수, 나머지 매개변수, 인자 기본 값 설정 등으로 인해 함수의 기능이 더욱 확장되고 있습니다. 모두 새로운 것 같지만, 함수형 프로그래밍 언어들에서 오래전부터 준비되어왔고 검증된 기술들입니다.

“개발자들에게 좀 더 실용적인 관점에서의 함수형 자바스크립트에 대해 알려주고 싶습니다.”

객체지향, 절차지향 등 다른 패러다임에 익숙한 프로그래머가 곧바로 함수형 프로그래밍을 이해하는 것은 쉽지 않다고 합니다. 사고방식의 전환이 필요하기 때문이 아닐까 싶습니다. 이 과정에서 시간과 노력이 들어가는 일은 어쩔 수 없지만, 다른 패러다임을 이해하기 위해 넘어야 하는 허들을 낮춰주고 좀 더 개발자스러운 방식으로 생각할 수 있는 아이디어를 준다면 어떨까요?

《함수형 자바스크립트 프로그래밍》은 ‘실용적인 관점으로 함수형 스타일의 자바스크립트 프로그래밍을 알려주고 싶다’는 생각에서 출발했습니다. 단순히 기법이나 개념을 소개하는 데 그치는 게 아니라, 흔하게 만드는 코드 스타일을 함수적으로 바꿔 나가면서 새로운 스타일과 콘셉트를 전달합니다. 뜬구름 잡는 느낌을 주거나 지나치게 어려운 접근보다는 진행 중인 프로젝트의 작은 부분부터 적용해 나갈 수 있도록 사례 중심으로 안내합니다. 자바스크립트 개발자는 코드를 통해  함수형 프로그래밍으로 더 나아지는 게 무엇인지 직관적으로 알 수 있으며, 단계적으로 예제를 개선해 가면서 함수적 방식의 프로그래밍이 무엇인지 감을 잡을 수 있습니다.
 

이 책에는 함수형 진영에서 연구된 기술들을 지금의 자바스크립트에 어떻게 적용해왔는지, 어떻게 적용해나갈지에 대한 내용이 담겨 있습니다. 기존의 함수형 자바스크립트 라이브러리를 탐구하고, 클로저, 엘릭서 등의 다른 함수형 언어들의 장점들을 자바스크립트에 옮겨보며 얻은 저자의 노하우와 생각들이 녹아 있습니다. 《함수형 자바스크립트 프로그래밍》은 크게 두 가지 틀로써 함수형 방식의 자바스크립트 프로그래밍에 접근합니다.

note-21. Underscore.js를 직접 만들어보며 배우는 함수형 자바스크립트
Underscore.js는 함수형 프로그래밍을 지원하는 자바스크립트 라이브러리입니다. 기존에 구현된 코드들을 따라가 보면 이미 진행된 탐구에 대해 많은 것들을 배울 수 있습니다.  Underscore.js의 API를 알려주기 위함이 아니라 왜 이런 함수가 만들어졌고, _.identity 같이 쓸모 없어 보이는 함수가 왜 실용(실무)적인 관점에서 필요한지 전달하며, 이를 통해 함수의 사용처와 함수형 패러다임의 뼈대를 이해할 수 있습니다.

note-22. 저자가 만든 라이브러리를 통해 살펴보는 함수형 자바스크립트 기법
책의 후반부에서는 저자와 저자의 개발팀이 만든 함수형 자바스크립트 라이브러리 Partial.js를 통해, Underscore.js와 Lodash의 기능적 아쉬움을 해결하면서 기능을 확장해 나갑니다. 이는 단순히 ‘이 라이브러리를 사용하라’는 의도가 아닙니다. 파이프 라인, 불변 객체, 템플릿 엔진, 비동기 제어 등에 있어서 더 나은 기능을 어떻게 구현할 수 있는지를 알 수 있고, 이를 통해 API 디자인을 어떻게 하는지도 알 수 있습니다.

여러분은 이 책으로 함수형 스타일의 자바스크립트 프로그래밍 기법을 배울 수 있고, 자바스크립트를 함수형으로 다루는 데 있어서 필요한 문법들에 대해 집중적으로 이해할 수 있으며, 함수형 패러다임을 이해하며 실무에 활용할 수 있는 아이디어를 얻을 수 있을 것입니다.

블로그_추천사01

또한 이 책과 함께 참고할 만한 동영상 강의를 인프런에서 무료로 볼 수 있습니다. 짧은 시간에 함수형 프로그래밍의 개요를 알 수 있고, 책과 흐름은 같지만 예제 등 세부적으로 다른 부분이 있으니 꼭~ 한번 보시길 추천합니다. (예를 들면, 예제가 다르고, 책의 주제와 맞지 않아 담지 않았던 몇 가지 내용(개발 동향, 엘릭서, 클로저, 병렬성, 동시성에 대한 이야기 등)도 간략히 다루고 있습니다.)
(아래 이미지를 클릭하면 강좌 페이지로 이동합니다.)

인프런_함수형(https://www.inflearn.com/course/함수형-프로그래밍/)

《함수형 자바스크립트 프로그래밍》에는 실무에 함수형 프로그래밍을 어떻게 반영할지 고민하고 노력했던 저자의 노하우와 그 결과가 고스란히 담겨 있습니다. 그리고 철저히 개발자스러운 접근 방식을 녹여 독자에게 보다 ‘쓸만한’ 내용을 담고자 했습니다. 저자의 의도와 책이 전하고자하는 바가 여러분에게 잘 전달되었으면 합니다. 🙂

* 이 책의 모든 예제는 https://github.com/indongyoo/functional-javascript에서 확인할 수 있습니다.

 

▶ [ Yes24 ] [ 교보문고 ] [ 알라딘 ] [ 인터파크 ]