본문으로 바로가기
반응형

 

SPA (Single Page Application)의 시대에, 아직까지 React가 대세라는 것은 누구도 부정하기 힘든 사실입니다. 후발 주자인 Vue가 React와 Angular의 여러 특징, 장점을 잘 흡수해서 훨씬 좋은 사용성을 가지고 있다는 의견도 있지만, 혹자는 오히려 React의 자유도를 따라가기 어렵다고 평하기도 합니다.

Meta를 등에 업고 있어 지속적인 지원과 메이저 업데이트를 기대할 수 있다는 점, 추후 React Native를 통해 앱 개발까지 병용할 수 있다는 점들 또한 상당한 매력 포인트 입니다.

 

반면, 가장 큰 단점으로 지적되는 부분이 바로 '배우기 어렵다'는 점인데요. 이를 일명 '러닝커브가 비효율적이다'라고 하기도 합니다. 즉, Vue보다 배우기 어렵고, 학습해야 하는 절대적인 콘텐츠가 더 많다는 것입니다.

 

저 역시, 과거에 여러 React 도서를 보면서 때때로 힘겨운 싸움을 해온 기억이 있습니다. 웹 개발의 근간이 되는 베이스 지식이 탄탄하지 못 해서인지, 일단 '어떻게 저떻게' 코딩을 하면 된다는 것은 알겠지만, 왜 그렇게 해야 하는지에 대한 의문들이 수없이 생겨나곤 했습니다. 이는 후반부로 갈수록 더욱 극심해져서, 한 챕터를 학습하고 나서, 학습한 내용의 대부분이 기억이 안 나는 지경에 이르기도 했습니다.

 

리액트를 비롯한 여러 프론트엔드 라이브러리를 강의하는 모 강사님은, 이를 두고 '과도하게 어려운 개발자 용어를 써가며 어렵게 설명하기 때문'이라고 평하기도 했습니다. 

 

리액트의 여러 핵심 기능과 구조들, 예컨대, 훅, State, JSX, 상태관리, 이벤트 핸들링과 같은 요소들은 모두 처음 리액트를 배우는 이들에게 생소한 개념입니다. 대부분의 프론트엔드 프레임워크(또는 라이브러리) 도서가 'HTML/CSS/JS를 정도만 알면 된다'는 전제를 깔고 있지만, 저는 사실 전제가 하나 더 깔려있다는 생각이 들었습니다. 바로 '챕터마다 나오는 새로운 개념과 콘텐츠를 한번 보면 이해하고, 사용할 수 있다'는 것입니다. 난립되는 여러 개념들을 쉽게 풀어서 설명하기보단, 그냥 무작정 쌓아올리는 느낌이 강했고, 결국 심화 학습은 오로지 학습자의 몫이 되는 책들이 많았습니다.

 

내용이 어렵다거나, 혼자 학습해야 하는 부분이 많다는 것이 문제는 아니었습니다. 사실 알아서 학습하고, 알아서 이해하는 것이 개발자의 덕목 중 하나이니까요. 문제는 "기초 교재"를 표방하는 책들이 이렇게 가르친다는 것이 문제였습니다. 책의 절반 정도를 쭉쭉 보다 보면, 이미 너무 많은 개념이 지나가서, 이후 파트를 이해하기 어려운 문제가 왕왕 발생합니다. 분명 훅, State, Props 같은 것들을 배우긴 배웠는데, 이걸 왜 이렇게 사용하는지 알 수 없는 것입니다.

마치 학창시절 '수포자'가 양산되는 것과 비슷한 느낌이었습니다.

 

이 책은 확실히 초심자를 위한 책입니다. 리액트를 다루는 데에 필요한 최소한의 개념과 내용은 모두 담고 있으면서도, 한편으로는 정말 최소한의 심화 학습만 진행하는 구조로 되어 있습니다. 

추후 리액트로 개발하면서 당연히 사용하게 될 Redux, Axios 등의 학습은 배제하여, 오로지 리액트의 기초를 쌓는 데에 중심을 둡니다. 이미 웹 개발 지식이 충분한 개발자가 '이 한권으로 리액트 개발의 모든 것을 끝내버리겠다' 라는 생각이 아니라면, 초심자에겐 오히려 이로운 구조입니다. 

 

한 가지 아쉬운 점은, 상대적으로 중요성이 낮은 예제 코드는 스크린샷으로 삽입되어 있다는 점입니다. 코드가 모두 책의 본문으로 들어가지 않아서, 실습 중에 일부는 스크린샷에 들어있는 텍스트의 가독성이 떨어지는 탓에 타이핑 하기 다소 어려울 수 있겠습니다. 이 부분은 책에 삽입된 Github 레포지토리의 코드를 이용하시길 추천 드립니다.

 

모쪼록, SPA 대세의 시대가 찾아온 후로 양산된, 전국의 React 포기자, 리포자 분들께 이 책을 강력 추천 드립니다.

 

 

본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2022> 프로그램의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.

반응형

댓글을 달아 주세요