'Discovering Statistics Using R' 번역서 '앤디 필드의 유쾌한 R 통계학' 출간 소식 및 근황

류광, 2019/03/23 13:59
앤디 필드의 'Discovering Statistics Using R'를 번역한 '앤디 필드의 유쾌한 R 통계학' 드디어 나왔습니다.

소식이 좀 늦었습니다. 앤디 필드의 'Discovering Statistics Using R'를 번역한 '앤디 필드의 유쾌한 R 통계학'이 이번 달 초에 드디어 나왔습니다. 작년 2월에 탈고했지만 여러 사정으로 조판과 교정이 상당히 오래 걸렸습니다. 기다린 만큼의 성과가 있었으면 좋겠습니다.

잠깐 소개하자면, 통계학을 재미있게 공부할 수 있는 책입니다. 저자의 자학 개그와 괴상한 예제들이 거듭 등장하지만 통계학 자체는 상당히 진지하게 다룹니다. 그리고 모든 예제가 R이긴 하지만 R은 도구로 쓰일 뿐이고, R 프로그래밍 언어나 개발 환경 자체를 배우는 용도로는 조금 부족하다는 것이 제 평가입니다. 역자의 글을 인용하자면:

... 이 책에서 R은 통계학을 가르치고 통계 분석을 실행하기 위한 수단일 뿐입니다. 이 책이 프로그래밍 언어이자 개발 및 실행 환경으로서의 R을 체계적이고 포괄적으로 다루지는 않습니다. R에 대한 저자의 접근 방식은 “필요한 만큼만 배우고 배운 만큼 써먹는다”로 요약할 수 있겠습니다. 프로그래밍 언어를 그 자체로 공부하고 연구하는 것도 가치 있는 일이지만, 원하는 목적을 달성하기 위한 하나의 수단으로 취급하는 것도 얼마든지 의미 있고, 이 책의 취지에서는 아주 적합하다고 봅니다.

그리고 번역하면서 저는 아주 재미있었지만, 일부 예제가 일부 독자에게 좀 낯뜨겁거나 불쾌할 수도 있을 것 같은데요. 저자 앤디 필드의 말을 빌자면 이렇습니다:

... 예제들이 비위에 맞지 않고 혐오스럽거나, 내가 과학의 진지함을 훼손한다고 생각하는 독자에게는 미리 사죄한다. 그러나, 솔직히 말해서 항문에 뱀장어를 집어넣은 사람의 이야기가 재미없을 리 있겠는가?

(혹시 몰라서 첨언하자면, "... 집어 넣은 사람"은 저자가 아니라 예제에 등장하는 인물입니다....)

아쉽게도 이번에는 이 곳에서 독자 증정 이벤트를 진행하지 않습니다. 이 책 몇 권과 작년 폭염 때문에 타이밍을 놓친 처음 배우는 암호화 몇 권을 게임 개발자 공동체 게임코디에 증정했는데요. 조만간 게임코디 회원 대상으로 증정 이벤트가 열리지 않을까 예상합니다.

이 책에 대한 질문&의견은 http://occamsrazr.net/book/DiscoveringStatisticsUsingR 페이지에서 해주세요. 정오표 및 추가 자료도 그 페이지에 올라올 것입니다.


마지막으로 근황을 잠깐 말씀 드리면, 지난 달 중순에 저번 근황에서 언급한 Neural Networks and Deep Learnig: A Textbook의 번역을 마쳤고, 지금은 BlockChain by Example이라는 블록체인 개발서를 번역하고 있습니다. 코인 투자와는 무관한 개발자 대상의 실용서입니다. 비트코인과 이더리움이 중심이고 하이퍼레저도 조금 다루는데 예제 따라하는 재미가 있네요. 관련 소프트웨어의 버전 변화 때문에 예제들에 오류가 조금 있는데 본문을 직접 수정하거나 추가 역주로 보완하고 있습니다.

top
트랙백 0 : 의견 # + 0

클라우드플레어와 방문자 IP 주소

류광, 2019/02/04 18:55
GpgStudy에 클라우드플레어를 적용하면서 겪은 문제점과 그 해결책

제가 관리하는 닥북한국GpgStudy는 DDOS 방지 및 HTTPS 적용을 위해 클라우드플레어를 사용하고 있습니다. 닥북 한국에 적용한 것은 몇 달 되었고, GpgStudy는 며칠 전에 적용했습니다.

클라우드플레어를 적용하는 것은 기본적으로 상당히 간단합니다. 저는 신현석 님의 클라우드플레어와 HTTPS 적용을 참고해서 별 수고 없이 HTTPS 적용까지 마쳤습니다.

포럼과 게임 개발 소식에서 로그인이 풀리는 문제

그런데 GpgStudy의 경우에는 좀 더 손 볼 부분이 있었습니다. 우선, GpgStudy 포럼게임 개발 소식의 로그인이 자꾸 풀리는 문제가 있었습니다. 원래 한 번 로그인 하면 적어도 2주는 로그인된 상태로 남아야 하는데, 클라우드플레어를 적용하니 로그인하고 얼마 후에 다시 접속하면 로그아웃된 상태로 변했습니다.

원인과 해결책은 의외로 간단했습니다. 클라우드플레어의 작동 방식을 간단히 이야기하면, 클라이언트(웹 브라우저)가 웹사이트에 어떤 자원(웹페이지 등)을 요청하면 그것을 웹사이트가 있는 웹 서버가 아니라 클라우드플레어의 서버를 먼저 받아서 자신의 캐시에 있는 버전을 보내 주거나 실제 웹서버에게 해당 자원을 요청해서 전달해 줍니다. 어떤 경우이든 웹 서버는 클라우드플레어와 통신하며, 따라서 웹 서버가 인식하는 원격 클라이언트 주소는 항상 클라우드플레어 서버의 주소입니다.

포럼과 게임 개발 소식은 사용자를 식별할 때 여러 요소와 함께 원격 클라이언트 주소를 사용하는데, 구체적으로는 아파치 서버를 통해서 PHP에 전달된 REMOTE_ADDR 서버 환경 변수를 원격 주소로 사용합니다. 이것이 표준적인 방식인데, 클라우드플레어를 사용하는 경우 REMOTE_ADDR은 클라우드플레어의 주소이므로 사용자를 제대로 식별할 수 없었습니다.

다행히 이런 문제를 웹서버 엔진 개발자들도 인식하고 해결책을 마련해 두었습니다. 바로 HTTP_CF_CONNECTING_IP라는 또 다른 환경 변수인데요. 중간에 있는 CF는 아마 CloudFlare겠죠? 어쨌든, 이 환경 변수에는 실제 브라우저의 IP 주소가 들어 있으므로 이것을 사용자 식별의 한 요소로 사용하면 됩니다.

현재 포럼은 phpBB 3.2.x를 사용하는데, 다행히도 이 문제를 위한 CloudFlare IP라는 확장 플러그인이 있어서 간단하게 해결했습니다.

게임 개발 소식의 시스템은 제가 만든 것이라서 안타깝게도 누군가가 확장 플러그인을 만들어 주지는 않았지만, 그냥 한 PHP 파일에서 $_SERVER['REMOTE_ADDR']$_SERVER['HTTP_CF_CONNECTING_IP']로 바꾸는 것만으로 해결이 되었습니다. 게임 개발 소식 시스템은 GpgStudy에서만 사용하고 앞으로도 클라우드플레어를 계속 사용할 생각이라서 그냥 무조건 $_SERVER['HTTP_CF_CONNECTING_IP']를 사용하는 식으로 바꾸었지만, 불특정 다수에게 제공하는 시스템이나 환경이 바뀔 수도 있는 시스템이라면 다음처럼1 동적으로 처리하는 게 바람직하겠죠.

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
  $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];

}

Disqus 댓글 시스템과 관련된 문제

그밖에, 게임 개발 소식에서 Disqus 댓글 창과 기존 댓글들이 나타나지 않는 문제도 있었습니다. 크롬의 개발자 도구로 살펴본 결과, Disqus 댓글 창을 불러오는 JavaScript 코드 중 다음과 같은 줄이 문제였습니다.

dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';

클라우드플레어 적용으로 GpgStudy 전체가 HTTPS 사이트로 변했기 때문에 HTTPS 페이지에서 HTTPS가 아닌 JavaScript 파일을 요청하는 상황이 벌어졌고, 그것이 보안 원칙 위반이라서 브라우저가 요청을 거부한 게 문제의 원인이었습니다. 그냥 'http://''https://'로 수정하니 댓글 창이 다시 나타났습니다.

그래도 기존 댓글들이 나타나지 않는 문제는 바로 해결되지 않았는데, 댓글이 있는 페이지들을 Disqus가 다시 긁어가게 하면 된다는 이야기를 웹에서 찾아내고는 적용했습니다. 간단히만 이야기하면, Disqus의 해당 Admin 페이지에서 Community -> Migration Tools의 Redirect Crawler (Advanced)를 실행했는데요. 그게 효과가 있었는지 아니면 그냥 시간이 지나서 저절로 해결되었는지는 모르겠지만, 얼마 후에 게임 개발 소식들의 기존 댓글들(그리고 GpgStudy 메인 페이지의 댓글 개수들)이 정상적으로 나타났습니다.

top
트랙백 0 : 의견 # + 0

2019년 새해 복 많이 받으세요!

류광, 2019/01/09 00:17

제 번역서 독자 여러분과 블로그 방문자 여러분께 새해 인사드립니다. 2019년 새해 복 많이 받으시고 항상 건강하세요!

작년 한 해 보여 주신 관심과 격려에 감사드립니다. 올해도 열심히 번역하고, 블로그 글도 더 많이 쓰겠습니다.

올해 처음 나올 번역서는 예정보다 출판이 많이 늦어진 앤디 필드의 R+통계학 책(Discovering Statistics Using R)입니다. 번역서 제목은 아직 정해지지 않았고요. 아마도 2월 중으로 나오지 않을까 예상합니다.

지금은 어거왈의 Neural Networks and Deep Learnig: A Textbook을 번역하고 있고요. 그 후의 책들은 아직 계약이 마무리되지 않아서 공개할 수 없는데, 확정되면 근황 글을 통해서 알려 드리겠습니다.

작년 새해 인사 글에서 클라우드플레어를 이용해서 HTTPS를 한 번 적용해 보겠다고 했었는데 결국 실행은 하지 못했네요. 대신 닥북 한국 홈페이지에 클라우드플레어로 HTTPS를 적용하긴 했습니다. 그 경험을 살려서 이 곳과 GpgStudy에도 HTTPS를 적용해 보렵니다.

오랜만에 남는 스팀 키 뿌립니다. ?는 올해 연도의 일의 자리 숫자입니다.

(다른 분들이 시간 낭비 하지 않도록, 등록 성공하신 분들은 간단히 댓글 남겨 주시면 고맙겠습니다.)

다시 한 번 새해 복 많이 받으세요!

top
TAG 블로그
트랙백 0 : 의견 # + 0

근황 - 2018-12-15

류광, 2018/12/15 18:46
차루 어거왈의 Neural Networks and Deep Learning: A Textbook 번역 중.

본문 열기

top
트랙백 0 : 의견 # + 0

'심층 학습' 독자 증정 이벤트 당첨자 발표! (당첨자 분들 메일 확인하세요!)

류광, 2018/11/08 14:15
심층 학습 독자 증정 이벤트 당첨자 발표 및 문제 해설

본문 열기

top
트랙백 0 : 의견 # + 0

◀ PREV : [1] : [2] : [3] : [4] : [5] : ... [65] : NEXT ▶