본문 바로가기
Daily Life/도서 리뷰

[도서 리뷰] 러닝 리액트(Learning React) (2판)

by bodi 2021. 7. 24.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

러닝 리액트(Learning React) - 최적의 리액트 코드를 작설하기 위한 모범 사례와 패턴

 

 

 

오라일리가 펴내는 책 표지에 등장하는 동물들은 대부분 멸종 위기이며, 우리 세계에서 중요한 동물이라고 한다. 그래서 표지를 더 오랫동안 보게되는 것 같다. 이번 OREILLY 표지 동물은 멧돼지다.

러닝 SQL에 이어서 이번에는 러닝 리액트 도서를 받아 리액트의 깊은 내용까지 이해할 수 있게 되었다.

 

 

 

 

 

 

 

최근 프론트엔드 개발자 모집공고를 보면 필수사항 또는 우대사항에 React.js가능자가 적혀있다. 그만큼 리액트는 중요한 기술 스택 중 하나이며, 현재 리액트를 배우고, 사용하는 입장에서 개념적으로 부족하다고 느꼈던 부분을 러닝 리액트를 통해 채워넣을 수 있었다.

리액트를 배우기에 앞서 리액트를 위한 자바스크립트에 대한 챕터가 구성되어있어서 친절하다고 느껴졌다.

이 책의 좋은점은 각 필요한 부분마다 간략한 예시와 실행했을때의 결과값을 보여줘서 이해가 쉽다는 점이다. 기초 뿐만아니라 비동기 자바스크립트의 내용까지 포함되어있어서 매번 이해하기 어려웠던 promiseasync/await에 대한 정확한 개념을 이해할 수 있었다. 자바스크립트 프로젝트에서 함수형 기법의 사용이 점점 늘어나는 추세인데, 이 책에서 제공하는 자바스크립트를 활용한 함수형 프로그래밍에 대한 챕터에서 고차 함수에 대한 내용이 주목을 끌었다. 화살표함수, promise, 스프레드 연산자 등 최근자바스크립트로 구현된 코드를 이해하기위해서는 필수로 알아야하는 지식들이 한번에 정리되어있다.

 

[ 함수형 프로그래밍 정리 ]

  • 명령형 프로그래밍 (imperative programming)
    • 코드로 원하는 결과를 달성해 나가는 과정에만 관심을 두는 프로그래밍 스타일
    • 코드안에서 어떤 일이 벌어지는지 코드를 읽는 사람이 더 잘 이해할 수 있게 돕기 위해 주석을 많이 달 필요가 있음
  • 선언적 프로그래밍 (delarative programming)
    • 필요한 것을 달성하는 과정을 하나하나 기술하는 것보다 필요한 것이 어떤 것인지를 기술하는 것에 더 방점을 두고 애플리케이션 구조를 세워나가는 프로그래밍 스타일
    • 코드 구문은 어떤 일이 발생해야 하는지에 대해 기술하고, 실제로 그 작업을 처리하는 방법은 추상화를 통해 아랫단에 감춰짐
    • 코드 자체가 어떤일이 벌어질지에 대해 설명하기 때문에 좀 더 추론하기가 쉬움
    • 추론하기 쉬운 애플리케이션을 만들어내며, 애플리케이션에 대한 추론이 쉬우면 애플리케이션의 규모를 확장하는 것도 더 쉬움

 

리액트는 선언적 프로그래밍

 

자바스크립트에 대한 내용을 배우고 나면, 리액트가 어떤식으로 작동되는지에 대한 중심 내용이 펼쳐진다.  앞부분에 나왔던 함수형 프로그래밍에 대한 내용은 리액트의 탄생과 연관이 되어있어 사전에 학습하니까 뒷부분의 이해가 더 수월했다. 

 

 

리액트 엘리먼트를 만들고, 브라우저에 렌더링을 하기 위해 ReactDOM을 사용한다. ReactDOM에는 리액트 엘리먼트를 브라우저에 렌더링하는데 필요한 모든 도구가 들어있다. 그리고 자식 엘리먼트를 만들기 위해 props.children을 사용하여 렌더링하는 등 리액트의 작동 원리에 대한 내용이 상세하게 나와있는게 특징이다. 리액트가 어떻게 작동하는지, 리액트 애플리케이션을 컴포넌트라고 불리는 재사용 가능한 작은 조각으로 쪼개는 방법에 대한 설명과 코드를 통해 작은 프로젝트를 진행할 수 있다.

글로는 이해하기 어려운 부분들은 이해하기 쉽도록 그림과 설명으로 구성되어있어서 처음 리액트를 배우는 사람에게도 이해가 쉬울 것 같다. 

[ 개인적으로 생각하는 이 책을 읽으면 좋을 대상 ] 

  • 자바스크립트가 무엇인지 알지만 비동기와 함수형 프로그래밍 등 깊은 내용을 모르는 사람
  • 리액트 기초 및 심화 과정의 작은 프로젝트를 진행하고 싶은 사람
  • 데이터를 관리하는 방법과 애플리케이션 버그 수정시간을 줄이는 방법에 대해 배우고자하는 사람
  • 앱을 서버 렌더링하는 방법에 대해 알고자하는 사람

 

위 도서를 한번 정독하고나면 자바스크립트, 리액트에 대한 내용은 마스터할 것이라고 생각한다.