책소개
거대 괴수가 되어버린 자바스크립트 웹 개발로부터 살아남는 방법 오늘날 대규모 웹 앱 개발의 어려움을 극복하기 위해서는 알아야 할 게 많다. 이 책은 모던 웹 개발의 핵심 개념 및 최신 도구와 기술을 소개하고 이에 맞춰 리액트를 활용하는 법을 다룬다. 전반부에서는 복잡성, 디자인 시스템, 데이터 페칭, 상태 관리, 국제화, 코드 조직화 같은 핵심 개념을 살펴본다. 후반부는 개인화, A/B 테스팅, 웹 아키텍처, 테스팅, 기술 마이그레이션, 타입스크립트 등 세부 영역을 좀 더 자세히 설명한다. 확장 및 유지보수가 가능한 대규모 시스템을 구축하는 데 도움이 되는 통찰을 얻을 수 있다.
저자소개
구글 크롬을 개발하는 엔지니어링 리더. 크롬 개발자 경험 조직을 이끌며, 개발자들이 훌륭한 사용자 경험을 구축할 수 있게 돕고 있다. 웹 앱 구축 및 최적화 저서를 여럿 썼으며, 국내 번역된 책으로는 『자바스크립트 + 리액트 디자인 패턴』(한빛미디어, 2024) 등이 있다.
목차
옮긴이 머리말 x베타리더 후기 xii머리말 xivCHAPTER 1 시작하며 1CHAPTER 2 소프트웨어 복잡성 관리하기 62.1 복잡성 설명하기 82.2 복잡성의 근본 원인 파악하기 92.3 소프트웨어 설계 철학 112.4 타르 웅덩이 밖으로 122.5 단순함이 쉬움을 만든다 132.6 은탄환은 없다 142.7 시스템 디자인과 아키텍처 복잡성의 비용 152.8 팀은 어떻게 복잡성을 관리할 수 있는가? 172.9 최고의 해결책은 단순하지만 간단하지 않다 182.10 때때로 (필수적인) 복잡성은 다른 어딘가에는 살아남아야 한다 192.11 복잡성을 관리하는 데 지속되는 어려움은 무엇인가? 202.12 결론 212.13 더 읽을 거리 21CHAPTER 3 모듈성 233.1 자바스크립트에서의 모듈 243.2 지연 로딩 323.3 코드 분할 373.4 정리 41CHAPTER 4 성능 424.1 브라우저는 어떻게 작동하는가? 434.2 자바스크립트에서의 비용 이해하기와 줄이기 474.3 상호작용 최적화 504.4 네트워킹 504.5 서드파티 의존성의 영향 줄이기 514.6 렌더링 패턴 544.7 인지된 성능 최적화하기 554.8 성능 최적화 자료 584.9 성능 문화 61CHAPTER 5 디자인 시스템 635.1 코딩 스타일 가이드 645.2 디자인 토큰 665.3 컴포넌트 라이브러리 715.4 접근성 745.5 성능 765.6 문서화 775.7 케이스 스터디 785.8 정리 82CHAPTER 6 데이터 가져오기 836.1 브라우저 API와 간단한 HTTP 클라이언트 836.2 보다 세련된 데이터 가져오기 라이브러리 856.3 캐시 업데이트하기 926.4 효율적인 데이터 가져오기를 위한 팁 100CHAPTER 7 상태 관리 1067.1 컴포넌트 간 데이터 관리하기 1077.2 prop 내려보내기 1107.3 단순한 상태 관리 1137.4 상태 관리 전용 라이브러리 1157.5 마지막 고려 사항 120CHAPTER 8 국제화 1228.1 코드에서 텍스트와 콘텐츠를 분리하라 1238.2 서드파티 지역화 라이브러리를 활용하라 1258.3 동적 로딩 1308.4 여러 언어에서의 복수형 처리하기 1328.5 날짜, 시간, 숫자 형식 나타내기 1348.6 오른쪽에서 왼쪽으로 쓰는 언어를 고려하라 1388.7 정리 145CHAPTER 9 코드 조직화하기 1469.1 폴더와 파일 구조 1479.2 명명 규칙 1509.3 배럴 익스포트 1519.4 그 밖의 다른 좋은 프랙티스들 1529.5 정리 157CHAPTER 10 개인화와 A/B 테스팅 15810.1 개인화 15910.2 A/B 테스팅 16110.3 기능 플래그 16810.4 정리 172CHAPTER 11 확장 가능한 웹 아키텍처 17311.1 확장성 17311.2 확장 가능한 애플리케이션의 특성 17811.3 쿠버네티스와 도커는 어디에 적합한가? 17911.4 Vercel과 Netlify 같은 기술은 어디에 적합한가? 18211.5 정리 184CHAPTER 12 테스팅 18512.1 단위 테스트 18612.2 엔드-투-엔드 테스트 19112.3 통합 테스트 20012.4 스냅숏 테스트 20312.5 애플리케이션을 어떻게 테스트해야 하는가? 207CHAPTER 13 툴링 21213.1 버전 관리: 깃 21213.2 지속적 통합 21513.3 번들러 21613.4 린팅 21813.5 로깅과 성능 모니터링 21913.6 정리 221CHAPTER 14 기술적 마이그레이션 22214.1 다양한 마이그레이션 전략 22314.2 마이그레이션 전략 22514.3 코드모드 22614.4 생성형 AI의 역할 231CHAPTER 15 타입스크립트 23515.1 타입 안전성 23515.2 빌드 도구와 타입스크립트 23815.3 구성과 린팅 23815.4 리액트 + 타입스크립트 24215.5 선언 파일들 26115.6 API 결과에 타입 자동 생성 26315.7 기존 리액트 애플리케이션을 타입스크립트로 마이그레이션하기 270CHAPTER 16 라우팅 27416.1 사용자에게 라우팅이 중요한 이유는 무엇인가? 27416.2 리액트의 라우팅 설루션 27916.3 정리 290CHAPTER 17 사용자 중심 API 디자인 29217.1 일관성 29417.2 에러 핸들링 30017.3 문서화 30317.4 버저닝 30517.5 보안 30917.6 이해관계자 참여 31517.7 최종 고려 사항 31617.8 더 읽을 거리 317CHAPTER 18 리액트의 미래 31818.1 무엇이 달라지는가? 31918.2 새로운 훅과 API 31918.3 리액트 컴파일러 33318.4 리액트 서버 컴포넌트 34318.5 더 읽을 거리 357CHAPTER 19 맺음말 358찾아보기 364