2-3년 전에 회사에 얼마 입사되지 않은 어떤 친구가 조심스럽게 나에게 물었다. 


Q : 왜 번역하시는 거에요? 돈 되는 거에요? 




나는 그 친구에 웃으면서 말했다.


A: 돈이 안되더라구요. 




그러자 그 친구는 정말 궁금한 얼굴로 나에게 해맑게 물었다.


Q : 그럼, 왜 번역하시는 거에요?




나는 답이 있었지만, 머리 속을 다시 정리하며 말하고 싶었다.


A: (잠깐의 침묵)





#--------- 생각 중-----




처음 내가 번역한 이유는 먼가 내가 먼가를 했다는 느낌(상패) 나 자존감을 세우기 위함이 있었다. 


40살에 큰 컨퍼런스에서 발표하고 번역을 시작했다. (번역하는데 머뭇거리던 출판사 실무자를 설득하기엔 컨퍼런스 발표가 효과적이었다)


영어 번역이 얼마나 재미있던지, 일년에 4권을 번역하기도 했다. 그렇게 몇 년동안 회사에서 일하고 밤에는 번역했다. 


번역서가 10권이 넘어가자 처음의 느낌은 온데 간데 없이 사라지고 말았다. 




가끔 나는 왜 나는 번역하고 있나 생각이 종종 들었다.


한 장에 얼마하는 그 공에 비해 좀 힘들다는 생각도 들기도 하고 1500페이지 번역하다 A형 독감에 걸리기도 했다. 간수치도 높아져서 병원도 가보기도 했다.


그래도 반드시 해낼 때 오는 기쁨이 오기도 하고, 왠지 영어보다 한글을 조금 더 사랑하게 되는 느낌이 생겼다.


때로는 어떤 번역자가 잠수 타는 바람에 내가 대신 번역을 진행하기도 했다.





10권의 번역서를 넘어가니 책 번역이 '노동'으로 많이 느껴지기 시작했는데, 어떤 기사를 보면서  마음이 달라지기 시작했다.


예전에 어떤 신문 기사를 본 적이 있었다. 


수도권이 아닌 지방에 사는 어떤 대학생이 인터뷰하면서 나온 말이었는데, IT 정보를 얻는 데 쉽지 않다고 했다. 인터넷이 있지만 정말 실무자의 환경이나 정보 같은  살아있는 정보를 원한다고 했다.


그 뉴스를 보면서 나에게 번역은 '사명' 같다는 생각이 들었다.  





나는 세상의 어떤 끝내주는 개발자가 알려주는 '기밀 정보'를 '전달'해 주는 사람이기에 먼가 생색내지 않아도 되고. 자연스럽게 정보를 주는 사람이 되는 것 같은 "새로움 느낌"을 받았다.







#--------- 생각 끝-----



나는 생각의 흐름을 멈추고 그 친구에게 얘기했다.



A: 내가 번역한 책은 누군가에게 희망이 될 수 있기에 번역하고 있어요..





아주 짧게 얘기했지만 그 친구는 알아 들은 듯, 못 알아 들은 듯 살짝 애매한 표정으로 나를 쳐다보았다.


나는 누군가에 필요한 책을 번역하고 있다는 생각 때문에 '노동'이 '아름다울 수 있는 무언가'가 되고 있다는 생각에 잘 참아낼 수 있는 것 같아.




====== 이 책을 출간하며 




드디어 도커 인 프랙티스가 나왔다. 출간 안 될 줄 알았는데, 출판사에서 많이 신경 써주신 것 같다.







도커 인 프랙티스 2/e 출간







http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161754734&orderClick=LAG&Kc=





이 책을 번역할 때는 아마존 평가는 1~2개 밖에 없었는데, 오늘 보니 20개나 있다. 


처음에는 내가 이상한 책을 추천했나 싶었지만 내(실무자) 관점에서 본 이 책은 확실히 좋은 책이었다.  (물론 다 좋을 순 없을 것이다)








이 책을 보고 도커에 대한 좋은 영감을 받으면 좋겠다.








교보문고의 출판사 서평이다.




★ 이 책에서 다루는 내용 ★

■ 지속적 통합과 배포
■ 쿠버네티스 오케스트레이션 툴
■ 클라우드 작업 흐름 간소화
■ 도커 스웜 모드
■ 최근에 소개된 모범 사례와 기술

★ 이 책의 대상 독자 ★

구조화된 코드를 개발하는 기능, 소프트웨어 개발 및 배포 프로세스 인식과 같은 기본적인 개발 기술과 개념을 이해하고 있다고 가정한다. 또한 핵심 소스 제어 저장소의 기본 지식과 TCP/IP, HTTP, 포트와 같은 네트워크 기본 사항도 알고 있다는 전제하에 설명했다.

★ 이 책의 구성 ★

16개 장이 5개의 부로 나뉘어 있다.
1부, ‘도커의 기초’에서는 먼저 도커를 소개하고 기본 도커 커맨드를 실행할 수 있도록 도커 이해의 토대를 마련한다. 그리고 2장에서 도커의 클라이언트-서버 아키텍처와 디버깅 방법을 설명한다. 디버깅은 도커 설정 문제를 식별할 때 유용하다.

2부, ‘도커와 개발’은 독자들이 도커에 익숙하도록 돕고 머신에서 도커를 최대한 활용하는 데 중점을 둔다. 3장에서는 도커를 쉽게 시작할 수 있도록 익숙한 가상 머신의 개념과 유사한 방식으로 도커의 기초를 설명한다. 4장, 5장, 6장에서는 도커 이미지를 빌드 및 실행하고, 도커를 관리하기 위해 매일 사용하는 도커 기술을 자세히 설명한다. 7장에서는 설정 관리 기술을 살펴보면서 도커 이미지를 심층적으로 빌드하는 주제를 살펴본다.

3부, ‘도커와 데브옵스’는 소프트웨어 빌드 및 테스트의 자동화에 도커를 사용하는 것부터 구축된 소프트웨어를 여러 장소로 배포하는 것까지 데브옵스 문맥에서 도커를 사용하는 부분을 다룬다. 3부에서 도커 컴포즈를 소개하고 네트워크 시뮬레이션 및 도커 네트워크 플러그인과 같은 고급 네트워크 주제를 다루는 도커 가상 네트워크를 설명하며 마무리한다.

4부, ‘단일 머신에서 클라우드까지의 오케스트레이션’에서는 컨테이너 오케스트레이션 주제를 다룬다. 단일 호스트에서 단일 컨테이너를 실행하는 방법부터 ‘운영체제로서의 데이터 센터’에서 실행하는 도커 기반 플랫폼에서 컨테이너를 실행하는 방법까지 설명한다. 13장은 도커 기반 플랫폼을 선택할 때 고려해야 할 부분을 추가로 다룬다. 도커 기반 플랫폼을 구현할 때 엔터프라이즈 아키텍트가 무엇을 생각하는 것인가의 관점을 안내한다.

5부, ‘상용 환경의 도커’는 상용 환경에서 도커를 효과적으로 사용할 수 있는 여러 주제를 다룬다. 14장에서는 컨테이너 내부에서 실행 중인 프로세스를 보호하는 방법과 외부에 노출된 도커 데몬에 접근을 제한하는 방법을 설명하는 중요한 보안 주제를 설명한다. 15장, 16장에서 상용 환경에서 도커를 실행하기 위한 실용적인 정보를 자세히 알려준다. 15장에서는 로그 저장부터 자원 제한에 이르기까지 컨테이너 문맥에서 기존 시스템 관리자 지식을 적용하는 방법을 설명한다. 16장에서는 만날 수 있는 도커 문제를 살펴보고 도커 디버깅 및 해결할 수 있는 단계를 제공한다.

부록에서는 가상 머신 내부와 윈도우 OS를 포함해 다양한 방법으로 도커 설치, 사용 설정의 세부 사항을 포함한다.

[추천사]
“도커를 사용할 때 매우 유용한 팁이 있다. 현장에서 유용하고 실용적이어서 실제 도커 이슈를 해결할 수 있다.”
- 아마존 고객

“읽기 쉽고 따라 하기 쉽다. 이 책을 읽으면 도커의 내부 동작 방식을 훨씬 잘 이해할 수 있다.”
- 아마존 고객

★ 지은이의 말 ★

2013년 9월, 해커 뉴스(Hacker News)를 탐색하다 ‘도커’라는 새로운 기술을 소개한 와이어드(Wired) 기사(http://www.wired.com/2013/09/docker/)를 우연히 발견했다. 기사를 읽고 도커의 혁신적인 잠재력을 깨닫게 되면서 점점 더 흥분했다.
10년 넘게 근무한 회사에서 소프트웨어를 빨리 제공할 수 있는 방법을 고민하던 차였다. 배포 환경은 비용이 많이 들고 시간이 오래 걸리며 수동적인 데다가 매력이라고는 찾아볼 수 없는 작업이었다. 지속적 통합(Continuous Integration)은 거의 없었고 개발 환경을 설정할 때는 인내심으로 버텼다. 내 직책에 ‘데브옵스 관리자(DevOps Manager)’라는 단어가 들어 있어 배포 문제를 해결해야 하는 특별한 동기도 있었다.
회사 메일링 목록에 열정으로 가득 찬 동료(동료 중 하나가 공동 저자가 됐다)를 모집했고 함께 스컹크 웍스(skunkworks) 팀을 만들었다. 베타 툴을 비즈니스 이점으로 전환해 VM 비용을 낮추고 소프트웨어 구축과 배포에 관해 새로운 사고방식으로 접근했다. 조직의 요구에 맞게 자동화 툴(ShutIt)을 구축하고 오픈소스로 공개했다.

도커는 효과적으로 해결할 수 없었던 많은 문제를 해결하기 위해 패키징됨과 동시에 유지 관리되는 툴이 됐다. 도커는 최고의 오픈소스로서 여가 시간을 활용하고 기술 부채를 극복하며 매일 학습하도록 도전 의식을 불러 일으켰다. 도커뿐 아니라 지속적 통합, 지속적 배포, 패키징, 자동화, 사람들이 빠르고 파괴적인 기술 변화에 대응하는 방법을 알게 됐다.
도커는 매우 광범위하게 사용할 수 있는 툴이다. 리눅스를 사용해 소프트웨어를 실행하는 곳마다 도커가 영향을 줄 수 있다. 도커의 범위가 소프트웨어만큼 넓기 때문에 도커라는 주제로 책을 집필하는 것은 어렵다. 도커 생태계는 소프트웨어 산업에서 근본적인 변화에서 발생하는 요구를 충족시키는 솔루션을 생산하는 데 정말 놀라운 속도로 진행된다. 그런 면에서 작업이 더욱 부담스럽게 느껴질 때도 있다. 시간이 지나면서 문제 및 해결책의 형태가 점차 친숙해져 우리의 경험을 책으로 전달하려 많이 노력했다. 내용을 이해하면 특정 기술과 비즈니스 제약 조건의 해결책을 파악할 수 있을 것이다.

개발자 모임에서 소통하면서 도커를 기꺼이 수용하려는 조직은 상당히 빠르게 효과를 봤음을 알게 됐다. 이 책은 데스크톱, 데브옵스 파이프라인을 거쳐 도커를 사용해 상용 환경에 배포하는 방법을 다룬다. 완전히 정통이라고 보기는 어렵지만 엔지니어로서 실용성을 담아야 한다고 생각하며 글을 썼다. 물론 돈을 절약할 때도 매우 실용적이어야 한다. 책에 실린 모든 내용은 실무 현장에서 얻은 실제 교훈을 기반으로 쓴 것이니 좋은 정보를 많이 얻길 기대한다.

이 책은 저마다 다른 상황에서 다양한 기술을 사용해 실제 도커 사용 예시를 보여준다. 다른 기술에 관한 지식 없이 이 책의 기술을 설명하려고 최대한 노력했다.
1부, 2부에서 도커의 기초 설명으로 시작해 단일 머신에서 도커를 개발하는 데 중점을 둔다. 3부에서는 데브옵스 파이프라인에서 도커를 사용해 지속적 통합, 지속적 배포, 테스트를 다룬다. 4부에서는 오케스트레이션을 통해 도커 컨테이너를 확장 가능한 방법을 살펴본다. 마지막 16장에서는 상용 환경에 도커를 실행하는 환경을 다루며 표준 상용 환경 작업, 무엇이 잘못될 수 있고 어떻게 대처해야 할지에 중점을 둔다.
도커는 광범위하고 유연하며 역동적인 툴이다. 도커 생태계에서 미래에 사용할 수 있는 툴과 기술을 확실하게 평가할 수 있는 능력을 제공하기 위해 실제 애플리케이션과 예시를 통해 중요한 개념을 전달하려고 노력했다.
도커가 우리의 삶을 더 편안하게 하고 심지어 재미있게 해주는 여러 방법을 담아 즐거운 여행으로 느낄 수 있도록 글을 썼다. 도커에 몰입해 전체 소프트웨어 생명 주기 동안 흥미로운 많은 소프트웨어 기술로 독자에게 자극을 주는 방법을 담았다. 이 책을 통해 도커 핵심 기술을 독자가 공유할 수 있기를 바란다

★ 옮긴이의 말 ★

요즘은 도커를 사용해 서비스로 활용하는 것뿐 아니라 툴, 테스팅, POC로 사용하는 경우가 많아졌습니다. 그만큼 도커는 점점 대중화되고 있습니다. 도커는 효과적으로 해결할 수 없었던 많은 문제를 해결하기 위해 패키징돼 유지 관리하는 툴로 사용되고 있습니다. 도커는 최고의 오픈 소스로서 여가 시간을 활용하고 기술 부채를 극복하며 매일 학습하도록 도전하게 만듭니다.


하지만 우리는 도커의 내부 구조를 얼마나 이해하고 있을까요? 저는 도커로 파이썬, 스칼라/자바 애플리케이션을 쿠버네티스 클러스터에 배포하고 운영한 적이 있습니다. 당시 “도커를 깊이 알지 않아도 다 돌아가는구나.”라고 생각했던 적도 있습니다. 하지만 결국 도커에 대한 얕은 지식으로 문제가 발생해 ‘삽질’할 때가 많았습니다. 단순히 커맨드만 안다고 도커를 이해했다고 말하기는 어려웠습니다.


이 책을 보고 나서 도커를 상대하는 것과 더불어 쿠버네티스도 이해되기 시작했습니다. 도커의 단점을 파악하니 도커의 보안 이슈를 이해할 수 있었습니다. 또한 마라톤/메소스 및 쿠버네티스와 같은 오케스트레이션 툴도 제대로 보이기 시작해 앞으로 더 잘 사용하고 싶어졌습니다.


저는 도커가 개발자와 데브옵스에게 평생 친구가 될 것이라고 장담합니다. 점차 도커는 대중화될 것이고 곳곳에서 사용될 것입니다. 이 책으로 도커를 깊이 알아가는 기회가 되면 좋겠습니다.
이 책은 VM에서 전환하기, 시스템을 마이크로 서비스로 나누기, 영속성 볼륨, 고급 이미지 구축 기술, 지속적 통합, 셀레늄 테스트, etcd와 confd, 네트워크 시뮬레이션, 보안, 모니터링, 성능 및 디버깅 등과 같은 컨테이너와 관련된 실무 이슈를 해결하는 내용을 담고 있습니다.


상용 환경에서 도커를 다루기 위해 중요한 설정 관리 및 오케스트레이션 툴을 설명합니다. make와 같은 전통적인 유닉스 툴, 도커 컴포즈, 헬리오스(Helios), 도커 웜 및 쿠버네티스와 같은 도커 기본 툴을 사용해 도커 파일(Dockerfile)을 관리하는 상세한 작업 예시를 소개합니다.


마지막으로 도커와 관련된 툴에 관한 버그와 단점을 실제로 작업을 수행할 수 있도록 실용적인 조언과 팁을 전합니다. 이 책은 도커 생태계에서 미래에 사용할 수 있는 툴과 기술을 확실하게 평가할 수 있는 능력을 제공하기 위해 실제 애플리케이션과 예시로 독자를 이해시키고자 합니다. 여러분도 도커에 몰입해 전체 소프트웨어 생명 주기 동안 흥미로운 소프트웨어 기술에 자극받길 바랍니다. 


Posted by '김용환'
,


(이젠 업무에 바빠서 책 번역 외에는 블로그 할 시간이 점차 사라지고 있다)


교보문고 홈 페이지의  IT 전문서 올해의 IP 책 - 마이크로 서비스 클라우드 분야를 봤더니,

내가 번역한 실무자 관점에서 다룬 마이크로 서비스 아키텍처 (2판)이 4위를 차지했다.

고생한 것 만큼 정당한 대우를 독자들에게서 받아서 너무 좋다. 

(이제서야 글을 봤고 어떤 사람에게도 부탁이 한적이 없다. 그만큼 의미가 있다!! )


1판 번역을 완료한 후 2판 번역까지 완료하고

거의 내 혼자 힘으로 (최종 편집까지) 꼼꼼하게 본 책이라 많은 기억이 남는 책이다. 


http://www.kyobobook.co.kr/eventRenewal/eventViewByPid.laf?eventId=84458



지금 번역 중인 Docker in Practice (2nd), Seeking SRE 책도 예쁘게 번역하리라..



Posted by '김용환'
,



내가 번역한 책 

"빅데이터 분석을 위한 스칼라와 스파크 대용량 빅데이터 분석과 머신 러닝까지 활용하는." 책이 대한민국학술원에서 선정한 2019 우수학술도서가 되었다. 


http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161752402&orderClick=LAG&Kc=







http://www.nas.go.kr/info/notice/view.jsp?NP_Code=10000043&NP_DataCode=20000014&NGB_Code=10002646&searchKey=NGB_SUBJECT&searchVal=&pg=2







출판사에서 도와주신 것 같다.



Posted by '김용환'
,


Ansible Up and Running 2nd 번역책이 드디어 2019년 6월 28일 출간되었다.





http://www.yes24.com/Product/Goods/74633507?scode=032&OzSrank=1


책소개

환경설정 배포가 손쉬운 자동화 툴 앤서블(Ansible)은 에이전트(Agent) 기반이 아닌 SSH 기반으로 SSH 연결을 통해 코드를 전송하고 스크립트를 실행한다. 베이그란트를 실험 머신으로 설정하고 앤서블과 연동되도록 설치 및 설정한다. 플레이북의 기능을 설명하고 한 대 또는 여러 대의 베이그란트 실험 머신에 파이썬 웹 애플리케이션을 배포한다. 앤서블의 기본 기능인 변수 및 팩트, 플레이, 롤, 태스크뿐 아니라 고급 필터, 룩업, 루프, 핸들러, 콜백 핸들러, 사용자 정의 모듈 등을 다룬다. 플레이북 디버깅 방법과 아마존 EC, 도커, 윈도우 호스트, 네트워크 장비에서 앤서블 사용 방법을 살펴보고 마지막으로 앤서블 타워를 설명한다. 『앤서블 시작과 실행』 은 리눅스 또는 유닉스 계열의 서버를 다뤄야 하는 사람들을 위한 책으로 시스템 관리, 운영, 배포, 설정 관리, 데브옵스(DevOps)라는 용어를 사용한 적이 있다면 여기에서 가치를 찾아야 한다. 또한 이 책은 처음부터 끝까지 읽을 수 있도록 작성됐고 이전 장을 기반으로 다음 장이 작성됐다. 주로 튜토리얼 형태로 작성됐기에 사용자의 컴퓨터로 따라 할 수 있다. 대부분의 예시는 웹 애플리케이션에 집중하고 있다.




역자 서문


저는 2014년에 네이버 주관 Deview에서 앤서블에 대해서 발표하고, 2015년에는 에이콘

출판사를 통해 국내에 처음으로 앤서블 번역책을 선보였습니다. 저는 앤서블이 많은 개발자,

데브옵스(DevOps), 시스템 관리자를 편하게 도와줄 것이라 믿었기 때문입니다. 그 믿음은

현실화되었고, 이제는 앤서블을 사용하지 않는 곳은 거의 없을 정도입니다.

서버에 배포와 관련된 에이전트를 설치하지 않고 단순히 서버 접근 권한과 앤서블만 있으면

작은 대수의 서버부터 수 백, 수 천대의 서버를 관리할 수 있습니다. 가상화, 클라우드

환경까지 다룰 정도입니다. 또한 멱등성, 단순한 설치, 설정 기능을 넘어서 애플리케이션

배포까지 담당하고 있습니다. 이제는 생산성을 향상시킬 수 있는 필수 툴이 되고 있습니다.

레드햇에 따르면 특정 회사에 대해 앤서블을 이용한 업무 자동화 컨설팅을 진행해 대응 및

소모 시간을 66~80%까지 단축했다고 합니다. 그만큼 운영 자동화 툴, 앤서블을 이용한

생산성 혁신은 매우 의미 있다고 할 수 있습니다.

이 책은 베이그란트를 실험 머신으로 설정하고 앤서블과 연동되도록 설치 및 설정합니다.

플레이북의 기능을 설명하고, 한 대 또는 여러 대의 베이그란트 실험 머신에 파이썬 웹

애플리케이션을 배포합니다. 앤서블의 기본 기능인 변수 및 팩트, 플레이, 롤, 태스크 뿐

아니라 고급 필터, 룩업, 루프, 핸들러, 콜백 핸들러, 사용자 정의 모듈 등을 다룹니다.

플레이북 디버깅 방법과 아마존 EC, 도커, 윈도우 호스트, 네트워크 장비에서 앤서블 사용

방법을 살펴봅니다. 마지막으로 앤서블 타워를 설명합니다.

이 책은 2017년에 출간된 책이지만 번역자가 최신 우분투 18.04, 베이그란트(Vagrant) 2.2.2,

파이썬 3.7, 앤서블 2.7.5 버전을 기준으로 설명하였고,

https://github.com/knight76/ansiblebook에 소스를 올려놨습니다.

이 책을 통해 즐겁게 앤서블을 배워가면 좋겠습니다.

Posted by '김용환'
,


몇 년 전에 카카오에서 함께 일한 charsyam(강대명 님 영어 이름)은 참 파이썬을 잘 했다. 물론 스칼라, 자바 모두 잘했다.


그런데. 루비로 만들어진 스크래퍼를 잘 다뤘다. 스크랩 관련 코드를 살펴보고 charsyam과 얘기하고 ㅎㅎ


og라는 것도 첨 알게 되고. 백엔드만 하다 보니 잘 모르는 것도 많았다.


특이한 timeout 현상에 대해서 charsyam과 얘기할 때 참 희열을 느꼈다. 




open api가 없으면 스크래핑해서 먼가를 구축하고 서비스 메싱 사용해서 원하는 것을 만들어내거나.


실제 스크래핑에 대한 법적 이해, 실제 구현에 대한 Scrapy 라이브러리를 살펴보니. 잼난다. 




파이썬 개발을 종종 하고 있지만, 스크래핑은 첨이라 즐거운 공부가 된 것 같다. 






이 책은 예시 싸이트를 두어서 테스트하기 좋다. 현행화가 되지 않은 부분은 코드를 수정해서 잘 동작되도록 했다. 


스크래핑에 대한 좋은 책이라 생각된다.





http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161752525&orderClick=LAH&Kc=#N






★ 옮긴이의 말 ★

내가 카카오스토리 개발팀에 일할 때 스크래퍼 툴에 이상한 매력을 느꼈다. 스크래퍼 툴을 사용해 웹을 스크래핑할 때 특정 태그 정보와 사진을 추출해서 사용자들이 스크랩 정보를 글을 작성하기 전에 미리 알 수 있게 하는 매력, 왠지 마력처럼 느껴지기도 했다.


도대체 내부는 어떻게 동작하는 걸까? 옆에서 같이 스크래퍼 툴의 코드를 고쳐보기도 하고 이슈가 생기면 동료들과 같이 보기도 했다. 그렇기 때문에 이 책을 번역하게 돼 매우 기뻤다.
우리가 자주 사용하는 SNS(카카오톡, 페이스북, 카카오스토리, 라인)를 살펴보면, 링크를 보낼 때 링크만 보내지 않는다. 적당한 정보와 사진이 같이 대화창 또는 피드에 노출된다.
사실 스크래핑 기술을 알면 쉽게 구현할 수 있지만 스크래핑 기술을 배우고 싶어도 서버 관리자가 스크래핑 기술을 쓰지 못하도록 제한을 거는 경우가 많다. 그래서 이 책은 정말 특별하다. 저자가 운영 중인 예시 웹 사이트를 기반으로 웹 스크래핑 기술을 배울 수 있기 때문에 마음껏 예시를 테스트할 수 있다.

이 책은 크롤링과 스크래핑이 무엇인지 설명하고 법적 이슈를 다루며 시작한다. 웹 사이트에서 데이터를 스크래핑할 수 있는 최고의 가이드를 제공한다. 저자가 운영하는 예시 웹 사이트를 기반으로 스크래핑 테스트를 진행할 수 있다. 정적 웹 페이지에서 데이터를 추출하는 방법, 레디스와 파일을 캐싱으로 사용하는 방법, 동적 스크래핑 및 정교한 크롤러를 개발하는 방법을 다룬다. 그리고 PyQt와 Selenium을 사용하는 방법, 캡차(CAPTCHA)로 보호되는 복잡한 웹 사이트에 폼을 제출하는 방법, 병렬 라이브러리를 사용하는 방법, Scrapy 라이브러리로 클래스 기반 스크래퍼를 생성하는 방법을 다룬다.
이 책은 독자가 파이썬에 대한 기본 지식이 있다고 가정하기 때문에 파이썬 언어에 대한 설명은 없다. 하지만 Golang, 자바, 스칼라 등과 같은 언어에 대한 지식이 있다면 도전해 볼 수 있을 것이다.
원서의 버전은 파이썬 3.4 기준이었지만 번역서에서는 최신 버전인 파이썬 3.7과 바뀐 예시 사이트 URL을 기반으로 예시 소스를 일부 변경했다.

이 책에서 스크래핑에 대한 지식을 많이 얻기를 바란다. 



* 원서 링크





https://www.packtpub.com/big-data-and-business-intelligence/python-web-scraping-second-edition




Python Web Scraping - Second Edition

Katharine Jarmul, Richard Lawson

7 customer reviews








Python Web Scraping: Hands-on data scraping and crawling using PyQT, Selnium, HTML and Python, 2nd EditionPaperback – May 30, 2017




Posted by '김용환'
,



13번째 번역책을 내어놓게 되었다. 나에게는 2018년 초 A형 독감을 안겨주었지만, 


아프기도 하고 포기하기도 싶었지만..


인내를 배우고, 또 인내를 배우며.


번역서 기준 1000페이지가 넘는 책을 내어놓게 되었다.




나에게 스칼라, 특히 스파크를 통해 해볼 수 있는 것이 무엇인지 잘 알려준 책이다. 


이미 회사에서 스칼라/스파크 개발을 통해 뼈를 깎는 고통이 무엇인지 알기에.. 이 책을 통해 조금이나마 나와 같은 분들이 그 시간을 빨리 지나가도록 도움을 주면 좋을 것 같다.




Aggregation, 많은 머신러닝 / 통계 책을 보면서 갈급했던 내용들(어떤식으로 엔지니어링(API화)한 것이 무엇인지)이 참 좋았다. 



머신 러닝에 대한 내용들이 조금 어렵긴 하지만 좋은 가이드를 주는 좋은 책이라 생각된다. 파이팅!!


엔지니어, 프로그래머도 스파크를 통해 머신 러닝/추천 시스템을 쉽게 개발할 수 있으리라 믿는다. 





http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161752402&orderClick=LET&Kc=#N





★ 옮긴이의 말 ★ 

하둡 맵리듀스(Hadoop MapReduce) 프로그래밍은 최근 몇 년 동안 잘 사용되고 있습니다. 또한 데이터가 저장된 하둡 분산 파일 시스템을 기반으로 하는 분석, 추천 프로그래밍은 하둡 내부에서만 가능했기에 개발자들이 하둡 인터페이스를 사용해 개발해야 했습니다. 그러나 일반 개발자가 이해하기 어려운 개념과 인터페이스가 있어 하둡과 하둡 맵리듀스를 잘 이해하는 개발자가 전문적으로 개발하곤 했습니다. 일반 개발자들이 쉽게 분석할 수 있도록 아파치 하이브(Hive) 등 다양한 하둡 관련 프레임워크가 사용되기 시작했습니다. 그러나 여전히 유연하지 않을 뿐 더러 하둡 맵리듀스 개발은 변화되지 않았고, 테스트 코드 개발 역시 쉽지 않았습니다. 하둡 프로그래밍의 약점은 대용량 데이터에 대한 실시간 처리입니다. 따라서 하둡 대신 실시간 데이터를 처리하는 메시징 큐(예, 카프카)를 사용하고 있습니다. 그러다 보니 스트리밍 처리를 처리하기 위해 아파치 스톰(Apache Storm), 스파크 스트리밍(Spark Streaming), 아파치 플링크(Apache Flink) 등 많은 오픈 소스가 쓰이고 있습니다. 
저는 현업 개발자이지만 다양한 NoSQL, 대용량, 비즈니스에 관심이 많습니다. 저는 스칼라/스파크를 사용해 애플리케이션을 개발했고, 메소스/마라톤 및 쿠버네티스에서 애플리케이션에서도 애플리케이션을 개발했습니다. 따라서 하둡 맵리듀스 프로그래밍은 스파크로 대체될 것이라는 굳은 믿음이 있습니다. 누구나 스칼라를 제대로 알 수 있다면 하둡 맵리듀스 프로그래밍을 스칼라 기반의 스파크 프로그래밍으로 대체 및 보완할 수 있을 것이라 확신합니다. 
저뿐 아니라 많은 개발자가 하둡 맵리듀스 프로그래밍, 기존 파이프라인 프로그래밍 및 머신 러닝 프로그래밍을 점차 스파크 프로그래밍으로 대체되고 보완하고 있습니다. 스트리밍 처리, 대용량 분석 처리, 추천 시스템 개발, 인메모리 병렬처리, 머신 러닝까지 여러 분야의 애플리케이션을 스파크 하나만 알면 어느 정도 진행할 수 있습니다. 따라서 람다 아키텍처를 스파크로 쉽게 처리할 수 있습니다. 스파크는 CNN과 같은 딥러닝을 지원하지 않지만 텐서플로(Tensorflow)와 쉽게 연동할 수 있습니다. 그리고 스파크는 자바, 스칼라, 파이썬, R 언어를 지원하기 때문에 언어에 대한 부담이 가장 덜합니다. 
특히 스칼라의 함수형 언어의 특징과 데이터프레임을 추상화한 스칼라 기반의 스파크를 활용함으로써 빅데이터를 논리적인 프로그래밍으로 쉽게 처리할 수 있습니다. 많은 개발자가 스스로 공부하며 빅데이터, 머신 러닝의 영역으로 진입하고 있는데 그에 함께 가고 싶습니다. 
이 책은 전반적으로 설명이 많고 그림이 풍부합니다. 특히, 집계 부분은 중요한 내용을 잘 설명하고 있습니다. 저는 이전부터 통계와 머신 러닝을 공부하고 있었는데 실제 스파크 애플리케이션에서 어떻게 연동되는지는 이 책을 통해 잘 이해하게 됐습니다. 머신 러닝을 처음 도전하시는 분에게는 이 책이 좀 어렵다고 느낄 수 있겠지만 많은 도움이 될 것입니다. 빅데이터 분석과 머신 러닝에 대한 많은 내용을 포함한 ‘전과' 같은 이 책이 여러분들에게도 현업에서 큰 도움이 되면 좋겠습니다. 
이 책은 원서와 달리 최신 2.3.2 버전으로 작성됐습니다. 기존의 원서에서 제공하는 코드의 오타와 호환성을 수정해 옮긴이의 github 저장소(https://github.com/knight76/Scala-and-Spark-for-Big-Data-Analytics)를 제공하고 있으니, 참고하시기 바랍니다.




원서  : Scala and Spark for Big Data Analytics: Explore the concepts of functional programming, data streaming, and machine learning

https://www.amazon.com/Scala-Spark-Big-Data-Analytics/dp/1785280848








Posted by '김용환'
,



Microservices A Practical Guide를 번역 완료했다. 



https://leanpub.com/microservices-recipes



https://www.amazon.com/Microservices-Practical-Guide-Eberhard-Wolff/dp/1717075908









처음에 클라우드 개발 팀에 합류할 때 처음에 많이 당황했었다. 


그동안 사내 장비만 가지고 Monolithic한 사고 방식으로 많은 개발 방식을 가지고 있었던 지라...개발 방법론이 달랐던 것에 당황했다. 자바 주도적인 개발에서 폴리그랏 마이크로 서비스 개발 방식으로 잘 배워야겠다라는 마음 가짐이 생겼다.


이전 조직에서 ruby, python, R언어도 나름 쓰고 있었지만. 클라우드 개발 팀은 (내 생전 처음 본) 오픈 소스들을 사용하고 있었고 특히 go언어, 고급스러운 python 코딩을 하고 있었다. 많이 그 동안 내가 알던 세계를 떠나오길 잘했다 라는 생각이 들었다.


클라우드/마이크로 서비스는 점점 많이 사용될 것 같다.

그리고 마이크로 서비스 개발 / 비동기 철학에 대한 많은 이해가 보편화될 것 같다.


그런 시대적인 상황에서 이 책을 만나게 되었다.


마이크로 서비스 아키텍처와 오픈 소스, 통신 방법, DDD에 대한 설명이 잘 담겨 있어서 개발자라면 꼭 봐야할 것 같다. 예시를 step-by-step 으로 천천히 설명하지는 않지만 예시 프로젝트를 실행하고 데모를 실행할 때 오는 좋은 충격은 너무 좋았다!!



처음 이 책을 번역해 달라는 출판사의 요청을 거절했었다. 영어 품질이 조금 좋지 않았지만 우려와 달리 생각보다 굉장히 Practical했고.. 저자의 마이크로 서비스 아키텍트에 대한 의도를 느낄 수 있어서 좋았다. 


(내 경험상) 'Spring 마이크로 서비스' 책 보다는 이 책이 더 나은 것 같다는 생각이 들었다. 


아키텍트, 개발자가 쓱쓱 보기에 괜찮은 책인 것 같다.










Posted by '김용환'
,




786 페이지의 스파크 데이터 분석 책을 번역을 완료했다. 출간이 될지는 모르겠지만. ㅎㅎ




https://www.amazon.com/Scala-Spark-Big-Data-Analytics/dp/1785280848





이 책은 스파크의 데이터 분석 외에, 머신 러닝을 설명한 책이다. 


스파크의 머신 러닝 설명과 api를 통해 조금이나마 머신 러닝을 알게 되었다.


이 책이 출간되어 스파크를 잘 모르는 개발자가 스파크와 머신 러닝을 조금이나마 쉽게 더 알면 좋겠다... 


Posted by '김용환'
,




Learning Apache Cassandra 2/e 번역을 2017년 10월에 마무리했고 출간을 기다리는 중이다. 


이 책은 1/e을 기준으로 cassandra 3.0 기준으로 정리한 책이다. 


워낙 내용이 좋고 SNS 기반 예제라서 카산드라의 장점(또는 DB 스키마)을 잘 살린 케이스이다.. 



Posted by '김용환'
,



올해 초에 번역을 완료했던 Shell Programming in Unix, Linux and OS X: The Fourth Edition of Unix Shell Programming (4th Edition) (Developer's Library) 4th Edition 책이 에이콘출판사에서 "유닉스, 리눅스, OS X 환경에서 사용할 수 있는 셸 스크립트 프로그래밍 입문 4/e"로 출간되었다.


https://www.amazon.com/Shell-Programming-Unix-Linux-Developers/dp/0134496000


http://www.acornpub.co.kr/book/shell-unix-linux-osx-4






이 책을 보면서 원리를 알기 보다 바로 사용하는 것에 급급했던 내 자신을 반성했다. 


서버를 하면 반드시 알아야 했던 셸 스크립트를 POSIX 기준으로 설명한 책으로 기초가 튼실한 책이다. 


서버 개발이나 셸 스크립트를 진행하는 개발자에게 좋을것 같다. 





옮긴이의 말

리눅스는 무료 운영체제지만 안정성이 좋아 많은 회사에서 서버 환경으로 사용되고 있다. 이제 리눅스를 쓰지 않는 IT 회사는 찾아보기 어렵다. 또한 개발과 운영을 동시에 진행해야 하는 데브옵스라면 리눅스는 필수로 알아야 할 운영체제가 되고 있다. 프로그래밍 언어를 사용해 개발된 애플리케이션을 리눅스에서 실행하고 관리하기 위해서는 간단하게 리눅스에 대한 기본 지식을 습득하고 셸 프로그래밍을 기본적으로 해야 한다. 게다가 최근 많은 IT 회사에서 개발자 직군에게 유닉스 계열의 OS X가 설치된 맥북을 지급하고 있다(또한 디자이너 직군과 개발자 직군뿐 아니라, 일반 기획자와 사무직 직군에게도 지급되고 있어서 맥의 OS X를 알아야 하는 상황이다). 따라서 서버 환경에서만 작업할 수 있는 환경이 로컬 환경에서도 동일하게 구축할 수 있게 됐다. 데브옵스, 클라우드, 도커 기술이 보편화하면서 특히 셸 프로그래밍은 기본적으로 알아야 할 내용이 됐다. 이제는 피해갈 수 없다. 선택이 아닌 필수 지식에 가까워서 부담스러울 수 있겠지만 독자 여러분들이 즐겁게 배우고 리눅스를 깊이 알아가면 좋겠다. 이 책은 셸 프로그래밍을 배우길 원하는 개발자, 시스템 엔지니어, 일반인에게도 도움이 된다. 게다가 이 책의 예제와 설명은 유닉스, 리눅스, OS X 모두를 지원하는 POSIX 표준 셸을 기반으로 한다. 따라서 이 책에서 배운 기술을 대부분의 유닉스 계열 운영체제에서 사용할 수 있다. 많은 유틸리티와 셸 프로그래밍 기술 등 현업에서 적용할 만한 내용이 이 책에 가득하다. 훌륭한 책인 만큼 여러분에게 추천하고 싶다. 나는 리눅스를 평생 친구로 생각해왔다. 특히 윈도우보다 리눅스를 좋아한다. 아마도 대학생일 때, 학교에 있는 유닉스 터미널에서 MUD 게임을 하면서 점점 유닉스 운영체제에 관심을 갖게 된 것 같다. 그리고 조금씩 리눅스 유틸리티와 셸 프로그래밍에 대해 배운 내용을 블로그에 정리하기 시작했다. 이전 직장에서는 리눅스를 조금 안다는 이유로 커널 디바이스 프로그래밍을 해볼 좋은 기회를 얻었다. 리눅스 유틸리티를 알고 리눅스의 동작 방식을 이해하고 때로는 커널 내부 구조를 공부하며 리눅스 지식을 넓히는 것이 좋았다. 아무래도 리눅스 운영체제가 내 말을 알아듣고 내가 원하는 동작을 하는 것이 좋았기 때문이리라. 이 책을 읽는 분들도 내가 느꼈던 희열을 함께 느끼면 좋을 것 같다. 파이팅!





--

(추가)


현재(2018년) 모 아카데미에서 교재로 쓰인다고 한다..


Posted by '김용환'
,