상세정보
실제 서비스의 설계와 구현에 초점을 맞춘 프런트엔드 모던 워크플로
리액트는 사용자 중심의 UI를 만드는 자바스크립트 라이브러리입니다. 프레임워크가 아니라 UI 개발을 위한 라이브러리 도구입니다. 실제 현장에서의 리액트는 성능과 접근성이 중요하며 이는 사용자 경험 향상에 직결되는 요소입니다. 그러므로 고품질의 UI를 구현하고 실현하려면 개발자와 디자이너 모두의 관점이 필요합니다.
이 책에서는 실제 현장에서의 대규모 리액트 서비스를 염두해 둔 설계를 지향하며 재사용성과 유지보수에 초점을 맞춘 컴포넌트 개발 방법을 설명합니다. 단순히 개발 언어나 라이브러리 설명, 예제 만들기에 머무르지 않고 조금은 생소할 수 있는 아토믹 디자인을 중심으로 UI 디자인 설계, 체계적이고 견고한 컴포넌트 구현, 상태 관리를 이용한 로직 구현, 컴포넌트 테스트, 유지 보수 등 프런트엔드의 다양한 영역을 두루 살펴봅니다.
최종적으로 웹 개발의 표준이 된 컴포넌트 기반의 개발 방법을 논리와 구현으로 본질을 이해하고 프런트엔드 개발자로서의 구체적인 미래상을 고민하며 실무에서 요긴하게 쓸 수 있도록 '앞으로의' 리액트를 설명합니다.
리액트는 사용자 중심의 UI를 만드는 자바스크립트 라이브러리입니다. 프레임워크가 아니라 UI 개발을 위한 라이브러리 도구입니다. 실제 현장에서의 리액트는 성능과 접근성이 중요하며 이는 사용자 경험 향상에 직결되는 요소입니다. 그러므로 고품질의 UI를 구현하고 실현하려면 개발자와 디자이너 모두의 관점이 필요합니다.
이 책에서는 실제 현장에서의 대규모 리액트 서비스를 염두해 둔 설계를 지향하며 재사용성과 유지보수에 초점을 맞춘 컴포넌트 개발 방법을 설명합니다. 단순히 개발 언어나 라이브러리 설명, 예제 만들기에 머무르지 않고 조금은 생소할 수 있는 아토믹 디자인을 중심으로 UI 디자인 설계, 체계적이고 견고한 컴포넌트 구현, 상태 관리를 이용한 로직 구현, 컴포넌트 테스트, 유지 보수 등 프런트엔드의 다양한 영역을 두루 살펴봅니다.
최종적으로 웹 개발의 표준이 된 컴포넌트 기반의 개발 방법을 논리와 구현으로 본질을 이해하고 프런트엔드 개발자로서의 구체적인 미래상을 고민하며 실무에서 요긴하게 쓸 수 있도록 '앞으로의' 리액트를 설명합니다.
1장 웹 개발 동향
_ 1.1 웹 개발 기술의 변화와 환경
__ 웹 프런트엔드를 둘러싼 환경
__ 디자이너와 개발자
__ 개발 현장에서의 고민
__ 이상적인 프런트엔드 개발자
_ 1.2 개발자가 생각해야 할 것
__ 브라우저 지원
__ HTML과 CSS
__ CCS의 문제점
_ 1.3 설계의 필요성
__ 지금까지의 프런트엔드 코드
__ 코드는 살아있는 생물
2장 리액트의 기본
_ 2.1 리액트란?
__ 리액트의 특징
__ 리액트 추천 이유
_ 2.2 기본 구문과 실행 환경
__ ECMAScript
__ 개발 환경 준비
__ 온라인 편집기 CodeSandbox
_ 2.3 JSX
__ JSX란?
__ Babel
_ 2.4 리액트 작성 방법
__ 컴포넌트(Components )
__ render
__ 함수형 컴포넌트(Functional Components)
__ Props
__ State
__ 이벤트
__ key
_ 2.5 생명주기
__ 리액트에서의 생명주기
__ 처리의 흐름
__ Functional Components의 생명주기
_ 2.6 Babel 7로 업데이트
3장 아토믹 디자인
_ 3.1 아토믹 디자인이란?
__ 아토믹 디자인의 기본 개념
__ Atoms
__ Molecules
__ Organisms
__ Templates
__ Pages
_ 3.2 아토믹 디자인의 장점
__ 디자인 시스템
__ 개발에서의 디자인 기준
_ 3.3 컴포넌트 개발의 UI 디자인
__ 스타일
__ 레이아웃
__ 톤과 매너
_ 3.4 리액트와의 궁합
__ 비대해지지 않는 컴포넌트
__ 확장성
_ 3.5 Fragments
4장 소스 코드 빌드
_ 4.1 빌드의 이유
__ Node.js
__ 사람과 기계가 해야 할 일
__ 개발 환경의 확장성
_ 4.2 webpack
__ webpack의 기본
__ webpack 설정
__ webpack.config.js
__ 로더
__ 플러그인
_ 4.3 webpack-dev-server
__ 기본 사용 방법
__ Hot Module Replacement
5장 컴포넌트 구현
_ 5.1 모범 사례
__ Presentational과 Container 컴포넌트
__ 데이터 반영
__ Local State
_ 5.2 컴포넌트 수준
__ 아토믹 디자인과의 비교
__ Molecules·Organisms와 Templates·Pages
__ 실제 운용과 타협점
_ 5.3 프로젝트 구성
__ 컴포넌트 디렉터리
__ UI 라이브러리 활용
_ 5.4 서버 사이드 렌더링
__ 서버 사이드 렌더링이란?
__ 리액트로 서버 사이드 렌더링 구현
6장 CSS 구현
_ 6.1 컴포넌트화와 CSS
__ 종래의 접근법
__ 해결해야 할 문제
_ 6.2 CSS in JS
__ CSS in JS의 기본 개념
__ CSS modules
__ styled-components
__ styled-jsx
_ 6.3 CSS 분리
__ 지역 범위 실현
__ PostCSS
__ Portals
7장 로직 구현
_ 7.1 컴포넌트의 상태 관리
__ 프런트엔드가 가진 상태란?
__ 종래의 상태 관리와 Flux
_ 7.2 리덕스의 기본
__ 기본 개념과 3원칙
__ 구현
__ 데이터 흐름
_ 7.3 리덕스 실습
__ 리액트 컴포넌트와의 연결
__ 미들웨어(Middleware)
__ Store를 이용한 UI 제어
_ 7.4 비동기 처리
__ Redux의 지연 처리
__ redux-thunk
__ redux-saga
_ 7.5 Error Boundary
8장 제품의 품질
_ 8.1 품질 유지
__ 제품의 품질
__ 품질 유지의 필요성
__ 품질 유지의 포인트
_ 8.2 컴포넌트 테스트
__ 테스트 프레임워크
__ 리액트 컴포넌트 테스트
__ enzyme
__ enzyme의 렌더링 처리
_ 8.3 Lint
__ ESLint
__ ESLint 설정
__ Rules
__ stylelint
_ 8.4 flow
__ 자료형의 이점
__ flow란?
__ flow 실무
__ 자료형 지정의 응용과 자료형 정의
_ 8.5 스타일 가이드
__ 스타일 가이드의 필요성
__ Storybook
__ Storybook 설치
__ 스토리 파일 작성
__ 애드온
_ 1.1 웹 개발 기술의 변화와 환경
__ 웹 프런트엔드를 둘러싼 환경
__ 디자이너와 개발자
__ 개발 현장에서의 고민
__ 이상적인 프런트엔드 개발자
_ 1.2 개발자가 생각해야 할 것
__ 브라우저 지원
__ HTML과 CSS
__ CCS의 문제점
_ 1.3 설계의 필요성
__ 지금까지의 프런트엔드 코드
__ 코드는 살아있는 생물
2장 리액트의 기본
_ 2.1 리액트란?
__ 리액트의 특징
__ 리액트 추천 이유
_ 2.2 기본 구문과 실행 환경
__ ECMAScript
__ 개발 환경 준비
__ 온라인 편집기 CodeSandbox
_ 2.3 JSX
__ JSX란?
__ Babel
_ 2.4 리액트 작성 방법
__ 컴포넌트(Components )
__ render
__ 함수형 컴포넌트(Functional Components)
__ Props
__ State
__ 이벤트
__ key
_ 2.5 생명주기
__ 리액트에서의 생명주기
__ 처리의 흐름
__ Functional Components의 생명주기
_ 2.6 Babel 7로 업데이트
3장 아토믹 디자인
_ 3.1 아토믹 디자인이란?
__ 아토믹 디자인의 기본 개념
__ Atoms
__ Molecules
__ Organisms
__ Templates
__ Pages
_ 3.2 아토믹 디자인의 장점
__ 디자인 시스템
__ 개발에서의 디자인 기준
_ 3.3 컴포넌트 개발의 UI 디자인
__ 스타일
__ 레이아웃
__ 톤과 매너
_ 3.4 리액트와의 궁합
__ 비대해지지 않는 컴포넌트
__ 확장성
_ 3.5 Fragments
4장 소스 코드 빌드
_ 4.1 빌드의 이유
__ Node.js
__ 사람과 기계가 해야 할 일
__ 개발 환경의 확장성
_ 4.2 webpack
__ webpack의 기본
__ webpack 설정
__ webpack.config.js
__ 로더
__ 플러그인
_ 4.3 webpack-dev-server
__ 기본 사용 방법
__ Hot Module Replacement
5장 컴포넌트 구현
_ 5.1 모범 사례
__ Presentational과 Container 컴포넌트
__ 데이터 반영
__ Local State
_ 5.2 컴포넌트 수준
__ 아토믹 디자인과의 비교
__ Molecules·Organisms와 Templates·Pages
__ 실제 운용과 타협점
_ 5.3 프로젝트 구성
__ 컴포넌트 디렉터리
__ UI 라이브러리 활용
_ 5.4 서버 사이드 렌더링
__ 서버 사이드 렌더링이란?
__ 리액트로 서버 사이드 렌더링 구현
6장 CSS 구현
_ 6.1 컴포넌트화와 CSS
__ 종래의 접근법
__ 해결해야 할 문제
_ 6.2 CSS in JS
__ CSS in JS의 기본 개념
__ CSS modules
__ styled-components
__ styled-jsx
_ 6.3 CSS 분리
__ 지역 범위 실현
__ PostCSS
__ Portals
7장 로직 구현
_ 7.1 컴포넌트의 상태 관리
__ 프런트엔드가 가진 상태란?
__ 종래의 상태 관리와 Flux
_ 7.2 리덕스의 기본
__ 기본 개념과 3원칙
__ 구현
__ 데이터 흐름
_ 7.3 리덕스 실습
__ 리액트 컴포넌트와의 연결
__ 미들웨어(Middleware)
__ Store를 이용한 UI 제어
_ 7.4 비동기 처리
__ Redux의 지연 처리
__ redux-thunk
__ redux-saga
_ 7.5 Error Boundary
8장 제품의 품질
_ 8.1 품질 유지
__ 제품의 품질
__ 품질 유지의 필요성
__ 품질 유지의 포인트
_ 8.2 컴포넌트 테스트
__ 테스트 프레임워크
__ 리액트 컴포넌트 테스트
__ enzyme
__ enzyme의 렌더링 처리
_ 8.3 Lint
__ ESLint
__ ESLint 설정
__ Rules
__ stylelint
_ 8.4 flow
__ 자료형의 이점
__ flow란?
__ flow 실무
__ 자료형 지정의 응용과 자료형 정의
_ 8.5 스타일 가이드
__ 스타일 가이드의 필요성
__ Storybook
__ Storybook 설치
__ 스토리 파일 작성
__ 애드온
이시바시 케이타
1987년 출생으로 DMM.com 랩 소속이다. 디자이너로서 웹 사이트 제작을 경험한 후 2014년 5월부터 현 직장에서 근무하며 네이티브 앱 UI/UX 디자인과 웹 프런트엔드 업무를 담당하고 있다. 이직 후 본격적으로 자바스크립트를 배워 지금은 이벤트 참여와 OSS 커밋 활동 등을 수행한다. 디자인부터 구현까지 담당할 수 있다는 강점을 살려 사용성·접근성 등을 중시한 고품질 웹 개발을 연구하고 있다. 서비스나 가젯 등은 새것이 좋으며 배와 맥주와 음악을 무척 즐긴다(악기는 연주하지 못함).
1987년 출생으로 DMM.com 랩 소속이다. 디자이너로서 웹 사이트 제작을 경험한 후 2014년 5월부터 현 직장에서 근무하며 네이티브 앱 UI/UX 디자인과 웹 프런트엔드 업무를 담당하고 있다. 이직 후 본격적으로 자바스크립트를 배워 지금은 이벤트 참여와 OSS 커밋 활동 등을 수행한다. 디자인부터 구현까지 담당할 수 있다는 강점을 살려 사용성·접근성 등을 중시한 고품질 웹 개발을 연구하고 있다. 서비스나 가젯 등은 새것이 좋으며 배와 맥주와 음악을 무척 즐긴다(악기는 연주하지 못함).
실제 서비스의 설계와 구현에 초점을 맞춘 프런트엔드 모던 워크플로
리액트는 사용자 중심의 UI를 만드는 자바스크립트 라이브러리입니다. 프레임워크가 아니라 UI 개발을 위한 라이브러리 도구입니다. 실제 현장에서의 리액트는 성능과 접근성이 중요하며 이는 사용자 경험 향상에 직결되는 요소입니다. 그러므로 고품질의 UI를 구현하고 실현하려면 개발자와 디자이너 모두의 관점이 필요합니다.
이 책에서는 실제 현장에서의 대규모 리액트 서비스를 염두해 둔 설계를 지향하며 재사용성과 유지보수에 초점을 맞춘 컴포넌트 개발 방법을 설명합니다. 단순히 개발 언어나 라이브러리 설명, 예제 만들기에 머무르지 않고 조금은 생소할 수 있는 아토믹 디자인을 중심으로 UI 디자인 설계, 체계적이고 견고한 컴포넌트 구현, 상태 관리를 이용한 로직 구현, 컴포넌트 테스트, 유지 보수 등 프런트엔드의 다양한 영역을 두루 살펴봅니다.
최종적으로 웹 개발의 표준이 된 컴포넌트 기반의 개발 방법을 논리와 구현으로 본질을 이해하고 프런트엔드 개발자로서의 구체적인 미래상을 고민하며 실무에서 요긴하게 쓸 수 있도록 '앞으로의' 리액트를 설명합니다.
리액트는 사용자 중심의 UI를 만드는 자바스크립트 라이브러리입니다. 프레임워크가 아니라 UI 개발을 위한 라이브러리 도구입니다. 실제 현장에서의 리액트는 성능과 접근성이 중요하며 이는 사용자 경험 향상에 직결되는 요소입니다. 그러므로 고품질의 UI를 구현하고 실현하려면 개발자와 디자이너 모두의 관점이 필요합니다.
이 책에서는 실제 현장에서의 대규모 리액트 서비스를 염두해 둔 설계를 지향하며 재사용성과 유지보수에 초점을 맞춘 컴포넌트 개발 방법을 설명합니다. 단순히 개발 언어나 라이브러리 설명, 예제 만들기에 머무르지 않고 조금은 생소할 수 있는 아토믹 디자인을 중심으로 UI 디자인 설계, 체계적이고 견고한 컴포넌트 구현, 상태 관리를 이용한 로직 구현, 컴포넌트 테스트, 유지 보수 등 프런트엔드의 다양한 영역을 두루 살펴봅니다.
최종적으로 웹 개발의 표준이 된 컴포넌트 기반의 개발 방법을 논리와 구현으로 본질을 이해하고 프런트엔드 개발자로서의 구체적인 미래상을 고민하며 실무에서 요긴하게 쓸 수 있도록 '앞으로의' 리액트를 설명합니다.