Description
거대 괴수가 되어버린 자바스크립트 웹 개발로부터 살아남는 방법
오늘날 대규모 웹 앱 개발의 어려움을 극복하기 위해서는 알아야 할 게 많다. 이 책은 모던 웹 개발의 핵심 개념 및 최신 도구와 기술을 소개하고 이에 맞춰 리액트를 활용하는 법을 다룬다. 전반부에서는 복잡성, 디자인 시스템, 데이터 페칭, 상태 관리, 국제화, 코드 조직화 같은 핵심 개념을 살펴본다. 후반부는 개인화, A/B 테스팅, 웹 아키텍처, 테스팅, 기술 마이그레이션, 타입스크립트 등 세부 영역을 좀 더 자세히 설명한다. 확장 및 유지보수가 가능한 대규모 시스템을 구축하는 데 도움이 되는 통찰을 얻을 수 있다.

저자

애디오스마니,하산지르데

저자:애디오스마니
구글크롬을개발하는엔지니어링리더.크롬개발자경험조직을이끌며,개발자들이훌륭한사용자경험을구축할수있게돕고있다.웹앱구축및최적화저서를여럿썼으며,국내번역된책으로는《자바스크립트+리액트디자인패턴》(한빛미디어,2024)등이있다.

저자:하산지르데
다양한웹기술/프레임워크에능숙한소프트웨어엔지니어.리액트,그래프QL,타입스크립트등에특히정통하며,2019년에는캐나다의젊은개발자30인에선정되었다.Doordash,Instacart,Shopify등에서대규모프로덕션애플리케이션구축에참여했다.

역자:김모세
대학졸업후소프트웨어엔지니어,소프트웨어품질엔지니어,애자일코치등다양한부문에서소프트웨어개발에참여했다.재미있는일,나와조직이성장하도록돕는일에보람을느껴2019년부터번역을시작했다.
옮긴책으로는<블렌더로애니그림체캐릭터를만들어보자!>(모델링편/카툰렌더링편),<고도엔진간단입문>,<파이토치와구글코랩으로배우는BERT입문>,<제로부터시작하는러스트백엔드프로그래밍>(제이펍),<챗GPT프롬프트120%질문기술>(정보문화사),<애자일개발의기술2판>(에이콘),<타입스크립트,리액트,Next.js로배우는실전웹애플리케이션개발>(위키북스)등이있다.

목차

옮긴이머리말x
베타리더후기xii
머리말xiv

CHAPTER1시작하며1

CHAPTER2소프트웨어복잡성관리하기6
2.1복잡성설명하기8
2.2복잡성의근본원인파악하기9
2.3소프트웨어설계철학11
2.4타르웅덩이밖으로12
2.5단순함이쉬움을만든다13
2.6은탄환은없다14
2.7시스템디자인과아키텍처복잡성의비용15
2.8팀은어떻게복잡성을관리할수있는가?17
2.9최고의해결책은단순하지만간단하지않다18
2.10때때로(필수적인)복잡성은다른어딘가에는살아남아야한다19
2.11복잡성을관리하는데지속되는어려움은무엇인가?20
2.12결론21
2.13더읽을거리21

CHAPTER3모듈성23
3.1자바스크립트에서의모듈24
3.2지연로딩32
3.3코드분할37
3.4정리41

CHAPTER4성능42
4.1브라우저는어떻게작동하는가?43
4.2자바스크립트에서의비용이해하기와줄이기47
4.3상호작용최적화50
4.4네트워킹50
4.5서드파티의존성의영향줄이기51
4.6렌더링패턴54
4.7인지된성능최적화하기55
4.8성능최적화자료58
4.9성능문화61

CHAPTER5디자인시스템63
5.1코딩스타일가이드64
5.2디자인토큰66
5.3컴포넌트라이브러리71
5.4접근성74
5.5성능76
5.6문서화77
5.7케이스스터디78
5.8정리82

CHAPTER6데이터가져오기83
6.1브라우저API와간단한HTTP클라이언트83
6.2보다세련된데이터가져오기라이브러리85
6.3캐시업데이트하기92
6.4효율적인데이터가져오기를위한팁100

CHAPTER7상태관리106
7.1컴포넌트간데이터관리하기107
7.2prop내려보내기110
7.3단순한상태관리113
7.4상태관리전용라이브러리115
7.5마지막고려사항120

CHAPTER8국제화122
8.1코드에서텍스트와콘텐츠를분리하라123
8.2서드파티지역화라이브러리를활용하라125
8.3동적로딩130
8.4여러언어에서의복수형처리하기132
8.5날짜,시간,숫자형식나타내기134
8.6오른쪽에서왼쪽으로쓰는언어를고려하라138
8.7정리145

CHAPTER9코드조직화하기146
9.1폴더와파일구조147
9.2명명규칙150
9.3배럴익스포트151
9.4그밖의다른좋은프랙티스들152
9.5정리157

CHAPTER10개인화와A/B테스팅158
10.1개인화159
10.2A/B테스팅161
10.3기능플래그168
10.4정리172

CHAPTER11확장가능한웹아키텍처173
11.1확장성173
11.2확장가능한애플리케이션의특성178
11.3쿠버네티스와도커는어디에적합한가?179
11.4Vercel과Netlify같은기술은어디에적합한가?182
11.5정리184

CHAPTER12테스팅185
12.1단위테스트186
12.2엔드-투-엔드테스트191
12.3통합테스트200
12.4스냅숏테스트203
12.5애플리케이션을어떻게테스트해야하는가?207

CHAPTER13툴링212
13.1버전관리:깃212
13.2지속적통합215
13.3번들러216
13.4린팅218
13.5로깅과성능모니터링219
13.6정리221

CHAPTER14기술적마이그레이션222
14.1다양한마이그레이션전략223
14.2마이그레이션전략225
14.3코드모드226
14.4생성형AI의역할231

CHAPTER15타입스크립트235
15.1타입안전성235
15.2빌드도구와타입스크립트238
15.3구성과린팅238
15.4리액트+타입스크립트242
15.5선언파일들261
15.6API결과에타입자동생성263
15.7기존리액트애플리케이션을타입스크립트로마이그레이션하기270

CHAPTER16라우팅274
16.1사용자에게라우팅이중요한이유는무엇인가?274
16.2리액트의라우팅설루션279
16.3정리290

CHAPTER17사용자중심API디자인292
17.1일관성294
17.2에러핸들링300
17.3문서화303
17.4버저닝305
17.5보안309
17.6이해관계자참여315
17.7최종고려사항316
17.8더읽을거리317

CHAPTER18리액트의미래318
18.1무엇이달라지는가?319
18.2새로운훅과API319
18.3리액트컴파일러333
18.4리액트서버컴포넌트343
18.5더읽을거리357

CHAPTER19맺음말358

찾아보기364

출판사 서평

거대자바스크립트웹애플리케이션을구축하기위해알아야할모든것

오늘날웹애플리케이션은풍부한기능을제공하기위해점점복잡해지고있다.프런트엔드개발자들은마치거대괴수처럼덩치가커져버린대규모애플리케이션을구축하고유지보수해야하는어려움에직면했다.바닐라자바스크립트로뚝딱뚝딱프로토타입을만들고점차필요한기능을추가해나가는식으로는결코이도전적인과업을달성할수없다.세심한계획이필요하다.

이책은대규모의,유지보수가능한,확장성을가진자바스크립트웹애플리케이션을구축하기위해알아야할지식,도구,기술,전략을집대성한가이드북이다.코드예시는프런트엔드의사실상표준인리액트로작성되어있지만특정라이브러리에종속되는것이아니라,개념설명에초점을두면서구체적인라이브러리또는도구를통해개념을묘사하는방식이다.

책은소프트웨어복잡성에관한고찰로시작한다.이어서브라우저의작동원리부터성능최적화,성능문화까지성능에관해서도깊이있게살펴보고,디자인시스템,데이터가져오기,상태관리같은핵심개념을설명한다.번역과국제화,폴더와파일의조직화도다룬다.책의후반부는좀더심화된주제들로,개인화,A/B테스팅,확장성있는웹아키텍처,테스팅,툴링,기술적마이그레이션,타입스크립트등에관해논의한다.마지막장에서는리액트컴파일러나리액트서버컴포넌트를비롯해비교적새로운리액트의기능과API를설명한다.

웹개발의지평은매우넓고지금이순간에도진화를거듭하고있다.알아야할게많은대규모웹개발의여러영역을충실하게조망하는이책이어려운도전을극복하는데큰통찰을줄것이다.원서에서제공하지않는예제코드와추가자료URL모음을번역서깃허브저장소에서제공한다는점도본번역서의큰미덕이다.

주요내용
●복잡성,모듈성,성능,디자인시스템,데이터페칭등대규모웹앱개발의핵심개념
●번역과국제화,리액트애플리케이션을구조화하고효과적으로확장하는방법
●개인화,A/B테스팅,확장가능한웹아키텍처,캐싱전략,기술마이그레이션
●리액트코드를안전하게만드는타입스크립트와테스팅