파이썬과 함께하는 확장과 분산, 『실전 스케일링 파이썬 프로그래밍』

어느 분야나 비슷하겠지만 소프트웨어 개발 서적 역시 입문서의 비중이 큽니다. 파이썬 서적의 경우 요즘은 흐름이 바뀌는 분위기처럼 보이는데 이 글을 준비하면서 인터넷 서점을 검색해 보니 상위권은 역시 입문서가 차지하고 있었습니다. 편집자의 기대와는 반대로 입문 다음 단계 서적은 독자들의 관심을 끌지 못할 때가 많더군요. 물론 간혹 평소와 다른 상황이 생기기도 합니다. 4년 전 일입니다.

지난 이야기 하나, 파이썬 사용자들의 원기옥
2014년 12월 『실전 파이썬 프로그래밍』이라는 중급서 한 권을 발간했습니다. “파이썬을 접하고 이제 ‘어떻게든’ 돌아가는 프로그램을 만들 수 있게 된 모든 프로그래머에게 이 책을 다음 단계로 권하고 싶다. 파이썬 프로그램을 ‘잘’ 짜는 비법을 배울 수 있을 것이다”라는 추천의 글을 받기도 했습니다. 베스트는 되지 못하더라도 필요한 사람들에게 잘 전해지면 좋겠다는 바람이었는데 책이 나오고 나서 어느 날 예상외의 소식을 접하게 됩니다(역자님이 올린 트윗입니다).

물론 영광(?)은 오래가지 못하고 얼마 후 베스트 순위에서 내려왔습니다만 ‘원기옥’ 덕분에 책이 묻히지 않고 알려질 수 있었습니다(다만 아직도 1쇄가 다 나가지 않은 건 아쉽습니다. 한 번 더 원기옥을 모아 주시면 역주행을 할 수 있을까요? ^^;;).

작년에 왔던 각설이 죽지도 않고 또 왔네?
편집자 눈에는 나름 이변을 일으켰던 그 저자 줄리안 단주가 돌아왔습니다. 줄리안 단주는 20년간 가까이 데비안, 프리데스크톱, GNU 이맥스, 오픈스택 등 오픈 소스 소프트웨어 개발에 기여해 온 개발자입니다. 특히 오픈스택 등 여러 파이썬 소프트웨어 개발에 참여하면서 배운 노하우를 정리한 것이 앞서 소개한 책이었습니다.
오픈스택 코드는 250만 줄(+a) 정도이고 대부분 파이썬으로 작성됐습니다. 줄리안 단주는 오픈스택 프로젝트를 통해 대규모 환경에서 쓰이는 파이썬 기반 대형 소프트웨어 개발에 대해 여러 경험을 하고 그 분야의 주요 개발자들과 의견을 나누면서 이 책을 쓰기에 이릅니다.

체급을 올린 파이썬
초창기 파이썬은 간단한 스크립팅이나 빠른 프로토타이핑에 어울리는 언어 정도로만 여겨졌습니다. 느리고 확장성이 부족하다고 했죠. 요즘은 상황이 바뀌었습니다. 거의 어디에서나 쓰인다고 해도 과언이 아닙니다. 월간 활성 사용자가 8억 명 규모인 인스타그램의 백엔드에 파이썬이 자리하고 있으니 파이썬을 오래 사용한 개발자들에게는 격세지감이 느껴질지도 모르겠습니다. 그런데 파이썬을 그냥 가져다 쓰기만 하면 저절로 인스타그램 같은 대형 서비스를 만들 수 있을까요? 물론 그렇지는 않습니다. 고려해야 할 기술적 이슈가 있고 파이썬 세계가 발전해 오면서 그와 관련된 해법 역시 하나둘씩 등장하기 시작했습니다. 이러한 내용을 정리한 것이 바로 이번에 소개하는 『실전 스케일링 파이썬 프로그래밍』입니다.

파이썬은 확장 문제를 어떻게 해결하나
이 책은 파이썬의 구조적이고 고질적인 문제인 GIL에서 비롯되는 CPU 확장 문제 해법을 시작으로 이벤트 처리, 큐를 이용한 분산 전략, 예외 처리, 잠금 관리, REST API 개발, PaaS 배포, 테스트, 캐싱 기법, 성능 프로파일링 등 파이썬 프로그램을 대규모 분산 환경에서 동작하는 데 필요한 주요한 주제를 다루고 있습니다. 이러한 문제들을 해결하는 데 유용한 각종 라이브러리와 프레임워크를 비롯해 그 사용 기법과 전략 역시 간결하게 정리되어 있습니다. 또 해당 분야 베테랑 개발자들의 인터뷰를 통해 조언을 들을 수 있는 것도 전작 『실전 파이썬 프로그래밍』에서 이어지는 이 책의 특징입니다.

전체 그림을 보고 한 걸음씩
물론 이 책이 실제 코드를 대신 짜 주지는 않습니다. 다만 파이썬으로 250만 줄은 아니더라도 수많은 서버에서 돌아가야 할 큰 애플리케이션을 만드는 개발자들이 겪게 될 문제와 해법을 한눈에 조망할 수 있는 것이 이 책의 특징입니다. 뭐가 필요한지 파악하고 필요한 만큼 습득하면서 나아간다면 개발이 오를 수 없는 거대한 산처럼 막막해지지는 않겠죠.
처음 코딩을 시작했을 때는 단순해서 좋았는데 어느새 점점 덩치가 커져 가는 파이썬 애플리케이션을 어떻게 감당할지 막막한 개발자들에게 일독을 권합니다. 다음 서점에서 구입하실 수 있습니다.

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

빠른 모바일 앱 개발을 위한 『React Native(리액트 네이티브) 2/E』

 

 

모바일 앱 개발의 새로운 패러다임, 리액트 네이티브
페이스북이 공개한 리액트는 자바스크립트로 작성되었고 웹 UI를 만들기 위해 태어났지만 웹이라는 틀 안에서만 동작하는 라이브러리가 아니라는 점이 가장 큰 매력인 듯합니다. 웹이라는 틀을 깨고 나온 첫 번째 결과물이 바로 네이티브 모바일 앱을 만드는 리액트 네이티브입니다. 리액트 네이티브는 HTML, CSS로 화면을 그리는 방식이 아닌 자바스크립트로 작성하고 브리지(bridge)를 통해 네이티브 코드를 동작시키는 진짜 네이티브 앱을 만들 수 있습니다.

자바스크립트로 잘 짜인 진짜 네이티브 앱
이 책 『React Native(리액트 네이티브) 2/E』은 iOS와 안드로이드에서 동작하는 모바일 앱 개발에 관한 가이드입니다. 자바스크립트와 리액트(React)를 활용하여 iOS 및 안드로이드에서 동작하고 진짜 네이티브로 렌더링되는 모바일 애플리케이션을, 기능적인 제약 없이 만들고 배포할 수 있게 도와줍니다.

예제 코드를 따라하며 네이티브 UI 구현
또한 카메라와 사용자 위치, 로컬 저장소 등 플랫폼에서 제공하는 기능을 리액트 네이티브에서 사용하는 방법, 인터페이스를 만들고 꾸미는 방법, 모바일 컴포넌트를 사용하는 방법, 디버깅을 위한 도구와 배포하는 방법 등을 예제 코드를 보여주면서 설명하고 있어 단계적으로 배울 수 있습니다. 서드파티 라이브러리나 자바, 오브젝티브-C 라이브러리를 활용하여 리액트 네이티브를 확장하는 방법도 다루고 있습니다.

발 빠른 업데이트 개정판!
현재 트위터에서 소프트웨어 엔지니어로 일하고 있는 저자 바니 아이젠먼(Bonnie Eisenman)은 1판에 이어 개정판인 이 책에서도, 빠르게 성숙해온 리액트 네이티브의 변화에 맞춰 재구성했습니다. 특히 리액트 네이티브와 함께 많이 사용되는 리덕스(redux)와 리액트 내비게이션(react-navigation)을 이용하여 하나의 완성된 리액트 네이티브 앱을 만들어가는 내용을 새롭게 추가했습니다. 또한 역자 이종은 님께서 0.55 버전을 기준으로 주석을 달아 주셨습니다.

이 책에서 다루는 내용입니다.

  • 리액트 네이티브에서 네이티브 UI 컴포넌트를 사용하는 인터페이스를 제공하는 원리
  • HTML 엘리먼트와 닮은 네이티브 컴포넌트 사용하기
  • 자신만의 리액트 컴포넌트 및 애플리케이션을 생성하고 스타일 적용하기
  • 리액트 네이티브가 지원하지 않는 API와 기능을 사용하기 위한 서드파티 모듈 설치하기
  • 특정 플랫폼만 지원하는 컴포넌트를 크로스 플랫폼 애플리케이션에서 사용하기
  • 리액트 네이티브 개발의 어려운 점과 이를 해결하기 위한 도구
  • 대규모 애플리케이션에서 짜임새 있는 UX를 구성하고 리덕스 라이브러리를 이용해 state 관리하기
  • iOS 앱 스토어와 구글 플레이 스토어에 배포하기

이 책을 추천하신 분들의 이야기입니다.

빠른 모바일 앱 개발을 위한 책
웹 개발자로 리액트를 처음 접했을 때 마치 오래전 루비 온 레일스를 처음 만났을 때와 비슷한 감흥을 받았다. 익숙한 것들을 무참히 깨뜨리고 새로 쌓아 올린 혁신적인 생각들이 리액트와 리액트 네이티브에 고스란히 녹아 있다. 이 책은 그런 리액트 네이티브의 멋진 아이디어를 가장 잘 전달해 주는 ‘리액티브(reactive)’한 책이라 말하고 싶다.
— 김석준, 유스풀패러다임 대표, 『레일스와 함께하는 애자일 웹 개발 1판』 역자

네이티브 모바일 앱 개발 안내서
자바스크립트는 지금 제2의 부흥기를 맞이하고 있다. 웹을 위한 간이 언어로 만족해온 유년기를 벗어나, 클라우드에서 IoT까지 본격적인 활약을 펼치고 있다. 그중 리액트 네이티브는 종래의 상식을 깨는 기발한 접근법으로 프로급 앱 개발마저 가능하게 했다. iOS와 안드로이드를 동시 지원할 뿐 아니라, 최근에는 Mac OS나 윈도우 쪽 개발도 가능해지는 등 생태계가 급팽창 중이다. 리액트 네이티브는 최신 자바스크립트 ES6/7과도 궁합이 좋은 리액트의 파생 버전인 만큼 이 책을 통해 제대로 배워두면 금상첨화일 것이다. 또한 자바스크립트로 네이티브 앱을 오랜 기간 개발해온 역자의 친절한 검토와 번역이 돋보이는 책이다.
– 김국현, 에디토이 리서치 스튜디오 대표

iOS 및 안드로이드 앱 개발에서 컴포넌트 사용법, 디버깅, 앱 스토어 등록까지 뚝딱!
리액트 네이티브는 모바일 앱 개발의 새로운 패러다임이다. 페이스북, 트위터, 넷플릭스, 에어비앤비, 세일즈포스 등 이미 수백 개 회사를 통해 검증된 리액트 기술에 기반을 둔 리액트 네이티브는 웹 페이지를 만드는 것만큼이나 간단하게 모바일 앱을 뚝딱 만들수 있게 해주는 모바일 앱 개발 프레임워크이다. 발표된 지 1년여 만에 깃허브의 인기 오픈 소스 라이브러리 10위권에 오른 리액트 네이티브의 가장 큰 장점은 빠른 개발 속도, 멋진 ‘개발자 경험’, 그리고 진짜 네이티브 UI의 구현이다.
자바스크립트와 리액트에 대한 기본 지식을 갖추고 있다면, 이 책을 통해 iOS 및 안드로이드 앱 개발, 주요 컴포넌트들의 사용법, 디버깅, 그리고 앱스토어 등록까지 모바일 앱 개발의 전체 사이클을 쉽게 따라 익힐 수 있을 것이다.
– 황대산, (주)어떤사람들 CEO

모바일 앱 개발을 시작하려는 프론트엔드 소프트웨어 엔지니어나 웹 개발자라면 모바일 앱 개발의 새로운 패러다임인 리액트 네이티브를 놓치지 마시길 바랍니다. 『React Native(리액트 네이티브) 2/E』은 다음 서점에서 구입하실 수 있습니다. 🙂

Yes24 | 교보문고 | 알라딘 | 인터파크