React 16 Tooling [적재적소의 도구 활용을 통한 개발 작업 효율화]
- 원서명React 16 Tooling: Master essential cutting-edge tools, such as create-react-app, Jest, and Flow (ISBN 9781788835015)
- 지은이아담 보두치(Adam Boduch)
- 옮긴이이승준
- ISBN : 9791161753201
- 30,000원
- 2019년 06월 27일 펴냄
- 페이퍼백 | 380쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으실 수 있습니다.
요약
React는 페이스북과 인스타그램의 UI를 위해 만들어진 자바스크립트 라이브러리이지만 이제는 웹 개발에 갖춰야 할 기술로 확대되고 있다. 특히, 저작권 문제를 해결한 버전 16부터는 React 16이라는 새 제품명으로 더욱 사용자층을 넓혀갈 것이다. 이 책은 모든 React 개발자가 알아야 할 가장 중요한 도구, 유틸리티, 라이브러리를 자세하게 다룬다. 모든 기술은 도구 활용에 따라 빛이 나므로 이 책을 통해 자신의 기술에 힘을 더할 수 있다.
이 책에서 다루는 내용
■ create-react-app을 사용한 React 애플리케이션 부트스트랩
■ Storybook을 사용해 React 컴포넌트 개발을 격리하기
■ Jest를 사용해 React 컴포넌트에 대한 효과적인 단위 테스트를 작성하기
■ ESLint를 사용해 컴포넌트 코드가 표준에 맞는지 확인하기
■ 브라우저 확장 프로그램 및 내장된 컴포넌트 장치를 사용한 React 애플리케이션 디버깅
■ Flow 타입으로 React 컴포넌트의 타입 안전성 활성화
■ 규모가 큰 애플리케이션 스택의 일부분으로서 React 애플리케이션을 Docker 컨테이너에 배포하기
이 책의 대상 독자
자신의 업무를 향상시킬 더 나은 도구와 기술을 항상 염두에 두고 있는 React 개발자를 대상으로 하는 책이다. 이 책을 읽는 데 React를 다룬 경험이 없어도 되지만, React의 기본 사항들을 미리 알고 있으면 큰 도움이 될 것이다.
이 책의 구성
1장, ‘맞춤형 React 개발 생태계 만들기’에서는 React 프로젝트에서 도구 제작을 위한 동기 부여를 소개한다.
2장, ‘Create React App으로 React 애플리케이션을 효율적으로 부트스트랩하기’에서는 create-react-app을 실행해본다.
3장, ‘개발 모드 및 핫 리로딩 마스터하기’에서는 개발 서버 및 핫 모듈 리로딩을 사용해 React 애플리케이션을 개발하는 방법을 설명한다.
4장, ‘테스트 지향의 React 개발 최적화’에서는 Jest 단위 테스트를 프로젝트에 통합하는 방법을 설명한다.
5장, ‘타입 안전한 React 컴포넌트로 개발 간소화와 리팩토링하기’에서는 Flow를 사용해 React 컴포넌트의 타입 안전성(type-safety)을 소개한다.
6장, ‘유지 보수성을 향상시키기 위한 코드 품질 강화’에서는 ESLint와 Prettier(코드 품질 향상을 위한 도구)를 다룬다.
7장, ‘Storybook을 사용해 컴포넌트 격리하기’에서는 Storybook을 사용해 애플리케이션에서 컴포넌트 개발을 분리해야 한다는 것을 보여준다.
8장, ‘브라우저에서의 컴포넌트 디버깅’에서는 React 컴포넌트 디버깅을 지원하는 React Development Tools 브라우저 플러그인에 관해 자세히 설명한다.
9장, ‘Redux로 애플리케이션 상태 조율하기’에서는 Redux DevTools 브라우저 플러그인을 도입해 애플리케이션 상태를 명확하게 알아본다.
10장, ‘Gatsby로 정적 React 사이트 구축 및 전개하기’에서는 Gatsby와 React 컴포넌트를 사용해 정적 웹사이트를 만드는 방법을 설명한다.
11장, ‘Docker 컨테이너로 React 애플리케이션 빌드 및 배포하기’에서는 출시 준비된 React 애플리케이션을 컨테이너에 배치하는 방법을 설명한다.
목차
목차
- 1장 맞춤형 React 개발 생태계 만들기
- React에 포함되는 것
- 렌더 트리를 비교하는 컴포넌트
- DOM 렌더 타깃
- 도구 활용 소개?
- React 외부의 보조 작업
- 건설 현장과의 유사점
- 이 책에서 다루는 React 도구
- JSX는 자바스크립트로 컴파일돼야 한다
- 최신 자바스크립트 언어 기능은 트랜스파일돼야 한다
- 애플리케이션 개발을 가능하게 하는 핫 모듈 로딩
- 단위 테스트 자동 실행
- 타입 안전성에 관한 고려
- 코드 품질을 위한 소스 코드 분석
- 컴포넌트 개발 환경 격리
- 브라우저 기반의 디버깅 환경 제공
- React 애플리케이션 배포
- 올바른 도구 선택
- 필수 도구
- 옵션 도구
- 요약
- React에 포함되는 것
- 2장 Create React App으로 React 애플리케이션을 효율적으로 부트스트랩하기
- Create React App 설치
- 첫 번째 앱 제작
- 프로젝트 이름 지정
- 자동 종속성 처리
- 디렉터리 구조
- 첫 번째 앱 제작
- 요약
- Create React App 설치
- 3장 개발 모드와 핫 리로딩 마스터하기
- 개발 서버 시작
- 웹팩 구성
- 진입점
- 빌드 출력
- 입력 파일 해결
- 파일 로드와 컴파일
- 플러그인 설정
- 핫 리로딩
- 핫 컴포넌트 리로딩 가동
- Create React App에서 벗어나기
- 웹팩 구성
- 요약
- 개발 서버 시작
- 4장 테스트 지향 React 개발 최적화
- Jest의 지향 철학
- 애플리케이션 코드를 제외한 모든 것 흉내내기
- 테스트를 격리해서 병렬로 실행
- 테스트는 자연스럽게 느껴져야 한다
- 테스트 실행
- react-scripts를 사용해 테스트 실행하기
- 단독형 Jest를 사용해 테스트 실행하기
- Jest 테스트 작성
- 스위트를 사용해 테스트 조직하기
- 기본 어서션
- 기본 일치
- 근사 일치
- 값 일치
- 컬렉션의 값
- 모킹으로 작업하기
- 비동기 어서션
- React 컴포넌트 스냅샷
- 단위 테스트 커버리지
- 요약
- Jest의 지향 철학
- 5장 타입 안전한 React 컴포넌트로 개발 간소화와 리팩토링하기
- 타입 안전성으로 무엇을 해결할 수 있는가?
- 어림짐작을 분명하게 하기
- 런타임 점검 제거
- 명백히 심각성이 낮은 버그
- Flow 설치 및 초기화
- 컴포넌트 프로퍼티 및 상태 검증
- 프리미티브 프로퍼티 값
- 객체 프로퍼티 값
- 컴포넌트 상태의 유효화
- 함수 프로퍼티 값
- 자식 컴포턴트 타입의 적용
- 특정 자식 타입을 가진 부모
- 하나의 자식을 가진 부모
- 자식이 옵션인 부모
- 프리미티브 자식 값을 가진 부모
- 이벤트 처리기 함수에 관한 유효성 검사
- 개발 서버에서 Flow 가능하게 하기
- 편집기에서 Flow 가능하게 하기
- 요약
- 타입 안전성으로 무엇을 해결할 수 있는가?
- 6장 유지 보수성을 향상시키기 위한 코드 품질 강화
- ESLint 설치 및 설정
- 에어비앤비 표준으로 빌드하기
- ESLint에 React 플러그인 추가하기
- create-react-app과 함께 ESLint 사용하기
- 코드 편집기에서 ESLint 사용하기
- Prettier로 코드 포맷 자동화하기
- 요약
- 7장 Storybook을 사용해 컴포넌트 격리하기
- 격리된 컴포넌트 개발에 관한 필요
- Storybook설치 및 구성
- 스토리를 사용해 컴포넌트 개발하기
- props로 실험하기
- 액션으로 실험하기
- 스토리에 링크 걸기
- 문서화 도구로서의 스토리
- 정적 Storybook 앱 제작
- 요약
- 8장 브라우저에서의 컴포넌트 디버깅
- React Developer Tools 애드온 설치하기
- React Developer Tools에서 React 요소로 작업하기
- React 요소 선택
- React 요소 검색
- 컴포넌트 프로퍼티 및 상태 검사
- 요소 상태 값 조작
- 컴포넌트 성능 프로파일링
- 조정 작업 삭제하기
- CPU에 부하를 주는 컴포넌트 찾기
- 요약
- 9장 Redux로 애플리케이션 상태 조율하기
- Redux 앱 빌드하기
- App 컴포넌트 및 상태
- Home 컴포넌트 및 상태
- NewBook 컴포넌트 및 상태
- API 추상화
- 모두 조립하기
- Redux DevTools 설치하기
- 액션 선택 및 검사
- 액션 데이터
- 액션 상태 트리 및 차트
- 액션 상태 차이
- 시간 이동 디버깅
- 수동으로 액션 발생시키기
- 상태 내보내기와 가져오기
- 요약
- Redux 앱 빌드하기
- 10장 Gatsby로 정적 React 사이트 구축 및 전개하기
- 왜 정적 React 사이트인가?
- React 앱의 타입
- 사용자 경험 개선
- 효율적인 자원 사용
- 처음으로 Gatsby 사이트 만들기
- 로컬 파일시스템 데이터 추가하기
- 원격 데이터 가져오기
- 요약
- 왜 정적 React 사이트인가?
- 11장 Docker 컨테이너로 React 애플리케이션 빌드 및 배포하기
- 메시징 앱 제작
- Barely SMS 시작하기
- 로그인
- 홈페이지
- 연락처 페이지
- 메시지 페이지
- 메시지 보내기
- API
- Node 컨테이너로 시작하기
- React 앱을 서비스로 구성하기
- 생산을 위한 정적 React 빌드
- 요약
- 메시징 앱 제작