티스토리 뷰

요즘 하던 일을 정리하느라, 너무 바쁜 나날을 보내고 있는데 그 덕에 포스팅 주기가 엿가락처럼 너무 늘어지게 됐네요. 될 수 있으면 1주 1포스팅 정도는 지키고 싶었는데...라는 안타까운 마음을 서두로, 이번 포스팅을 시작해보도록 하겠습니다.

 


이번 도서리뷰도 리액트 책의 리뷰다.

 

내돈내산을 인증하기 위한 사진

일전에 했던 리액트 관련 도서리뷰(생활코딩! 리액트 프로그래밍)가 입문자를 위한 도서였다면

이 책은 입문자보단 한 단계 더 나아간 사람들이 읽기 좋은 도서라는 느낌을 강하게 받았다.

 

여기서 왜 한 단계 더 나아간 사람들, 이라는 표현을 썼냐면

이 책에서 설명하고자 하는 리액트에는 함수형 프로그래밍에 대한 저변이 짙게 깔려있기 때문인데

실제로 책의 목차를 보면, 아래와 같이 초반부를 구성되어있다.

01. 리액트 소개
02. 리액트를 위한 자바스크립트
03. 자바스크립트를 활용한 함수형 프로그래밍
04. 리액트의 작동원리
[나머지 중략]

 

보통 이런 기술 서적은 1,2챕터를 활용해서 해당 기술의 소개와 이 기술을 익히는 데 필요한 환경설정, 그리고 베이스 지식을 언급하고 3챕터쯤부터 본격적인 썰을 풀어나가는데, 이 책은 4챕터가 되어서야 주제인 리액트에 대해 설명을 시작한다. 그리고 그 전에 챕터 하나를 소모해서 '함수형 프로그래밍'이라는 개념을 먼저 소개한다.

 

이를 따르듯 이 책의 예제들은, class에서만 사용가능한 라이프 사이클 메서드 활용 부분을 제외한다면 모두 function 형태로 정의되고있다(물론 코드적으로 function을 썼으니 함수형 프로그래밍이다, 라는 건 아니다. 뭐 그렇다고 또 완전 아닌 건 아니긴 하지만, 아닌 게 아닌 것 같은데 아니지만 아니라고 하기에 뭐한 그런 미묘함이 있다)

 

그 덕에 class를 활용해서 리액트를 입문하셨거나 공부하신 분들, 혹은 내가 입문서로 추천했던 생활코딩! 리액트 프로그래밍으로 발을 들인 사람이라면 내가 지금 리액트를 공부하고 있는 게 맞나? 그냥 자바스크립트 공부하는 느낌인데? 싶은 생각이 들수도 있지만...되짚어보면 그런 느낌을 받는게 당연하다. 프레임워크인 Vue와는 달리, 리액트는 라이브러리이고 어디까지나 우리는 자바스크립트를 기반으로 리액트라는 라이브러리를 도구로써 가져다가 활용하는 것이기 때문이다.

 

물론 갑작스레 등장한 함수형 프로그래밍이라는 낯선 개념에 멈칫 할 수도 있다. 리액트도 잘 몰라서 공부하려는 건데, 함수형 프로그래밍이라는 것까지 공부해야하는건가? 라는 생각에 머릿속이 복잡해질수도 있지만 굳이 겁부터 먹을 필요는 없다고 생각한다. 왜냐면 다행히도 이 책은, 독자들이 이 낯선 느낌을 받을 걸 예견이라도 한 것처럼 매우 자세히 그리고 매우 단계적으로 설명함으로써 읽는 이의 이해를 충분히 도와주고있기 때문이다.

 

내가 이 책을 보면서, 가장 마음에 들었던 점은 예제로 주어진 코드의 흐름을 글로 풀어서 설명해준다는 점이다.

개발 관련된 기술서적에서 코드는 필수이지만, 편린같은 코드의 흐름까지 설명해주는 책은 내 기억속을 뒤져봐도 손에 꼽을 정도이기 때문이다. 아, 여기서 내가 언급한 흐름은 Code Flow에 대한 것이다.

 

대부분의 서적은 예제로 사용한 코드의 목적을 설명하는데 중심을 둔다.

그래서 이 코드는 무엇을 위해, 어떤 동작을 위해 작성된 코드인지를 설명하고 넘어가기 일쑨데, 이 책은 예제로 활용한 코드의 목적과 더불어서 어떻게 흘러가고 동작하는지, 이 변수는 어떤 역할을 하기 위해 사용되었고 코드가 진행될수록 어떻게 변경되고 활용되는지, 호출된 메서드는 무엇을 위해 정의되었고 어떤 상황에서 쓰이는지에 대한 설명을 일일이 언급하며 물 흐르듯이 글로써 설명해주고 있다. 그래서 별도로 코드 해석을 위해 머리를 써가기보다는 자연스레 읽으면서 이해하게 되는 부분이 많았다.

 

그덕에 나는 기술서적을 볼 때면 이런 예제코드들마다 필기를 통해 주석을 작성하곤 했는데, 이 책만큼은 그 작업을 최소화 할 수 있었던 것 같다.

 

 

이제 장점을 설명했으니, 단점도 짚어보자.

 

우선, 책이 재미가 없다.

기술서적이 재미까지 있으면 그게 더 이상한 거 아닌가? 라는 생각이 들수도 있겠지만, 이 책은 앞서 말했던 것처럼 상세하고 쉽게 개념과 코드를 설명하고 있지만...그로인해 읽는 사람이 생각하는 여지를 많이 좁히고 있다. 어느 정도는 밀당을 통해서 코드와 개념을 글로 접했을 때 이 코드가 어떻게 동작하는지 상상도 해보고, 이 개념이 어떻게 활용될 수 있을 지 혹은 뭐가 다른지에 대한 상상을 부풀릴 수 있어야하는데 단계적으로 잘 짜여진 글을 읽다보면 어느새 챕터를 지나와있다. 

 

초반 챕터에서는 이런 장점이 극대화되면서 내용에 대한 이해를 쏙쏙 할 수 있어 좋았지만, 예제가 복잡해지고 개념이 난해해지는 중반부를 넘어가게되면, 책의 내용을 머릿속에 정립한다기보다 단순히 책에 있는 글자를 읽기만 한다는 느낌을 강하게 받았다. 물론, 앞서 말했던 장점마냥 읽기만해도 진도를 뺄 수 있는 건 좋은 점이라고 생각하지만 응용의 영역까지 뻗치고자 한다면 내 것으로 만드는 과정이 있어야 하는데, 의식적으로 책의 내용을 해석하려 하지않으면 그냥 해일에 쓸리듯이 밀려서 어느새 챕터를 넘긴 느낌에 읽은 지식이 겉도는 느낌을 받을 수도 있다. 

 

그리고 아무래도 번역서이다 보니 소소한 오탈자 및 어색한 번역이 왕왕 보인다.

예를들어, 코드에 Baked Salmon 이라고 값을 표기했는데 다른 부분에서 대뜸 '구운 연어'라는 표현이 있어서 응??? 스러웠던 순간이 종종 있었다. 또 Error Boundaries에 대한 표현을 오류 경계라고 직역한 부분도 개인적으론 조금 어색했지만, 이런 부분은 충분히 앞뒤 문맥을 보고 파악 할 수 있는 영역이고, 번역서가 가질 수 밖에 없는 흔한 토픽이기에 책을 보기 전에 미리 알고 계시면 좋을 것 같다.

 

 

그래서, 정리하자면...

이 책은 리액트 입문서로는 추천하기 어렵지만, 두 번째 혹은 세 번째 정도의 책으로는 적당하다는 생각이든다. 특히나 class가 아니라 function 위주로 리액트를 활용하시려는 분이라면 도움이 많이 될 것 같고, 물 흐르듯이 설명 읽는 걸 좋아하시는 분이라면 금상첨화 일 거다. 더불어 2판으로 개선되서 올해 7월에 나온만큼 최신 리액트 버전에 반영된 내용들과 앞으로의 리액트 방향성에 대한 언급도 주창하고 있으니, 관심있으신 분들은 쏠쏠한 인사이트를 얻을 수도 있을 것 같다.

 

 

 

댓글
최근에 올라온 글
Total
Today
Yesterday