얼마 전 주변의 아는 분께서 이번에 길벗에서 개발자 리뷰어 모집을 한다는 소식을 전해주셨고, 여러가지 책 중에서 내 마음을 이끄는 책은 당연 <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js> 였다.
나는 현재 JavaScript를 이용하여 Front-End와 Back-End 개발을 진행하는 개발자이지만, 동시에 머신러닝, 딥러닝 쪽에 관심이 많은 사람인지라, JS 라이브러리인 TensorFlow.js를 바탕으로 딥러닝을 소개하는 책이 가장 흥미로울 수 밖에 없었다.
그래서 길벗 18차 개발자 리뷰어 모집에 <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js> 책으로 신청을 하였고, 운 좋게 선정되어 책을 받아보게 되었다.
이 책의 특징
TensorFlow.js를 진심으로 다루는 책
내 개인적으로는 이 책의 가장 큰 장점으로 TensorFlow.js를 사랑하는 사람들이 정말 진심을 담아, 보다 많은 사람들이 TensorFlow.js를 썼으면 하는 바람에서 쓰여진 책이라는 점을 꼽고 싶다.
일반적으로 데이터사이언스계열은 Python 언어로 만들어진 라이브러리를 주로 사용한다. 딥러닝으로 치자면 구글에서 만든 TensorFlow가 그것이고, 페이스북에서 만든 Pytorch가 그것이다. 그러다보니 자연스럽게 온라인 뿐만 아니라 출판서적에서도 AI 관련 도서는 대부분 Python 라이브러리를 바탕에 두고 있다.
그러다보니 나는 앞서 말했듯 JS를 주로 사용하면서도 ML/DL에 관심이 있는 개발자이고, TensorFlow.js를 이전부터 알고 있는 사람이었음에도 불구하고, ML/DL을 혼자 깨작깨작 공부할때는 어쩔 수 없이 Python 라이브러리를 바탕으로 하는 도서를 통해 공부해 왔다.
뭐랄까 TensorFlow.js 를 다루는 책들의 퀄리티가 좀 못 미더운 것도 있었고, 그래도 내 기준에서 볼 만한 책들이 2020년 이후 몇 권(주로 카이 사사키가 참여한 책들) 출판되기는 했지만, 막상 구매하여 공부하자니 Python 라이브러리로 제대로 공부하는 것이 더 낫지 않나하는 생각이 들었기 때문이다.
근데 정말 놀랍게도 <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js>의 앞부분을 읽다보면 나의 이런 의구심을 알고나 있었다는 듯 대답해준다!
"왜 JS에서 ML을 돌려야하는지", "왜 TensorFlow.js가 다른 라이브러리에 비해 강점이 있는지"와 같은 점을 책의 서두에서 꺼낸다는 것은 내가 가지고 있던 문제의식과 의구심에 대해 이 저자들이 이미 캐치하고 있었다는 뜻이라고 생각한다.
앞서 살짝 언급한 다른 '볼 만한 TensorFlow.js 책'들에서는 별 다른 이야기 없이 곧바로 TensorFlow.js를 사용하는 방법만을 설명하거나, 브라우저에서 ML을 돌렸을때의 이점 정도를 서술하는 수준에서 그쳐서 좀 아쉬움이 있었고 나 스스로도 굳이 JS에서 ML/DL을 돌릴 필요가 있을까 싶었는데, <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js>은 이 논점을 직접적으로 도마 위에 올려놓고 다뤄주어서 너무 좋았다.
진짜로 JS만 알고 있으면 되는 책 (ML/DL을 하나도 몰라도 되는 책)
이 책의 표지에 보면 '자바스크립트만 알고 있다면 시작하기에 충분하다!'라는 말이 있다.
나는 이 말이 과장이 아니라고 생각하는데, 무작정 TensorFlow.js에 대한 설명으로 넘어가는 것이 아니라 머신러닝과 딥러닝에 대해 기초부터 차근차근 설명하면서 내용을 전개하기 때문에 말그대로 ML/DL에 대해 전혀 모르는 사람도 읽을 수 있는 책이다.
애초에 이 책의 앞부분에 보면 예상 독자로 ML쪽 지식이 전혀 없지만 입문을 하고 싶은 JS 프로그래머를 대상으로 한다. 따라서 예상 독자와 그 컨셉을 매우 충실하게 반영한 책인 셈.
브라우저에서 DL을 돌리고 싶어서 찾아봤더니 TensorFlow.js라는 걸 쓰면 좋다기에 TensorFlow.js를 다루는 책을 샀더니, ML/DL쪽 지식이 전혀 없어서 결국 TensorFlow 책이나 ML/DL 입문서를 새로 사게 되는 그런 불상사가 발생하지 않을 것이다.
어느정도로 기초부터 설명하는지 궁금할까봐 가져온 사진이다.
ML/DL 입문서에서 거의 필수로 등장하는 저 그림부터 다루고 있을 정도니, 밑바닥에서 시작하는 딥러닝 with TensorFlow.js라고 해도 될 정도.
믿고 보는 '박해선 옮김'
이공계열 서적의 가장 큰 문제 중 하나는, 슬픈 현실이지만, 번역에 있다. 그래서 이공계열 서적의 리뷰를 보다 보면 항상 꼬리표처럼 따라 붙는 것이 '책 내용은 좋은데 번역이 아쉽네요' 혹은 '원서로 보는 것을 추천합니다' 라는 말이다.
하지만, 그런 점에서 박해선 님의 번역은 믿고 볼 수 있는 번역이기 때문에 위와 같은 꼬리표를 걱정할 필요가 없다. ML/DL 분야의 번역도서에 관심이 있는 사람이라면 누구나 한 번쯤은 박해선님의 이름을 본 적이 있을 것이고, 조금만 과장을 보태자면 ML/DL 분야의 번역도서를 3권 이상 지니고 있는 사람이라면 반드시 그 중에 박해선님의 번역도서를 지니고 있다고 해도 될 정도로 활발한 활동을 하시는 분이며, 단순히 다작(?)을 하시는 것이 강점인게 아니라 번역 실력도 깔끔하기 때문에 말 그대로 믿고 볼 수 있는 박해선 옮김 이다.
또 박해선님의 번역에는 큰 특징이 하나 있는데, 문장이 모두 존댓말로 이루어져 있다는 점이다. 이 부분이 약간은 호불호가 갈릴 수는 있지만, 쭉 흐름을 타고 읽다보면 마치 누군가 앞에서 설명해주는 느낌을 받을 때도 종종 있기 때문에 내 개인적으로는 매력적인 번역체라고 생각한다.
최신 JS 문법 반영
이건 비교적 최근에 생긴 문제의식인데, JS책들을 읽다보면 JS 최신문법이 반영되지 않는 책들이 종종 보이는데 이 부분이 어느 순간부터 불편하게 다가오기 시작했다. 어떤 의미에서는 JS만큼 변화가 빠른 언어도 없기 때문에 이해되는 측면도 없지 않아 있지만, ES6가 도입된지가 언제인데 최근에 출간된 책임에도 아직도 예제코드에서 var를 남발하는 책들은 정말 불편하다. 심지어 ES6 문법을 설명하는 책에서조차 뒷부분 예제에서는 var가 나온다던가 하는 해괴망측한 책을 보면 책 정말 날로 써서 돈 쉽게 버네 라는 생각이 절로 들 정도.
그런 점에서 예제 코드에서 const, let, async, await가 보인다는 점이 좋았다. (어찌보면 너무 당연한건데도 여기서 감동을 받다니)
연습문제와 요약 챕터의 존재
연습문제와 요약 챕터는 사실 저자입장에서는 안써도 누가 뭐라하진 않을 부분이지만, 귀찮을 수 있는 부분이라고 생각한다. 하지만 독자입장에서는 이런 책의 구성이 학습효과를 증진시키는데에 큰 도움이 되는건 사실. 앞서 배운 내용을 Summary함과 동시에 Recap 할 수 있는 책의 구성이 좋았다.
의외로 개발도서에서 중요한 코드블럭의 컬러 인쇄
나의 경우에는 이 부분도 책을 선택하는데 있어서 매우 큰 고려요인이다. 개발자들이 쓰는 Text Editor는 보통 가독성을 위해 코드에 알록달록 색깔을 칠해주는데 그러다보니 색깔이 입혀지지 않은 코드는 읽기 불편한 것이 사실.
직접적으로 언급은 하지 않겠지만, 몇몇 출판사의 책들을 보면 그냥 흑백 인쇄로 된 책들이 자주 보이는데 이런 책들을 살 때는 한 번 더 고민하게 된다. 하.. 코드 읽기 더러운데 이거.. 라는 생각..
그런 점에서 길벗의 책은 코드블럭에 컬러를 입혀줘서 평소에도 좋게 보고 있다. <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js>의 경우 코드블럭에 3도 인쇄가 적용되어 코드를 읽기에 큰 불편함이 없다.
물론 코드블럭은 3가지 컬러이지만, 사진자료에 따라 풀컬러가 필요한 부분에는 풀컬러 인쇄가 적용되어 있다.
책 가장자리의 목차 색인 표시
이건 정말 내 개인 취향 저격부분이다.
나는 평소부터 문제집이든 교과서든 책을 볼 때, 이 디테일이 들어간 책을 정말 좋아하는데 <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js>에도 책의 오른쪽 페이지 가장자리에 목차 색인표시가 들어가 있어서 만족스러웠다.
개인적으로는 자꾸 들춰서 봐야하는 책의 경우, 이 색인표시가 있고 없고가 꽤 큰 차이를 유발한다고 생각하기에 교과서급의 책이라면 무조건 넣어줘야 맞는것 아니냐 라는 생각도 하는 편. 물론 출판비용상 이 표시를 넣기 위해 추가적인 부담이 어느정도 들어가는지 잘 알지는 못하지만, 그리 큰 비용 부담이 있을 것 같지는 않다. 그저 독자를 배려해주느냐의 문제라고 생각한다.
이 책의 아쉬웠던 점
사실 아쉬웠던 점이라고 할 만한 부분은 별로 없었다.
내 성격상 리뷰어로 선정되어 받은 책이기 때문에 더더욱 칭찬 보다는 아쉬웠던 점이나 고쳤으면 하는 부분을 날카롭게 직언하고 싶은 마음이 굴뚝 같지만, 그렇다고 억지로 깎아 내릴 수는 없지 않는가?
대표적으로 만약 목차 색인 표시가 없었다면, 목차 색인 표시를 넣어주면 좋을 것 같다고 말을 할텐데.. 이런 디테일마저 충분히 챙기고 있어서 간만에 발견한 깔끔하게 잘 나온 책이라는 생각이 들었다.
가격
다만 딱 하나 꼽자면 가격이 아쉽긴하다.
물론, 컬러 인쇄일뿐만 아니라, 종이의 질도 좋은 편이고, 위에서 언급한 여러 디테일적인 부분을 살렸으며, 다수의 저자가 참여한 책이고 이를 번역한 책이라는 점, 648쪽에 달하는 페이지 수, 상대적으로 희귀한 TensorFlow.js에 대한 정보(?) 등을 고려해보자면 결코 비싼 책은 아니라는 점에 동의한다.
하지만 위와 같은 점을 고려하지 않고 절대적인 기준에서 '책 한 권에 44,000원'이라고만 생각한다면 구매자의 입장에서는 약간 멈칫 하게 만드는 가격대가 아닐까 싶은 생각이 들었다.
사실 위와 같은 점은 책을 사서 읽으면서 알게 되고 느끼게 되는 부분도 있고, 책에 관심이 있는 사람이니까 알아보는 측면도 없잖아 있으므로... 일반 독자들에게는 충분히 부담스러운 가격일 수 있다고 생각한다.
총평
지금도 책을 읽고 있는 중이지만, 읽는 내내 드는 생각은 정말 마음에 드는 책이구나 하는 점이다. 나의 경우에는 불만족스러운 책을 읽으면 이 정도 책은 나도 쓰겠다! 라는 생각을 종종하는 편인데 <구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js>은 그런 생각이 전혀 들지 않았다. 그것이면 충분한 설명이 되지 않았을까?
이 포스팅은 길벗 출판사로부터 무료로 제공 받은 책을 읽고 본인의 솔직한 생각과 평가를 기록한 것임을 밝힙니다.
'Learning-Log > Computer Science' 카테고리의 다른 글
[ReactJS] React hook form, 모던 Form을 위한 치트키 (0) | 2022.08.17 |
---|---|
[NextJS] ReactJS를 품은 프레임워크, NextJS를 알아보자 (0) | 2022.08.08 |
[TS] Typescript의 enum, const enum, as const 에 대해 알아보자 (0) | 2022.07.18 |
[WSL2] Vmmem의 RAM 점유율 해결 방법 (0) | 2022.07.17 |
[ReactJS] react-router의 useParams 에 대해 알아보자 (0) | 2022.07.16 |