Top

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 애플리케이션을 컨테이너에 배치하는 방법을 설명한다.

저자/역자 소개

지은이의 말

어떤 기술도 도구가 지원돼야 빛이 난다. React도 예외는 아니다. React는 사용자 인터페이스를 만드는 라이브러리일 뿐이지만, 그 주위에 생겨난 생태계를 보면 전형적인 React 프로젝트에 유동 부분이 많다는 것을 알 수 있다. 적절한 도구를 만들어내지 못하면 작업을 자동화하지 못하고 수동으로 하게 돼 많은 시간을 소비하게 된다.
React 도구는 여러 형태로 돼 있다. 어떤 것은 예전부터 계속 사용한 것이고, 또 어떤 것은 완전히 새로운 것이다. 어떤 것은 브라우저 내에 있고, 또 어떤 것은 명령행으로만 가능한 것이다. React 개발자가 사용할 수 있는 도구는 많다(이 책에서는 내가 작업한 프로젝트에서 사용했던 강력한 도구들에 관해 집중하려고 했다).
각 장에서는 React 도구 하나씩 중점을 두고 진행한다. 기본 개발 도구부터 시작해 React 컴포넌트 디자인을 완성하는 데 도움이 되는 도구를 설명하고, 실제 환경에서 React 애플리케이션을 배포하기 위한 도구로 끝을 맺는다.

지은이 소개

아담 보두치(Adam Boduch)

대규모 자바스크립트 개발 분야에서 10년 가까이 일했다. 프론트엔드로 옮겨가기 전에 파이썬과 리눅스를 사용해 몇 가지 대규모 클라우드 컴퓨팅 제품을 개발했다. 복잡성에 익숙하며 실제 소프트웨어 시스템과 그 시스템이 취한 규모 확장 문제에 관해 현장 경험이 있다. 팩트출판사의 『React and React Native』(2017)를 비롯한 여러 자바스크립트 도서를 저술했으며 혁신적인 사용자 경험과 고성능에 매우 관심이 많다.

옮긴이의 말

이 책을 쓴 아담 보두치는 일전에 내가 번역한 『React 16 핵심 정리 2/e』의 공저자이기도 하다. 그래서 이 책을 번역하는 내내 이전 책을 이어서 번역하는 느낌을 받았다. 내용도 자연스레 이어져 있어서 React 16에 관심이 있는 독자에게는 또 하나의 좋은 책이 될 것이다.
‘React 16 Tooling’이라는 제목 그대로 도구 활용에 초점을 맞춘 책이다. 저자가 말했듯 어떤 기술도 도구가 있어야 한다. 물론 도구 없이도 작업을 진행할 수 있지만, 도구를 사용할 때와 비교하면 땅과 하늘 차이다. 이런 점을 알기에 React 16을 뒷받침하는 도구들을 독자에게 소개한다는 기쁨을 갖고 즐겁게 번역할 수 있었다.
독자가 생소하게 느낄 만한 전문용어에 관해서는 주석을 달아놓아 손쉽게 관련 용어를 접하게 했다. 이전 번역서인 『React 16 핵심 정리 2/e』의 서문에서 밝힌 바와 같이 기사에 따르면 React 기술을 원하는 기업주는 37%인 데 비해 기술력을 갖춘 개발자는 19%에 불과하다고 한다(http://www.itworld.co.kr/news/108020). 이 책을 통해 React 16 기술을 더욱 탄탄하게 갖춰 어디에서나 환영받는 인재가 되길 바란다.

옮긴이 소개

이승준

한아시스템에서 소프트웨어 엔지니어로 근무했으며 현재 프리랜서로 일하고 있다. 삼각형프레스에서 출간한 『Boogazine JFC PROGRAMMING』(1998), 『Boogazine Visual J++ 6.0』(1998), 『Java Workshop 2.0 21일 완성』(1997)을 집필했고, 편저한 책으로 『JAVA 서블릿 & JSP 프로그래밍 한꺼번에 끝내기』(2002), 『XML 기본+활용 마스터하기』(2002)가 있다. 또한 에이콘출판사에서 출간한 『(개정판) C & C++ 시큐어 코딩』(2015), 『닷넷 개발자를 위한 AngularJS』(2016), 『파이썬 분산 컴퓨팅』(2016), 『Angular 2 컴포넌트 마스터』(2016), 『유니티 게임 개발을 위한 절차적 콘텐트 생성』(2017), 『React 16 핵심 정리 2/e』(2018), 『자연어 처리의 이론과 실제』(2018)를 번역했다.

목차

목차
  • 1장 맞춤형 React 개발 생태계 만들기
    • React에 포함되는 것
      • 렌더 트리를 비교하는 컴포넌트
      • DOM 렌더 타깃
    • 도구 활용 소개?
      • React 외부의 보조 작업
      • 건설 현장과의 유사점
    • 이 책에서 다루는 React 도구
      • JSX는 자바스크립트로 컴파일돼야 한다
      • 최신 자바스크립트 언어 기능은 트랜스파일돼야 한다
      • 애플리케이션 개발을 가능하게 하는 핫 모듈 로딩
      • 단위 테스트 자동 실행
      • 타입 안전성에 관한 고려
      • 코드 품질을 위한 소스 코드 분석
      • 컴포넌트 개발 환경 격리
      • 브라우저 기반의 디버깅 환경 제공
      • React 애플리케이션 배포
    • 올바른 도구 선택
      • 필수 도구
      • 옵션 도구
    • 요약

  • 2장 Create React App으로 React 애플리케이션을 효율적으로 부트스트랩하기
    • Create React App 설치
      • 첫 번째 앱 제작
        • 프로젝트 이름 지정
        • 자동 종속성 처리
        • 디렉터리 구조
    • 요약

  • 3장 개발 모드와 핫 리로딩 마스터하기
    • 개발 서버 시작
      • 웹팩 구성
        • 진입점
        • 빌드 출력
        • 입력 파일 해결
        • 파일 로드와 컴파일
        • 플러그인 설정
        • 핫 리로딩
      • 핫 컴포넌트 리로딩 가동
      • Create React App에서 벗어나기
    • 요약

  • 4장 테스트 지향 React 개발 최적화
    • Jest의 지향 철학
      • 애플리케이션 코드를 제외한 모든 것 흉내내기
      • 테스트를 격리해서 병렬로 실행
        • 테스트는 자연스럽게 느껴져야 한다
    • 테스트 실행
      • react-scripts를 사용해 테스트 실행하기
      • 단독형 Jest를 사용해 테스트 실행하기
    • Jest 테스트 작성
      • 스위트를 사용해 테스트 조직하기
      • 기본 어서션
        • 기본 일치
        • 근사 일치
        • 값 일치
        • 컬렉션의 값
        • 모킹으로 작업하기
        • 비동기 어서션
        • React 컴포넌트 스냅샷
      • 단위 테스트 커버리지
    • 요약

  • 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 설치하기
    • 액션 선택 및 검사
      • 액션 데이터
      • 액션 상태 트리 및 차트
      • 액션 상태 차이
    • 시간 이동 디버깅
    • 수동으로 액션 발생시키기
    • 상태 내보내기와 가져오기
    • 요약

  • 10장 Gatsby로 정적 React 사이트 구축 및 전개하기
    • 왜 정적 React 사이트인가?
      • React 앱의 타입
      • 사용자 경험 개선
      • 효율적인 자원 사용
    • 처음으로 Gatsby 사이트 만들기
    • 로컬 파일시스템 데이터 추가하기
    • 원격 데이터 가져오기
    • 요약

  • 11장 Docker 컨테이너로 React 애플리케이션 빌드 및 배포하기
    • 메시징 앱 제작
      • Barely SMS 시작하기
      • 로그인
      • 홈페이지
      • 연락처 페이지
      • 메시지 페이지
      • 메시지 보내기
      • API
    • Node 컨테이너로 시작하기
    • React 앱을 서비스로 구성하기
    • 생산을 위한 정적 React 빌드
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안