brunch

You can make anything
by writing

C.S.Lewis

by 지은 x NULL Jul 09. 2020

[책리뷰] R 교과서(길벗)

한줄평 : 입문서는 나한테 어울리지 않지 - ★★★★

일러두기

[책리뷰] 처음 시작하는 R 데이터 분석 이후 R 책 두 번째 리뷰입니다. R을 자주, 익숙하게 사용하고 있으나 새로 나오는 책들을 입문서든 고급서든 가리지 않고 찾아보고 있습니다. 책을 볼 때면 아쉬운점, 단점들이 더 잘 눈에 띄지만 어떤 책이든 지난한 출간 과정에서 나름의 이유로 선택되어 출판이 된 거라고 생각하고, 차별화되는 장점 위주로 적어보려고 합니다.

가능하다면 다른 책들도 시간이 나는대로 리뷰를 남겨볼 계획입니다.(2년 전에도 똑같은 말을 썼었네요.)




첫인상

오랜만에 보는 길벗출판사 책입니다. 무작정 따라하기 시리즈로 익숙한 그 출판사죠. IT전문서 분야가 따로 있는지는 이번에 처음 알았는데, 어쨌든 편집은 예전 영어 말하기 참고서를 보던 마치 그 느낌입니다.(친숙하다는 뜻입니다.) 게다가 제목부터 '교과서'라니 R(알) 언어를 처음 첩하는 분들이 텍스트북으로 쓰기 좋아보입니다.

리뷰를 기다리는 책들과 오늘 다룰 R 교과서

- 두께가 가늠이 되실지 모르겠는데 620여 페이지로 IT 책 기준으로는 보통의 두께입니다.

- 올해 출간된 신간이고 원제 [Learning R Programming]의 번역서입니다.

- 부제는 '데이터 분석, R로 시작하자!'입니다. 데이터 분석을 시작할 때 R이냐 파이썬이냐 의견이 분분한데 사실 둘다 할줄 아는 것이 제일일 것이고 그 다음은 이미 익숙한 언어(가 있다면)겠지요.


내용 및 특장점

책을 볼 때는 항상 저자소개와 서문부터 보는 습관이 있습니다. 우선 저자가 쿤 렌(Kun Ren)이라는데 생소한 이름이었네요. R을 쓰면서 여러 패키지를 접하다보면 해들리 위컴, 그롤문드, 힐리 등등의 이름을 들어볼 수 있는데 본 책의 저자는 낯설었습니다-만 RStudio 사용자라면 꼭 써봤을 formattable 패키지 개발자라고 하는군요.(p.40) 저자의 명성이 책의 질과 비례하는 건 아니지만 내용의 깊이를 생각해볼 때 어느정도 참고가 되겠죠.


- 4장(~p.156)까지 초기 설치와 환경설정, 기본 문법에 대한 설명이 나옵니다.

대상독자는 저자(편집자)가 가장 잘 알겠죠.

책의 대상독자가 프로그래밍 언어나 관련 도구에 익숙지 않은 사람이라고 했는데(p.9) 4장까지 if else, switch, for 등등을 차근차근 익히다보면 첫 프로그래밍 입문서로도 가능해보입니다. 다만 '가능'하다는 것이지 개인적으로는 다른 언어를 어느정도 쓸 줄 아는 분들이 읽을 때 더 수월하게 R을 익힐 수 있을 듯하네요.

그리고 이미 코딩 언어에 능숙하더라도 주의해서 봐야할 것들이 있는데, <-과 = 기호에 대해 자세히 설명해주고 있습니다.(4.1절)


- 6장(~p.232)까지는 기본적인(언어별 특성이 있지만 대부분 공통인) 내용입니다.


- 7장에서야 드디어(!) iris 데이터셋을 불러옵니다.(p.246) 시각화와 데이터 분석 관련 내용이 10페이지쯤 이어집니다. (데이터분석과 머신러닝 등을 깊게 알고 싶다면 교과서가 아닌 '참고서'를 더 봐야할 테니 문제라고 생각지는 않습니다.)


장단점

추천하고 싶은 점

- 이미 R을 어느정도 알고, 실무에서 사용하는 경우라도 한번도 제대로 배운 적이 없다면 R교과서를 한 번 읽어볼만 합니다. 저도 필요에 의해 언어를 쓰다보니 체계 없이 마구잡이로, 그때그때 필요한 패키지와 함수 위주로 사용하는 경향이 있었는데 한번 정리가 되는 느낌입니다. 여담으로, 목차만보고 4장까지는 건너뛰려다가 다 읽어봤네요. 블로그나 웹검색을 통해 단편적으로 R을 익히신 분들이라면 도움이 되는 내용이 많습니다.

- 코드에는 정답이 없고 방법이 다양합니다. 다른 언어도 마찬가지겠지만 R언어는 특히 패키지가 다양하고 동일한 결과를 내지만 문법이 다르거나 동작이 다른 함수들이 많은데 코드를 한줄한줄 자세히 알려줍니다.(예: 문자열 다루기, plot/ggplot)

- 8장 [R 속으로]부터 심화 내용이 이어지는데 Environment 등 몰라도 일단 사용이 가능한 내용들입니다. 단, 필요한 내용이고 중요한 내용이라고 생각하고, 이점이 다른 입문서와 차별화되는 점입니다. 이후 데이터베이스, 웹스크래핑(크롤링), 심지어 Shiny까지 맛보기로 다룹니다.


아쉬운 점

- 번역서이다보니 구미에 맞지 않는 문장들이나 어쩔 수 없는 부분도 있지만 특정 용어들은 좀 더 정확하게, 혹은 상세히 풀어주었으면 좋았을 듯합니다.

evaluate 즉 eval을 평가라고 옮겼는데(예: x를 평가하면 여기 연결된 값을 얻게 된다) 어떤 뜻인지 친절하게 역주(p.101)로 설명해주고 있으나 보다 자연스러운 쪽으로 번역이 되었으면 하는 아쉬움이 남습니다. '요인', '기호' 등 사실 이러나 저러나 큰 상관 없지만 '교과서'란 이름에 걸맞게, 학생들이 공부하면서 검색해볼 수 있도록 조금 더 자세하면 좋겠습니다.


제언

앞뒤 표지엔 꽤 많은 정보가 담겨있습니다.

- 마치 문제집 ㅇㅇ의 정석처럼 연습문제나 예제가 있었더라면 더 교과서스러웠을 텐데 이 역시도 번역서의 한계였겠거니 생각합니다. 가령 5장 수학함수 등은 책을 읽을 때는 알 것 같기도 한데 정말로 이해하고 있는지 잘 모르겠다는 생각이 들더군요. (대학교재로 만들어진 책이나 입문서들에선 챕터 후반에 문제를 담는 경우가 많습니다.)


- 마지막장을 덮고 나서야 본 뒷표지에 책을 읽으면서 들었던 생각들이 적혀있었네요. "R 기초부터 고성능 컴퓨팅까지 R의 모든 것을 담았다!", "고급 프로그래밍 기법까지 폭넓게 경험하자"

물론 모든 것을 담은 바이블은 아닙니다. 이 책을 읽고 나면 다음에 무슨 책을 봐야할지 스스로 알 수 있을 정도의 수준이 되는 길잡이같은 책입니다.


추천 독자

- R을 쓸 줄은 알지만 차근차근 더 배워보고 싶다면...

- 새로운 것을 배울 때 혹은 학창시절 공부할 때 '교과서' 속에 답이 있다고 믿는다면...

- 입문서든 바이블이든 R 관련 책은 딱 한 권만 사야된다면... (이 이상의 고급기법은 웹 검색으로 해결)


한줄평 및 별점


(아무것도 모르더라도) 입문서는 나한테 어울리지 않지 - ★★★★




개발자 리뷰어로 책을 제공받아서 읽고 적었습니다.

주관적인 감상을 객관적으로 쓰고자 했는데 모쪼록 도움이 되었으면 좋겠네요.


오타 : sprint() -> sprintf(), 팁 : rm() 뒤에는 gc()로 정리해주는 게 좋습니다.

-.null

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari