Top

리액트 디자인 패턴과 모범 사례 [유연하고 빠르며 유지관리하기 쉬운 애플리케이션 개발하기]

  • 원서명React Design Patterns and Best Practices (ISBN 9781786464538)
  • 지은이미켈레 베르톨리(Michele Bertoli)
  • 옮긴이최민석
  • ISBN : 9791161750934
  • 30,000원
  • 2017년 12월 11일 펴냄
  • 페이퍼백 | 400쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

요약

리액트를 처음 접하는 독자를 위해 주요 디자인 패턴을 소개하고, 컴포넌트를 작성하는 과정을 안내하면서 리액트뿐만 아니라 웹 사용자 인터페이스 개발을 위해 알아야 할 기본 개념과 문제점, 그리고 해결 방법을 직접 체득할 수 있게 구성됐다.
이 책에서는 리액트 컴포넌트를 스타일링하고 최적화해 애플리케이션이 더 빠르고 신속하게 반응하게 만드는 방법과 체계적이고 자동화된 테스트를 작성해 코드를 더 견고하게 만드는 방법을 배운다. 마지막으로 독자가 리액트 개발 생태계에 직접 기여하는 방법을 배운다.

이 책에서 다루는 내용

█ 깔끔하고 유지관리하기 쉬운 코드 작성
█ 통합된 기법을 적용한 재사용 가능 컴포넌트 개발
█ 브라우저와 노드에서 효과적인 리액트 활용
█ 애플리케이션의 필요성에 맞는 스타일링 방법 선택
█ 애플리케이션의 로드 속도를 개선하는 서버 측 렌더링 기법
█ 컴포넌트 최적화를 통한 고성능 애플리케이션 구축

이 책의 대상 독자

리액트에 대한 이해 수준을 높이고 새로운 지식을 실제 애플리케이션 개발에 적용하고 싶다면 이 책이 큰 도움이 될 것이다.

이 책의 구성

1장, ‘리액트에 대해 알아야 할 모든 것’에서는 리액트의 기본 개념을 한 단계 앞선 관점에서 소개한다.
2장, ‘깔끔한 코드 관리’에서는 유지관리하기 쉬운 코드를 작성하기 위해 가장 중요한 측면인코딩 스타일 가이드에 대해 다룬다. 리액트를 제대로 활용하려면 함수형 프로그래밍의 기본 개념을 확실히 이해해야 한다.
3장, ‘진정한 재사용 가능 컴포넌트’ 코드베이스를 깔끔하고 유지관리하기 쉽게 만들기 위해 가장 중요한 것은 재사용 가능한 컴포넌트를 만들고 애플리케이션 핵심 요소로 활용하는 것이다.
4장, ‘모든 것을 조합하기’ 애플리케이션은 다양한 컴포넌트로 구성되므로 컴포넌트가 서로 효과적으로 통신할 수 있도록 컴포넌트 계층을 올바르게 구성하고 조정하는 것이 중요하다.
5장, ‘올바른 데이터 읽기’ 모든 클라이언트 측 애플리케이션은 데이터를 다뤄야 한다.
5장에서는 리액트에 맞는 방식으로 데이터를 읽는 다양한 기법과 방식을 설명한다.
6장, ‘브라우저에 맞는 코드 작성’에서는 애플리케이션이 브라우저에서 실행된다는 사실을 확인하고 이를 적절하게 이용하는 방법을 배운다. 또한 이벤트, 애니메이션, DOM과의 상호작용을 비롯한 몇 가지 고급 개념을 다룬다.
7장, ‘컴포넌트 꾸미기’ 멋진 UI 컴포넌트를 만드는 것은 프론트엔드 엔지니어링 작업에서 중요한 부분이다. 리액트를 사용하면 이 문제를 여러 관점의 다양한 방법으로 해결할 수 있다. 올바른 라이브러리를 사용하려면 어떤 라이브러리가 있고 어떻게 사용해야 하는지 알아야 한다.
8장, ‘재미와 효율을 위한 서버 측 렌더링’에서는 리액트의 가장 훌륭한 기능 중 하나인 서버 측 렌더링에 대해 알아본다. 서버 측 렌더링은 즉시 사용 가능하지만 최대 효율을 위해서는 올바른 방법으로 사용해야 한다.
9장, ‘애플리케이션의 성능 개선’에서는 웹 성능이 사용자 경험을 개선하는 데 가장 중요한 요소 중 하나라는 것을 확인한다. 리액트는 아주 빠른 애플리케이션을 만들기 위한 다양한 툴과 기법을 제공하며 9장에서 자세한 내용을 알아본다.
10장, ‘테스트와 디버깅’ 애플리케이션은 안정적이고 모든 한계 사례를 처리할 수 있어야 하며 여기에 테스트가 큰 도움이 된다. 견고하고 유지관리가 용이한 코드를 작성하려면 종합적인 테스트 집합을 작성하는 것이 중요하다. 또한 버그는 디버깅 방법과 가능한 한 일찍 문제를 발견하는 방법을 알고 있을 때 발생한다.
11장, ‘피해야 할 안티 패턴’ 지름길이나 창의적인 해결책으로 문제를 해결하려는 경우가 많은데, 이러한 우회는 애플리케이션에 위험할 수 있으며, 특히 대규모 코드베이스를 기반으로 작업하는 대규모 팀에서 문제가 되는 경우가 많다. 11장에서는 리액트를 사용할 때 피해야 할 일반적인 안티 패턴을 소개한다.
12장, ‘다음 단계’ 마지막 장에서는 지금까지 다룬 모든 주제를 다시 돌아본다. 오픈소스 컴포넌트를 커뮤니티에 공개하는 방법과 리액트 및 해당 생태계에 기여하는 방법을 아는 것도 중요하다.

저자/역자 소개

지은이의 말

이 책에서는 리액트의 가장 유용한 디자인 패턴을 완벽하게 살펴보면서 새로운 프로젝트나 기존의 프로젝트에 이러한 디자인 패턴과 모범사례를 적용하는 방법을 소개한다. 또한 기존 워크플로우의 품질을 낮추지 않고도 속도를 크게 향상시키는 방법으로 애플리케이션을 더 유연하고 빠르며 유지관리하기 쉽게 만드는 방법을 알아본다.
우선 리액트에 대한 기본 사항을 알아본 다음, 깔끔하고 유지관리하기 쉬운 코드를 작성하는 방법을 살펴본다. 애플리케이션 전체에서 재사용 가능한 컴포넌트를 작성하고, 애플리케이션의 구조를 설계하며, 실제 작동하는 폼을 만든다.
그다음 리액트 컴포넌트에 스타일을 적용하고 애플리케이션을 최적화해 더 빠르고 신속하게 반응하게 만든다. 마지막으로 효과적으로 테스트를 작성하는 방법과 리액트와 관련 생태계에 기여하는 방법을 알아본다.
이 책을 다 읽고 나면 개발 과정에서 거치는 수많은 시행착오의 고통을 줄이고 리액트 전문가로 한 걸음 다가설 수 있을 것이다.

지은이 소개

미켈레 베르톨리(Michele Bertoli)

아름다운 UI를 추구하는 이탈리아 출신의 프론트엔드 디자이너로서, 취업을 위해 가족과 함께 런던으로 이주했다. 컴퓨터과학과를 졸업했고 세심하게 테스트된 깔끔한 코드를 무엇보다 좋아한다. 현재는 React.js와 함께 최신 자바스크립트 애플리케이션을 개발하고 있다. 오픈소스의 가치를 지지하며 항상 새로운 것을 배우기 위해 노력한다.

옮긴이의 말

리액트는 선언식 프로그래밍을 활용해 웹 환경의 얼굴이라고 할 수 있는 사용자 인터페이스를 좀 더 효율적으로 제작하고 재사용할 수 있게 해주는 기술이다. 리액트는 페이스북의 체계적인 개발과 운영, 그리고 인터넷상의 많은 개발자들의 적극적인 참여 덕분에 비교적 빠른 시간에 최고 인기 기술로 자리 잡았다.
이 책은 리액트를 제대로 배우기 전에 이해해야 할 기본 개념을 알기 쉽게 설명한 다음, 코드를 관리하기 쉽게 작성하는 방법을 설명한다. 이어서 재사용 가능한 컴포넌트를 만들기 위한 요건과 애플리케이션의 구조를 안정적으로 설계하는 방법, 그리고 실제로 작동하는 폼을 만드는 방법을 배운다. 또한 기술 수준이 일정 단계에 이른 독자를 위해서는 리액트 개발 커뮤니티에 참여하고 기여하는 방법까지 모든 과정을 안내한다.
이 책이 리액트를 활용하기 위한 모든 과정에서 친절하고 유용한 안내자가 되기를 바란다.

옮긴이 소개

최민석

2005년부터 번역 회사에서 언어 전문가로 일하다 독립한 후 현재는 IT 전문 번역가로 일하고 있다. 10여 년 동안 수백 건의 소프트웨어 현지화와 개발자 웹사이트 한글화 프로젝트를 진행했으며, 지금은 IT 전문 서적을 번역하는 일에 집중하고 있다. 번역한 책으로는 『Unity 5.x By Example』(에이콘, 2016) 『유니티 5 메카님 캐릭터 애니메이션』(에이콘, 2016), 『네티 인 액션』(위키북스, 2016), 『유니티와 C#으로 배우는 게임 개발 교과서』(위키북스, 2015), 『엔터프라이즈 애플리케이션 아키텍처 패턴』(위키북스, 2015) 등이 있다.

목차

목차
  • 1장. 리액트에 대해 알아야 할 모든 것
    • 선언식 프로그래밍
    • 리액트 요소
    • 잊어야 할 기존의 모든 방식
    • 흔한 오해
    • 요약

  • 2장. 깔끔한 코드 관리
    • JSX
      • 바벨
      • Hello, World!
      • DOM 요소와 리액트 컴포넌트
      • 프로퍼티
      • 자식
      • HTML과 다른 점
      • 속성 전개
      • 자바스크립트 템플릿
      • 일반적인 패턴
    • ES린트
      • 설치
      • 구성
      • 리액트 플러그인
      • 에어비앤비 구성
    • 함수형 프로그래밍의 기본
      • 일급 객체
      • 순수성
      • 불변성
      • 커링
      • 합성
      • 함수형 프로그래밍과 인터페이스
    • 요약

  • 3장. 진정한 재사용 가능 컴포넌트
    • 클래스 만들기
      • createClass 팩토리
      • React.Component 확장
      • 주요 차이점
      • 상태 비저장 함수형 컴포넌트
    • 상태
      • 외부 라이브러리
      • 작동 방식
      • 비동기
      • 리액트 럼버잭
      • 상태 사용
    • 프로퍼티 형식
      • 리액트 독젠
    • 재사용 가능 컴포넌트
    • 살아 있는 스타일 가이드
    • 요약

  • 4장. 모든 것을 조합하기
    • 컴포넌트 간 통신
      • children
    • 컨테이너와 프레젠테이션 패턴
    • 믹스인
    • 상위 컴포넌트
    • 리컴포즈
      • 컨텍스트
    • 함수 자식
    • 요약

  • 5장. 올바른 데이터 읽기
    • 데이터 흐름
      • 자식-부모 통신(콜백)
      • 공통 부모
    • 데이터 읽기
    • 리액트 리페치
    • 요약

  • 6장. 브라우저에 맞는 코드 작성
      • 제어되지 않는 컴포넌트
      • 제어되는 컴포넌트
      • JSON 스키마
    • 이벤트
    • 참조
    • 애니메이션
      • 리액트 모션
    • SVG
    • 요약

  • 7장. 컴포넌트 꾸미기
    • 자바스크립트 내의 CSS
    • 인라인 스타일
    • 라듐
    • CSS 모듈
      • 웹팩
      • 프로젝트 설정
      • 로컬 범위 CSS
      • 원자형 CSS 모듈
      • 리액트 CSS 모듈
    • 스타일드 컴포넌트
    • 요약

  • 8장. 재미와 효율을 위한 서버 측 렌더링
    • 유니버설 애플리케이션
    • 서버 측 렌더링을 구현하는 이유
      • 검색 엔진 최적화
      • 공용 코드베이스
      • 성능 개선
      • 복잡성을 무시하지 말 것
    • 간단한 예제
    • 데이터 읽기 예제
    • Next.js
    • 요약

  • 9장. 애플리케이션의 성능 개선
    • 조정과 키
    • 최적화 기법
      • 컴포넌트 업데이트 여부
      • 상태 비저장 함수형 컴포넌트
    • 일반적 해결책
      • 업데이트하는 이유
      • render 메소드 안에 함수 만들기
      • 상수 프로퍼티
      • 리팩토링과 좋은 설계
    • 툴과 라이브러리
      • 불변성
      • 모니터링 툴
      • 바벨 플러그인
    • 요약

  • 10장. 테스트와 디버깅
    • 테스트의 혜택
    • 제스트를 사용한 편리한 자바스크립트 테스트
    • 유연한 모카 테스트 프레임워크
    • 리액트용 자바스크립트 테스트 유틸리티
    • 실제 테스트 예제
    • 리액트 트리 스냅샷 테스트
    • 코드 커버리지 툴
    • 일반적인 테스트 솔루션
      • 상위 컴포넌트의 테스트
      • 페이지 객체 패턴
    • 리액트 개발자 툴
    • 리액트를 사용한 오류 처리
    • 요약

  • 11장. 피해야 할 안티 패턴
    • 프로퍼티를 사용한 상태 초기화
    • 상태 변경
    • 인덱스를 키로 사용
    • DOM 요소에 프로퍼티 전개
    • 요약

  • 12장. 다음 단계
    • 리액트에 기여하기
    • 코드 배포
    • npm 패키지 게시

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.76 : 하단 코드 첫 번째 줄]
constadd1
->
const add1