데이터 과학 분야의 전설 ‘해들리 위컴’의 대표작 『R을 활용한 데이터 과학』

R을 활용한 데이터 과학
: 데이터 불러오기, 정리하기, 변형하기, 시각화하기, 모델링하기
해들리 위컴•개럿 그롤문드 지음 | 김설기•최혜민 옮김 | 495쪽

데이터 분석 기법의 바이블!
데이터 과학 분야의 살아있는 전설이자 R 사용자들의 영웅으로도 불리는 해들리 위의 대표작인 『R for Data Science』의 번역서를 소개합니다. 개럿 그롤문드와 함께 쓴 이 책은 저자들의 경험뿐만 아니라 R 커뮤니티의 많은 사람과 나눈, 수많은 (직접 및 온라인) 대화의 결과물입니다. 한국어판을 기다리시다 출판사로 문의하시는 분들도 참 많으셨는데요. 드디어 발간됩니다.

R로 시작하는 데이터 과학의 여정
『R을 활용한 데이터 과학』 은 R을 활용하여 원 데이터로부터 지식과 통찰을 끌어내는, 데이터 과학의 분석 기법을 알려주는 길잡이 책입니다. R, RStudio와 R 패키지 모음인 tidyverse를 중심으로, 데이터 분석을 빠르고 능숙하고 재미있게 작업할 수 있도록 설명합니다. 제목부터 왠지 이 책 한 권만 읽어도 R와 데이터 과학을 모두 알 수 있을 것 같은 느낌이 들지 않으신가요? 하지만 두 저자들은 ‘서문’에서 다음과 같이 조언합니다.

이 주요 도구를 사용하는 방법은 아래 그림처럼, 데이터를 불러오고(import) 정리한 후(tidy) 변형(transform), 시각화(visualize), 모델링(model)을 반복하여, 의미 있는 분석을 한 후에 이를 남들과 공유(communicate)하는 것을 말합니다.

데이터 과학자로서 사고하고 문제 해결책을 찾아가는 로드맵
두 저자는 앞서 밝힌 목표대로 데이터 과학의 전반적인 과정을 다루는 동시에 R의 주요 도구를 상세히 설명합니다. 데이터 과학 프로젝트의 전 과정을 단계별로 나누어 각 장마다 예제로 시작한 다음, 각 절의 연습문제를 통해 학습한 내용을 확인할 수 있도록 구성하여, 일련의 과정을 큰 그림으로 이해할 수 있도록 돕습니다. 처음 R을 접하는 독자들이라도 꾸준히, 차근차근 연습하고, 또 연습하기를 반복한다면 이 도구들을 사용하여 데이터 과학을 빠르게 수행할 수 있게 될 것입니다.

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

  • 길들이기: 데이터셋을 분석에 편리한 방식으로 변형하기
  • 프로그래밍: 데이터 분석 문제를 더 쉽고 명확하게 해결할 수 있는 강력한 R 도구 습득하기
  • 탐색하기: 데이터를 탐색하고 가설을 생성하여 빠르게 테스트하기
  • 모델링: 데이터셋에서 실제 ‘신호’를 포착하는 저차원의 요약 제공하기
  • 의사소통: 설명글, 코드, 결과를 통합하는 R Markdown 배우기

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

번역서도 웹북으로 부분 공개!
이 책의 저자들은 R 패키지 생태계를 함께 이루고 있으며, 책에서도 소개된 bookdown 패키지를 활용하여 책 내용을 웹북으로 제작하여 공개(https://r4ds.had.co.nz)해 놓았습니다. 한국어로 공역하신 김설기 님께서도 이 중 가장 실무에 도움이 될 만한 ‘2부 데이터 길들이기(7장~13장)’ 부분을 웹북으로(https://sulgik.github.io/r4ds) 공개해 주셨습니다. 미리보기 클릭! 😎

데이터 과학 입문자와 실무자 모두의 필독서
이 책은 데이터 과학에 입문하는 이들에게는 훌륭한 안내서가, 이미 어느 정도 알고 있는 이들에게는 그 내용을 체계적으로 정리해 줄 핵심 활용서가 될 것입니다.

『R을 활용한 데이터 과학』은 다음 서점에서 구입하실 수 있습니다. 🙂
Yes24 | 교보문고 | 알라딘 | 인터파크

함께 자라기

 

 

김창준 지음 | 인사이트 | 2018년 11월

직관의 배신

다음 문장들을 보고 거짓이라고 생각하는 게 있으면 골라보세요.

1. 일반적으로 경력이 많으면 전문성도 높다.
2. 수십 년간 같은 수련을 날마다 반복하면 실력이 는다.
3. 실수는 최대한 예방하는 것이 좋고 그것이 가능하다.
4. 업무 중 공유를 하면 신뢰가 쌓인다.
5. 전문가들은 문제를 풀 때 하향식 접근(문제 이해, 분석, 설계, 구현 등의 순서)을 한다.
6. 전문가들로 팀을 만들면 성공률이 높아진다.
7. 독립적으로 일하는 팀원들이 각자 높은 확률로 일을 마칠 수 있다고 말하면 우리 팀이 일을 제대로 마칠 확률도 높다.
8. 애자일로 성공하고 싶으면 작은 실천부터 시도하는 것이 좋다.
9. 더 좋은 방법론을 도입하면 우리의 성공률이 올라갈 것이다.

몇 개나 거짓으로 고르셨나요?

사실 위의 진술들은 모두 거짓입니다. 대부분 우리의 직관과는 반대입니다.

 

함께 자라기

《함께 자라기》머리말

 

무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없는 것 같습니다. 함께 해야 합니다. 내 주변 사람들과 함께. 내가 매일 부대끼는 동료들과 함께. 하지만 안타깝게도 우리는 함께 보다 각자 하는 것에 익숙하고, 또 그렇게 강요받아 왔습니다. 세상은 함께 해야 뭔가 이룰 수 있는데 왜 우리는 혼자 하는 것만 배울까요.

이번에 잘하냐 못 하냐 하는 것은 그렇게 중요하지 않습니다. 앞으로 기회가 수백, 수천 번 더 있다면 말입니다. 그런 경우 더 중요한 것은 지금 잘하냐가 아니라 지금 자라냐는 것입니다. 실제 바깥세상에서는 한 번의 판가름으로 나의 미래가, 우리의 미래가 갈리는 경우보다는 수백, 수천 번의 누적 위에 서서히 정해지는 경우가 더 많습니다. 하지만 우리는 왜 자라는 것을 훈련할 기회가 별로 없을까요.

그리고 무엇보다 이런 ‘함께’, 그리고 ‘자라기’를 매일매일 해야 한다는 생각을 별로 하지 못하는 것 같습니다. 한다고 해도 ‘계속 혼자서 해왔는데 가끔은 한번쯤 함께 해보자’, ‘지금은 바쁘니까 자라기는 나중으로 미루자’ 같은 인식 수준에만 머무르는 경우가 많습니다. 하지만 우리가 날마다 함께 자라기를 할 수 있다면 어떨까요?

저는 이 책을 통해 독자들이 “내가 정말 잘할 수 있을까?”라는 질문을 다음과 같은 질문들로 발전시켜 볼 수 있기를 기대합니다.

  • 내가 정말 자랄 수 있을까?
  • 우리가 정말 함께 자랄 수 있을까?
  • 우리가 정말 매일매일 함께 자랄 수 있을까?

마지막 질문에서 ‘우리’와 ‘함께’는 협력을 말하고, ‘자라다’는 학습을 말합니다. 그리고 ‘매일매일’은 그 접근 방법을 말합니다. 이 책에서는 이 단어들을 깊이 있게 살펴보려고 합니다.

저는 우리가 이 단어들에 대해 고민하고 노력한다면 나, 그리고 더 나아가 남을 변화시키는 것에 대해 조금 더 역량이 생기고 작은 성공들을 만들어 나갈 수 있다고 생각합니다. 그래서 스스로 변하고 싶지만 계속 실패하는 사람, 혹은 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 하루하루가 답답한 사람 들을 위해 이 책을 썼습니다.

사실 이 책에서 말하는 함께 자라기는 제 생각에 ‘애자일’이라고 하는 일하는 방법의 핵심이라고 생각합니다. 하지만 안타깝게도 많은 분들이 이런 핵심에 대해 생각하기보다 애자일의 지엽적인 실천법과 도구 들에만 집중하는 것 같습니다. 그래서 애자일을 사용하거나 도입, 확산하려고 했으나 좌절했던 분들에게도 이 책이 중요한 통찰들을 주지 않을까 기대합니다.

여러분의 함께 자라기 여정에 이 책이 도움이 되기를 바랍니다.

2018년 11월 8일 김창준

 

책 속으로

골프 퍼팅 연습을 하는데, 공이 어디로 가는지 전혀 보지 않고 1,000개의 공을 친다고 생각해 보죠. 이건 도대체 뭘 연습하고 있는 걸까요? 뭔가 연습이 되긴 하겠죠. 하지만 정확하게 퍼팅하는 부분은 연습이 되질 않을 겁니다. 내가 잘했나 못 했나 알지 못하면 행동을 조정할 수가 없죠. 그래서 학습에서는 피드백이 중요합니다. —p.28-29

 

가용시간을 늘리고, 쓸데없이 낭비되는 시간을 줄이고, 잠자는 시간을 줄이는 것이 더하기적 사고라면, 집단의 지능을 높이는 것은 곱하기적 사고입니다. 집단의 지능을 높이면 모든 지적 활동의 효율이 좋아지기 때문에 전반적인 개선(B 작업)이 일어나고, 특히나 개선 작업을 더 잘하게(C 작업) 되겠지요. 지금보다 속도가 더 날 수 있다는 겁니다. —p.38

 

우리의 일자리가 인공지능으로 대체되지 않으려면, 학습하기 힘든 환경에서 학습하기 힘든 주제들을 골라야 하는 상황이 된 것입니다. —p.47

 

자신이 업무 시간 중에 불안함이나 지루함을 느끼는 때가 대부분이라면, 실력이 도무지 늘지 않는 환경에 있는 겁니다. 더 무서운 건 점차 이런 환경에 익숙해지고 행동이 습관화된다는 점이죠. 그때는 자기 인식도 잘 되지 않습니다. —p.64

 

전문가도 1시간에 평균 3~5개의 실수를 저지른다고 합니다. 그런데, 왜 우리 세상은 그렇게 엉망이 아닐까요? 그것은 전문가들이 실수를 조기에 발견하고 빠른 조치를 취할 수 있기 때문입니다. 이렇게 “실수는 어떻게든 할 수밖에 없다. 대신 그 실수가 나쁜 결과로 되기 전에 일찍 발견하고 빨리 고치면 된다”는 겁니다. 이 태도를 실수 관리라고 합니다. —p.91

 

결국 결정하는 것은 사람입니다. 그 사람 마음에 드냐 안 드냐, 이겁니다. 안 들면 어떤 이유를 들어서든 반대하게 됩니다. 도대체‘누구’의 객관이냐 이거죠. 가만히 보면 우리는 그동안 우리의 객관만 신경을 쓰는 실수를 저질러 왔습니다. —p.139

 

두 개의 팀을 상상해 봅시다. 한 팀은 서로 잘 물어보지 않고, 물어봐도 “이것도 모르세요?”의 수준으로 대답해 줍니다. 반대로 다른 팀은 서로 코칭을 해주면서 함께 동기와 의지를 북돋워주고 같이 고민해줍니다. 어느 팀의 사람들이 성장할까요? —p.152

 

“일정 안에 가능한가요?” 모두 가능하다고 합니다. 7명이 각기 90% 확률의 확신을 갖고 있다고 답했다고 칩시다. …<중략>… 이 경우 확률을 계산하려면 0.9를 일곱 번 곱해야 합니다. 그러면 0.48이 나옵니다. 즉, 모든 개발자가 90%의 확률로 안심을 하고 있지만 전체 프로젝트 입장에서는 마감일에 맞출 확률이 동전 던지기에서 앞면이 나올 확률보다 안 나오는 것입니다. —p.181-184

 

 

《함께 자라기》는 다음 서점에서 구입하실 수 있습니다.

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

 

정오표

 

저자 김창준 님이 개발자들이 의도적 수련을 늘릴 수 있는 방법에 대해서 쓴 글은 <월간 마이크로소프트웨어> 2005년 4월호와 6월호에 연재되었고, 전문은 아래의 링크에서 확인할 수 있습니다. (월간 마소의 링크가 소실되어, 저자의 허가하에 아래 싣습니다.)

의도적 수련 1 – 고수, 무술과 프로그래밍에 대한 소고
의도적 수련 2 – 프로그래머에게 적합한 의도적 수련