한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

들어가며
웹 프론트엔드 프로젝트 개발을 하면서 리액트를 라이브러리를 다룰일이 많은데요. 코드를 작성하며 자주 드는 생각이 있습니다. '설계부터 잘 해놓았으면 이렇게 변경사항이 많지 않았을텐데'라는 아쉬움이죠. 프로젝트가 진행될수록 코드 재사용성을 높이는 방법에 대한 고민도 깊어집니다. 이 책의 제목 <패턴으로 익히고 설계로 완성하는 리액트>는 그런 제 관심사와 정확히 맞닿아 있어 궁금증을 불러일으켰어요. 특히 소규모 프로젝트에 익숙했던 제가 회사에서 대규모 프로젝트를 처음 접하게 되면서, 어떤 설계 패턴이 유용할지에 대한 고민이 더욱 커졌습니다. 이 책을 통해 리액트 프로젝트의 구조를 체계적으로 잡는 방법, 리팩토링 기법, 그리고 실무에서 효과적인 설계 원칙을 배울 수 있을 것이라는 기대가 생겼습니다.




목차
[PART 1 리액트 기본 개념]
CHAPTER 1 리액트 안티패턴 소개
_1.1 UI 구축의 어려움에 대한 이해
_1.2 상태 관리의 이해
_1.3 예외 흐름 탐색하기
_1.4 리액트의 일반적인 안티패턴 살펴보기
CHAPTER 2 리액트 필수 개념 이해
_2.1 리액트 정적 컴포넌트
_2.2 prop이 있는 컴포넌트 만들기
_2.3 UI를 여러 컴포넌트로 나누기
_2.4 리액트 내부 상태 관리
_2.5 렌더링 과정 이해하기
_2.6 많이 사용되는 리액트 훅
CHAPTER 3 리액트 애플리케이션 구조
_3.1 구조화되지 않은 프로젝트의 문제점
_3.2 프런트엔드 애플리케이션의 복잡함에 대한 이해
_3.3 일반적인 리액트 애플리케이션 구조
_3.4 프로젝트 구조를 체계적으로 유지하기
CHAPTER 4 리액트 컴포넌트 설계하기
_4.1 단일 책임 원칙
_4.2 중복 배제 원칙
_4.3 합성 활용하기
_4.4 컴포넌트 설계 원칙의 결합
[PART 2 테스팅 기법]
CHAPTER 5 리액트 테스팅
_5.1 테스트가 필요한 이유
_5.2 여러 종류의 테스트 알아보기
_5.3 Jest로 하는 개별 단위 테스팅
_5.4 통합 테스트
_5.5 Cypress를 이용한 E2E 테스트
CHAPTER 6 일반적인 리팩터링 기법 살펴보기
_6.1 리팩터링 이해하기
_6.2 리팩터링 전 테스트 추가하기
_6.3 변수 추출하기
_6.4 반복문을 파이프라인으로 바꾸기
_6.5 함수 추출하기
_6.6 매개변수 객체 도입
_6.7 조건문 분해하기
_6.8 함수 이동하기
CHAPTER 7 리액트에서의 테스트 주도 개발
_7.1 TDD 이해하기
_7.2 태스킹 이해하기
_7.3 온라인 피자 가게 애플리케이션
_7.4 애플리케이션 요구사항 세분화
_7.5 애플리케이션 헤드라인 구현
_7.6 메뉴 목록 구현
_7.7 장바구니 만들기
_7.8 장바구니에 아이템 담기
_7.9 애플리케이션 리팩터링
[PART 3 비즈니스 로직과 디자인 패턴 알아보기]
CHAPTER 8 리액트 데이터 관리
_8.1 비즈니스 로직 누수 현상
_8.2 ACL(오류 방지 계층)
_8.3 Prop Drilling 문제 살펴보기
_8.4 Context API를 통한 Prop Drilling 문제 해결
CHAPTER 9 리액트 설계 원칙 적용
_9.1 단일 책임 원칙
_9.2 의존관계 역전 원칙
_9.3 명령과 조회 책임 분리 원칙
CHAPTER 10 합성 패턴
_10.1 고차 컴포넌트를 통한 합성의 이해
_10.2 리액트 훅
_10.3 드롭다운 목록 컴포넌트 만들기
_10.4 헤드리스 컴포넌트 패턴
[PART 4 실무에서의 구현]
CHAPTER 11 리액트 계층 구조 애플리케이션
_11.1 리액트 애플리케이션의 진화
_11.2 코드 오븐 애플리케이션 개선하기
_11.3 장바구니 컴포넌트 구현
_11.4 계층 구조 알아보기
CHAPTER 12 E2E 프로젝트 구현하기
_12.1 날씨 애플리케이션에 필요한 요구사항 확인
_12.2 초기 승인 테스트 작성
_12.3 도시 검색 기능 구현
_12.4 ACL 구현
_12.5 즐겨찾기 추가 기능 구현
_12.6 애플리케이션 재실행 시 이전 날씨 데이터 불러오기
CHAPTER 13 리액트 안티패턴 원칙 돌아보기
_13.1 일반적인 안티패턴 돌아보기
_13.2 디자인 패턴 훑어보기
_13.3 기본 설계 원칙 복습하기
_13.4 기법과 실무 예제 정리

주요 내용
이 책은 리액트 개발에서 흔히 마주치는 문제들을 설계 원칙과 패턴으로 해결하는 방법을 다룹니다. 단순히 리액트 문법을 알려주는 책이 아니라, 대규모 애플리케이션을 개발할 때 부딪히는 비동기 처리, 상태 관리, 성능 최적화 같은 실질적인 도전 과제에 대한 해결책을 제시합니다. 안티패턴을 정의하고 이를 검증된 설계 원칙으로 개선하는 과정을 통해 유지보수가 용이한 코드를 작성하는 노하우를 배울 수 있죠. 특히 책에서는 TDD와 리팩터링을 강조하며, 날씨 애플리케이션이나 온라인 피자 가게와 같은 실전 프로젝트를 통해 이론을 실습해요.
특징
이 책의 가장 큰 특징은 리액트의 기본 사용법을 넘어 소프트웨어 설계 원칙을 깊이 있게 탐구한다는 점입니다. 단일 책임 원칙, 의존관계 역전 원칙, 명령과 조회 책임 분리 원칙 등 객체지향 설계 원칙을 리액트에 적용하는 방법을 상세히 설명합니다. 또한 고차 컴포넌트, 헤드리스 컴포넌트 패턴 같은 고급 패턴도 다루고 있죠. 책은 크게 4부로 구성되어 있는데요. 1부에서는 리액트의 기본 개념을, 2부에서는 테스팅 기법을, 3부에서는 비즈니스 로직과 디자인 패턴을, 4부에서는 실무에서의 구현을 다룹니다. 이런 구성을 통해 독자들이 단계적으로 지식을 쌓아갈 수 있도록 한 것 같아요. 특히 테스트 주도 개발(TDD)과 리팩토링에 많은 내용을 다루고 있어서, 견고하고 신뢰할 수 있는 코드를 작성하는 방법을 배울 수 있습니다.

추천 이유와 대상
이 책은 리액트의 기본기를 익힌 후, 한 단계 더 성장하고자 하는 욕심이 있는 개발자들에게 적합할 것 같아요. 리액트 입문서가 아니라 중급 이상의 개발자를 위한 실무 가이드 정도로 생각하시면 좋을 것 같습니다. 특히 프로젝트가 커질수록 복잡해지는 코드 구조와 관리에 고민이 있는 개발자들에게 큰 도움이 될 것 같아요.
맺음말
<패턴으로 익히고 설계로 완성하는 리액트>는 단순히 '어떻게' 코딩하는지가 아니라 '왜' 그렇게 코딩해야 하는지를 알려주는 책입니다. 리액트의 기본 문법은 금방 익힐 수 있지만, 확장 가능하고 유지보수하기 쉬운 코드를 작성하는 것은 또 다른 문제죠. 이 책은 그 간극을 메워주는 다리 역할을 합니다.
시간이 지날수록 더 나은 코드와 구조에 대한 고민이 깊어지는 개발자라면, 이 책을 통해 많은 인사이트를 얻을 수 있을 거예요. 특히 TDD와 리팩터링을 통한 클린 코드 작성법은 리액트뿐 아니라 다른 프로그래밍 영역에서도 활용할 수 있는 귀중한 지식일 것이라고 생각해요. 리액트로 더 나은 소프트웨어를 만들고 싶은 모든 개발자들에게 이 책을 추천해봅니다!
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

들어가며
웹 프론트엔드 프로젝트 개발을 하면서 리액트를 라이브러리를 다룰일이 많은데요. 코드를 작성하며 자주 드는 생각이 있습니다. '설계부터 잘 해놓았으면 이렇게 변경사항이 많지 않았을텐데'라는 아쉬움이죠. 프로젝트가 진행될수록 코드 재사용성을 높이는 방법에 대한 고민도 깊어집니다. 이 책의 제목 <패턴으로 익히고 설계로 완성하는 리액트>는 그런 제 관심사와 정확히 맞닿아 있어 궁금증을 불러일으켰어요. 특히 소규모 프로젝트에 익숙했던 제가 회사에서 대규모 프로젝트를 처음 접하게 되면서, 어떤 설계 패턴이 유용할지에 대한 고민이 더욱 커졌습니다. 이 책을 통해 리액트 프로젝트의 구조를 체계적으로 잡는 방법, 리팩토링 기법, 그리고 실무에서 효과적인 설계 원칙을 배울 수 있을 것이라는 기대가 생겼습니다.




목차
[PART 1 리액트 기본 개념]
CHAPTER 1 리액트 안티패턴 소개
_1.1 UI 구축의 어려움에 대한 이해
_1.2 상태 관리의 이해
_1.3 예외 흐름 탐색하기
_1.4 리액트의 일반적인 안티패턴 살펴보기
CHAPTER 2 리액트 필수 개념 이해
_2.1 리액트 정적 컴포넌트
_2.2 prop이 있는 컴포넌트 만들기
_2.3 UI를 여러 컴포넌트로 나누기
_2.4 리액트 내부 상태 관리
_2.5 렌더링 과정 이해하기
_2.6 많이 사용되는 리액트 훅
CHAPTER 3 리액트 애플리케이션 구조
_3.1 구조화되지 않은 프로젝트의 문제점
_3.2 프런트엔드 애플리케이션의 복잡함에 대한 이해
_3.3 일반적인 리액트 애플리케이션 구조
_3.4 프로젝트 구조를 체계적으로 유지하기
CHAPTER 4 리액트 컴포넌트 설계하기
_4.1 단일 책임 원칙
_4.2 중복 배제 원칙
_4.3 합성 활용하기
_4.4 컴포넌트 설계 원칙의 결합
[PART 2 테스팅 기법]
CHAPTER 5 리액트 테스팅
_5.1 테스트가 필요한 이유
_5.2 여러 종류의 테스트 알아보기
_5.3 Jest로 하는 개별 단위 테스팅
_5.4 통합 테스트
_5.5 Cypress를 이용한 E2E 테스트
CHAPTER 6 일반적인 리팩터링 기법 살펴보기
_6.1 리팩터링 이해하기
_6.2 리팩터링 전 테스트 추가하기
_6.3 변수 추출하기
_6.4 반복문을 파이프라인으로 바꾸기
_6.5 함수 추출하기
_6.6 매개변수 객체 도입
_6.7 조건문 분해하기
_6.8 함수 이동하기
CHAPTER 7 리액트에서의 테스트 주도 개발
_7.1 TDD 이해하기
_7.2 태스킹 이해하기
_7.3 온라인 피자 가게 애플리케이션
_7.4 애플리케이션 요구사항 세분화
_7.5 애플리케이션 헤드라인 구현
_7.6 메뉴 목록 구현
_7.7 장바구니 만들기
_7.8 장바구니에 아이템 담기
_7.9 애플리케이션 리팩터링
[PART 3 비즈니스 로직과 디자인 패턴 알아보기]
CHAPTER 8 리액트 데이터 관리
_8.1 비즈니스 로직 누수 현상
_8.2 ACL(오류 방지 계층)
_8.3 Prop Drilling 문제 살펴보기
_8.4 Context API를 통한 Prop Drilling 문제 해결
CHAPTER 9 리액트 설계 원칙 적용
_9.1 단일 책임 원칙
_9.2 의존관계 역전 원칙
_9.3 명령과 조회 책임 분리 원칙
CHAPTER 10 합성 패턴
_10.1 고차 컴포넌트를 통한 합성의 이해
_10.2 리액트 훅
_10.3 드롭다운 목록 컴포넌트 만들기
_10.4 헤드리스 컴포넌트 패턴
[PART 4 실무에서의 구현]
CHAPTER 11 리액트 계층 구조 애플리케이션
_11.1 리액트 애플리케이션의 진화
_11.2 코드 오븐 애플리케이션 개선하기
_11.3 장바구니 컴포넌트 구현
_11.4 계층 구조 알아보기
CHAPTER 12 E2E 프로젝트 구현하기
_12.1 날씨 애플리케이션에 필요한 요구사항 확인
_12.2 초기 승인 테스트 작성
_12.3 도시 검색 기능 구현
_12.4 ACL 구현
_12.5 즐겨찾기 추가 기능 구현
_12.6 애플리케이션 재실행 시 이전 날씨 데이터 불러오기
CHAPTER 13 리액트 안티패턴 원칙 돌아보기
_13.1 일반적인 안티패턴 돌아보기
_13.2 디자인 패턴 훑어보기
_13.3 기본 설계 원칙 복습하기
_13.4 기법과 실무 예제 정리

주요 내용
이 책은 리액트 개발에서 흔히 마주치는 문제들을 설계 원칙과 패턴으로 해결하는 방법을 다룹니다. 단순히 리액트 문법을 알려주는 책이 아니라, 대규모 애플리케이션을 개발할 때 부딪히는 비동기 처리, 상태 관리, 성능 최적화 같은 실질적인 도전 과제에 대한 해결책을 제시합니다. 안티패턴을 정의하고 이를 검증된 설계 원칙으로 개선하는 과정을 통해 유지보수가 용이한 코드를 작성하는 노하우를 배울 수 있죠. 특히 책에서는 TDD와 리팩터링을 강조하며, 날씨 애플리케이션이나 온라인 피자 가게와 같은 실전 프로젝트를 통해 이론을 실습해요.
특징
이 책의 가장 큰 특징은 리액트의 기본 사용법을 넘어 소프트웨어 설계 원칙을 깊이 있게 탐구한다는 점입니다. 단일 책임 원칙, 의존관계 역전 원칙, 명령과 조회 책임 분리 원칙 등 객체지향 설계 원칙을 리액트에 적용하는 방법을 상세히 설명합니다. 또한 고차 컴포넌트, 헤드리스 컴포넌트 패턴 같은 고급 패턴도 다루고 있죠. 책은 크게 4부로 구성되어 있는데요. 1부에서는 리액트의 기본 개념을, 2부에서는 테스팅 기법을, 3부에서는 비즈니스 로직과 디자인 패턴을, 4부에서는 실무에서의 구현을 다룹니다. 이런 구성을 통해 독자들이 단계적으로 지식을 쌓아갈 수 있도록 한 것 같아요. 특히 테스트 주도 개발(TDD)과 리팩토링에 많은 내용을 다루고 있어서, 견고하고 신뢰할 수 있는 코드를 작성하는 방법을 배울 수 있습니다.

추천 이유와 대상
이 책은 리액트의 기본기를 익힌 후, 한 단계 더 성장하고자 하는 욕심이 있는 개발자들에게 적합할 것 같아요. 리액트 입문서가 아니라 중급 이상의 개발자를 위한 실무 가이드 정도로 생각하시면 좋을 것 같습니다. 특히 프로젝트가 커질수록 복잡해지는 코드 구조와 관리에 고민이 있는 개발자들에게 큰 도움이 될 것 같아요.
맺음말
<패턴으로 익히고 설계로 완성하는 리액트>는 단순히 '어떻게' 코딩하는지가 아니라 '왜' 그렇게 코딩해야 하는지를 알려주는 책입니다. 리액트의 기본 문법은 금방 익힐 수 있지만, 확장 가능하고 유지보수하기 쉬운 코드를 작성하는 것은 또 다른 문제죠. 이 책은 그 간극을 메워주는 다리 역할을 합니다.
시간이 지날수록 더 나은 코드와 구조에 대한 고민이 깊어지는 개발자라면, 이 책을 통해 많은 인사이트를 얻을 수 있을 거예요. 특히 TDD와 리팩터링을 통한 클린 코드 작성법은 리액트뿐 아니라 다른 프로그래밍 영역에서도 활용할 수 있는 귀중한 지식일 것이라고 생각해요. 리액트로 더 나은 소프트웨어를 만들고 싶은 모든 개발자들에게 이 책을 추천해봅니다!