책 리뷰 : Julia for Data Analysis
이 책의 저자는 DataFrames.jl의 메인 개발자이다.
이 분야의 진정한 실력자 중 한 명이라는 의미이다.
이 책의 장점은 Julia언어로 하는 데이터 분석에 대한 거의 모든 내용이 다 포함되어 있다는 점이다.
이 책의 단점은 사소한 디테일, 잘 안 쓰는 편의 문법들, 실제 데이터 분석 작업에 불필요한 내용등이 혼재되어 있어서 실제 데이터 분석 작업에 많이 쓰고, 중요한 내용에 대한 초점이 흐려지는 부작용이 있다는 점이다.
저자의 의도는 제한된 분량 안에 최대한 많은 내용을 집어넣어서, 독자에게 최대 효용을 선사하려는 의도였던 것 같은 데, 읽고 있노라면 빽빽하게 나열된 온갖 디테일과 과도한 곁가지 때문에 정작 중요한 내용은 기억이 안 난다.
(챕터 말미마다 요약 정리해 주는 데, 이런 단점을 보완하는 데 어느 정도 도움이 되기는 한다.)
그렇지만, 정말 많이 쓰고 중요한 내용과 잘 안 쓰는 사소한 디테일을 구분하는 판단력을 가지기 위해서, 우선 다른 입문서로 Julia언어와 데이터 분석에 대해서 어느 정도 익숙해 진 이후에 읽는 게 좋은 것 같다.
기본적인 것은 익숙해 진 후, 좀 더 깊이, 좀 더 디테일하게, 속속들이 모든 것을 알아보고 싶을 때는 이만한 책이 없을 것 같다.
Julia언어 자체 입문서로는 '줄리아 프로그래밍'(https://kmuh.tistory.com/179)이 좋은 것 같고,
Julia언어로 하는 데이터 분석 입문서는 'Julia Data Science'(https://juliadatascience.io/)가 괜찮은 것 같다.
(다만, Julia Data Science는 한글 번역이 안 되어 있으며, 한글로 된 Julia언어 데이터 분석 입문서는 아직 마땅한 게 없다.)
과도한 (어쩌면 불필요한) 디테일의 사례로 11장에 GroupedDataFrame을 직접 다루는 내용이 장황하게 나온다.
split-apply-combine 프로세스의 split에 해당되는 groupby함수의 결과물인 GroupedDataFrame은 이후 combine함수의 입력값으로서나 의미가 있지, GroupDataFrame 그 자체를 직접 다루는 게 무슨 의미가 있는 지 모르겠다.
일반적인 경우에는 이 책을 읽는 목적이 '데이터 분석'을 배우는 목적이지, 그 도구에 불과한 DataFrames.jl의 온갖 내부 디테일을 아는 게 목적은 아닌 데 과한 느낌이 있다..
과도한 곁가지 사례로 12장에서 DataFrame의 mutate를 설명하는 와중에 Zip압축화일 해제법, SHA256 해쉬 사용법, Graph.jl패키지 사용법, 성능 최적화 기법까지 온갖 내용이 뒤섞여 있는 것을 들 수 있겠다.
그래서, 읽은 후 가장 중요한 DataFrame의 mutate 방법에 대한 기억이 흐릿하다.
이런 식의 서술은 DataFrame 사용법을 배우려는 목적으로는 부적합하고, DataFrame 사용법을 숙지하고 있는 상태에서 데이터 분석 작업에 적용된 실제 사례를 알아보고자 할 경우에 유용할 것이다.
이런 식으로 과다한 디테일과 곁가지가 너무 많아서 중요한 내용에 대한 집중력을 잃기 쉽다.
이 책은 '자잘하지만 숨겨진 보석'과 '불필요한 혼동 유발 인자'가 뒤섞여 있기에 스스로 취사선택할 수 있는 판단력이 필요하고, 입문서를 통해서 큰 흐름을 알고 있어야 이게 가능하다.
결론적으로, 이 책은 입문서로 추천하지는 않지만, Julia언어 데이터 분석에 어느 정도 익숙해진 후 언젠가 한 번은 읽어볼 만한 책이다.