품목정보
출간일 | 2021년 06월 25일 |
---|---|
쪽수, 무게, 크기 | 524쪽 | 173*230*35mm |
ISBN13 | 9791165920715 |
ISBN10 | 1165920719 |
출간일 | 2021년 06월 25일 |
---|---|
쪽수, 무게, 크기 | 524쪽 | 173*230*35mm |
ISBN13 | 9791165920715 |
ISBN10 | 1165920719 |
리액트와 테스트 코드를 동시에 최근 서비스를 개발하기 위해서는 동작하는 프로그램을 작성하는 것 이외에도, 해당 서비스를 안정적으로 운영하고, 발생할 수 있는 버그를 발견할 수 있도록 테스트 코드를 많이 작성하고 있다. 이 책에서는 리액트를 사용하여 웹 애플리케이션을 개발하는 방법뿐만 아니라, 리액트 프로젝트에서 테스트 코드를 작성하는 방법, 그리고 테스트 주도 개발 방법론을 활용하는 방법에 대해서도 다루고 있다. 리액트로 서비스 개발뿐만 아니라 안정적인 서비스를 운영하기 위한 테스트 코드 작성에 대해 고민하고 있다면, 이 책이 큰 도움이 될 것이다. 이 책의 특징 - 리액트를 통해 웹 애플리케이션을 개발하는 방법을 공부할 수 있다. - 실전에서 많이 사용되는 타입스크립트, styled-components 등도 함께 공부할 수 있다. - 리액트 뿐만 아니라, 테스트 코드 작성법과 테스트 주도 개발 방법론에 대해서 살펴볼 수 있다. 이 책이 필요한 독자 - 리액트를 처음 공부하는 개발자 - 리액트에서 테스트 코드를 작성하는 방법을 알고 싶은 개발자 - 리액트에서 테스트 주도 개발 방법론을 활용하는 방법에 대해서 알고 싶은 개발자 * 소스코드 다운로드 https://github.com/bjpublic/reactdd |
1 리액트란? 1.1 자바스크립트의 역사 1.2 리액트의 특징 1) 가상 돔 2) 단방향 데이터 바인딩 3) JSX 4) 선언형 프로그래밍 1.3 요약 2 리액트 개발 환경 2.1 맥 개발 환경 설정 1) 홈브루 설치 2) 노드 설치 2.2 윈도우 개발 환경 설정 1) 초코렛티 설치 2) 노드 설치 2.3 리액트를 시작하는 방법 2.4 create-react-app 2.5 요약 3 리액트의 테스트 - Jest 3.1 Jest의 장접 1) 제로 설정 2) 스냅샷 3)모의 객체 4) 테스트 코드의 분리 5) 간단한 API 3.2 프로젝트 준비 3.3 Jest 설치 3.4 사용 방법 3.5 Matcher 1) toEqual 2) toBeTruthy, toBeFalsy 3) toContain 4) 기타 3.6 코드 커버리지 3.7 요약 4 리액트 테스트 - react-testing-library 4.1 react-testing-library 4.2 react-testing-library의 장점 4.3 프로젝트 준비 4.4 react-testing-library 설치 4.5 사용 방법 4.6 요약 5 나의 첫 리액트 프로젝트 5.1 타입스크립트 5.2 styled-components 5.3 절대 경로로 컴포넌트 추가 5.4 Prettier 5.5 요약 6 Props와 State 6.1 Props와 State란 6.2 프로젝트 준비 6.3 개발 1) App 컴포넌트 2) Button 컴포넌트 3) Input 컴포넌트 4) ToDoItem 컴포넌트 5) State 6.4 테스트 1) Button 컴포넌트 2) Input 컴포넌트 3) ToDoItem 컴포넌트 4) App 컴포넌트 6.5 요약 7 클래스 컴포넌트 7.1 클래스 컴포넌트 7.2 프로젝트 준비 7.3 개발 1) Button 컴포넌트 2) Input 컴포넌트 3) ToDoItem 컴포넌트 4) App 컴포넌트 7.4 라이프 사이클 함수 1) constructor 함수 2) render 함수 3) getDerivedStateFromProps 함수 4) componentDidMount 함수 5) shouldComponentUpdate 함수 6) getSnapshotBeforeUpdate 함수 7) componentDidUpdate 함수 8) componentWillUnmount 함수 9) componentDidCatch 함수 10) 호출 순서 7.5 테스트 7.6 요약 8 Context API와 localStorage 8.1 Context API 8.2 프로젝트 준비 8.3 개발 1) InputContainer 컴포넌트 2) ToDoList 컴포넌트 3) ToDoList 컨텍스트 4) App 컴포넌트에 프로바이더 적용 5) InputContainer 컴포넌트에 컨슈머 적용 6) ToDoList 컴포넌트에 컨슈머 적용 8.4 localStorage 8.5 useEffect 훅 8.6 테스트 1) ToDoList 컨텍스트 2) InputContainer 컴포넌트 3) ToDoList 컴포넌트 4) App 컴포넌트 8.6 요약 9 react-router 9.1 react-router 9.2 프로젝트 준비 9.3 개발 1) react-router 2) List 페이지 컴포넌트 3) Add 페이지 컴포넌트 4) InputContainer 컴포넌트 5) ToDoItem 컴포넌트 6) ToDoList 컴포넌트 7) Detail 페이지 컴포넌트 8) PageHeader 컴포넌트 9) NotFound 페이지 컴포넌트 9.4 테스트 1) InputContainer 컴포넌트 2) PageHeader 컴포넌트 3) ToDoItem 컴포넌트 4) ToDoList 컴포넌트 5) Add 페이지 컴포넌트 6) Detail 페이지 컴포넌트 7) List 페이지 컴포넌트 8) NotFound 페이지 컴포넌트 9) App 컴포넌트 9.5 요약 10 TDD 맛보기 10.1 테스트 주도 개발이란 10.2 프로젝트 준비 10.3 개발 1) PageHeader 컴포넌트 2) Button 컴포넌트 3) List 페이지 컴포넌트 4) Add 페이지 컴포넌트 5) Detail 페이지 컴포넌트 6) Not Found 페이지 컴포넌트 7) App 컴포넌트 10.4 요약 부록 배포 |
오늘 리뷰할 도서는 '스무디 한 잔 마시며 끝내는 리액트 + TDD' 입니다.
Vue.js, AngularJS와 함께 대표적인 JS 프론트엔드 라이브러리로 사용되는 리액트 개발 가이드 도서인데요.
특이한 점은, TDD 방법론(Test-Driven Development)을 함께 다루고 있다는 점입니다.
과거 베타리더로 참여 했었던 '장고+부트스트랩 파이썬 웹 개발의 정석(이성용, 김태곤 저)'의 경우에도, TDD 방법론을 책의 메인 토픽으로 함께 다루고 있어, Python TDD를 간접적으로 체험해 볼 수 있어 무척 좋은 기억이 남아 있는데, 본 도서 역시 마찬가지로 TDD를 함께 다루고 있어, 많은 기대가 되었습니다.
본 도서의 저자 분께서는, 지난 2019년에 '스무디 한 잔 마시며 끝내는 React Native'를 출간하시기도 했는데요. 리뷰를 위해 리딩을 모두 마친 후에는, 기회가 될 때 해당 책 역시 읽어보고 싶다는 생각이 강하게 들었습니다.
총 열개 챕터로 구성된 본 책은, 리액트의 역사와 간단한 구조적 설명을 시작으로 하여, 개발환경 세팅, Jest, react-testing-library 등 TDD 방법론 적용을 위한 기초 세팅과 테스트, JS 및 TypeScript를 이용한 리액트 프로젝트 기초 세팅 등을 다루며 독자가 리액트에 익숙해질 시간을 넉넉하게 주고 있습니다.
특히 TDD 방법론의 경우, 모든 콘텐츠가 진행 된 이후에 뒷부분에서 잠깐 맛 보는 것이 아닌, 처음 개발환경 세팅부터 시작해서, 책의 끝마무리까지 지속적으로 TDD를 적용하며 실습을 진행할 수 있습니다. 즉, 책의 제목으로 TDD가 함께 삽입되어 있을 정도로, 비교적 TDD의 비중이 큰 것입니다.
시중에 이미 다양한 React 도서들이 나와있지만, 이 점에서 본 도서, '스무디 한 잔 마시며 끝내는 리액트 + TDD'의 이점은 상당하다는 생각이 듭니다.
다소 아쉬웠던 점은, 실습을 위해 삽입된 본문의 소스코드가 다소 보기 어려운 부분이 있다는 것입니다. 하나의 파일에 대한 코드가 여러개의 블럭으로 분리되고 그 사이에 텍스트가 삽입되어 소스코드를 한눈에 보기 어렵거나, 소스코드가 어떤 파일을 가르키는지 명확하지 않게 설명이 되어 있는 경우, 단순히 예시를 위해 보여준 소스코드인지 아니면 실제로 타이핑하여 파일을 수정해야하는 소스코드인지 다소 헷갈리게 되어있는 경우 등, 일부 혼동이 올 수 있는 부분도 존재하였습니다.
하지만, 책의 내용을 잘 따라가다보면, 충분히 가려낼 수 있는 부분이고, 이러한 부분 때문에 오히려 집중도가 높아지는 느낌을 받기도 하여, 학습에 있어서 크게 거슬리는 부분은 아니었습니다.
모쪼록, 리액트 입문자 분들이라면 학습에 많은 도움을 받을 수 있는 도서임이 분명하며, TDD 방법론에 관심이 있는 리액트 개발자, 예비 리액트 개발자 분들 또한 읽어보시기에 무척 좋은 책이라고 생각됩니다 :)
본 리뷰는 출판사 비제이퍼블릭(BJ퍼블릭)의 도서 리뷰 이벤트를 통해 무상으로 도서를 제공받은 후 작성된 리뷰임을 고지합니다.
이 책은 리액트를 처음 배우거나, 리액트에서 테스트 코드를 작성하는 방법에 대해서 궁금하거나, 리액트에서 TDD를 사용하여 개발하고자 하는 개발자를 대상으로 하고 있다
이 책은 리액트와 리액트에서 테스트 코드를 작성하는 방법을 좀 더 쉽게 이해할 수 있게 리액트의 기초부터 리액트에서 테스트를 위해 사용하는 Jest와 react-testing-library를 다루는 방법 그리고 예제를 통해 실제 프로젝트에서 리액트와 리액트의 테스트 코드를 활용 하는 방법을 자세히 소개하고 있다
저자 블로그: https://dev-yakuza.posstree.com/ko/
저자 앱 리스트: https://dev-yakuza.posstree.com/app/list/ko/
예제 코드
https://github.com/bjpublic/reactdd
사전 지식
이 책을 공부하기 전 자바스크립트의 ES6 문법과 최신 자바스크립트에 관해 먼저 공부하기를 권장한다
리액트에서 자주 사용되는 ES6의 화살표 함수, const, let 등은 먼저 공부를 하지 않으면 책 내용을 이해하기가 어렵다
이 책은 타입스크립트를 사용하여 진행한다
이 책을 통해 리액트와 함께 타입스크립트를 공부할 수 있으며 타입스크립트에 입문하기에 적합한 내용을 다루고 있다
이 책의 구성
1장에서는 간단하게 자바스크립트의 역사를 살펴보고 리액트가 왜 탄생하게 되었는지, 리액트의 특징은 무엇인지에 대해서 알아본다
2장에서는 리액트로 프로젝트를 개발하기 위해 맥과 윈도우에 create-react-app 개발 환경 설정을 하는 방법에 대해서 설명하고 있다
3장에서는 자바스크립트 테스트 프레임워크인 Jest에 대해서 살펴보고 자바스크립트에서 어떻게 테스트 코드를 작성하는지, 어떤 API 등을 사용할 수 있는지에 대해서 살펴본다
4장에서는 리액트를 테스트하기 위한 라이브러리인 react-testing-library에 대해서 살펴보고 해당 라이브러리를 설치하는 방법과 사용하는 방법에 대해서 간단히 알아본다
5장에서는 create-react-app을 사용하여 리액트 프로젝트를 생성하며, 실무에서 자주 사용되는 타입스크립트, styled-components, 절대 경로로 컴포넌트를 추가하는 방법과 Prettier를 설치하고 적용하는 방법에 대해서 설명하고 있다
6장에서는 리액트의 주요 개념인 Props와 State를 설명하고 할 일 목록 앱을 제작해 봄으로써 Props와 State를 이해하려 한다
또한, 제작한 할 일 목록 앱에 관한 테스트 코드를 작성하여 리액트에서 테스트 코드를 작성하는 방법에 대해서 간단히 살펴본다
7장에서는 클래스 컴포넌트에 대해서 살펴볼 예정이다
이 책은 리액트의 함수 컴포넌트를 주로 다루고 있다
하지만, 리액트에서는 함수 컴포넌트 이외에도 클래스 컴포넌트가 존재하며, 이 클래스 컴포넌트를 이해하지 못하면 클래스 컴포넌트를 활용하는 코드를 이해할 수 없다
또한, 클래스 컴포넌트를 통해 리액트 컴포넌트의 라이프사이클을 이해한다
8장에서는 리액트의 Props와 State 이외에 데이터를 다루는 주요 개념인 Context API에 대해서 설명한다
또한, 데이터를 저장하기 위한 localStorage를 활용하여 서버에 데이터를 저장하고 가져오는 타이망과 방법에 대해서 알아본다
9장에서는 리액트에서 페이지 전환을 사용하기 위해 react-router 라이브러리를 사용하는 방법에 대해서 설명한다
또한, 지금까지 만든 할 일 목록 앱에 react-router를 적용하여 페이지 전환을 하는 방법에 대해서 살펴본다
10장에서는 지금까지 만든 할 일 목록 앱을 테스트 주도 개발 방법론을 활용하여 처음부터 개발해 봄으로써 리액트에서 테스트 주도 개발 방법론을 사용하여 앱을 개발하는 방법에 대해서 알아본다
서평
이 책은 리액트와 리액트 TDD에 공부해볼 수 있는 책이다
먼저 리액트의 기본적인 내용들을 공부하면서 할일 앱을 한번 만들어 보고 다시 TDD를 활용해 할일 앱을 만들어 보면서
어떻게 테스트 주도 개발 방법론으로 리액트 개발을 할 수 있는지 공부 해본다
앞에서 소개한대로 자바스크립의 기본에 대해서는 다루지 않고 있으며 타입스크립트 기반으로 진행된다
저자의 블로그에서 추가적인 정보를 더 얻을 수 있으며 리액트의 기본 지식 습득을 위한 내용이 충실한 서적이다
실습을 위해 책 한권에서 이 앱 저앱 많이 많들어 보는 쿡북 형태의 책도 좋지만
이런 책 처럼 리액트의 기본에 충실하고 TDD 개발 방법론에 까지 공부해볼 수 있는 책도 반드시 꼭 읽어보기를 권장한다
코드의 품질을 높이고 개발자의 소양을 향상시키기 위해서는 반드시 이런 깊은 지식들이 필요하다
총평
이 책은 프론트에서는 잘 다루지 않는 테스트 주도 개발에 대한 내용을 다루고 있어 매우 유용하다
쿡북 형태의 책을은 될 수 있으면 많은 앱들을 직접 개발해보며 눈으로 보이는 것을 중요시 여기는 반면에
이 책은 단 하나의 기본적인 앱을 개발하며 리액트의 다양한 기능들의 사용법을 익히고
테스트 주도 개발 방법론에 대해서도 배울 수 있다
이 책을 공부하면서 한층 더 성장하고 지식의 깊이가 깊어짐을 느낄 수 있었다
리액트를 공부하고 싶고 TDD를 배우고 싶은 사람이라면 이 책을 한번 읽어보기를 권장한다
※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다