본문으로 바로가기
태극기이 누리집은 대한민국 공식 전자정부 누리집입니다.
평면표지(2D 앞표지)
입체표지(3D 표지)
2D 뒤표지

다시 깊게 익히는 인사이드 리액트


  • ISBN-13
    979-11-94383-37-6 (93000)
  • 출판사 / 임프린트
    골든래빗(주) / 골든래빗(주)
  • 정가
    42,000 원 확정정가
  • 발행일
    2025-08-20
  • 출간상태
    출간
  • 저자
    단테(윤재원)
  • 번역
    -
  • 메인주제어
    웹프로그래밍
  • 추가주제어
    웹 접근성 및 디지털 디자인 , 웹서비스
  • 키워드
    #웹프로그래밍 #웹 접근성 및 디지털 디자인 #웹서비스 #자바스크립트 #타입스크립트 #Node.js #바이브코딩 #AI페어프로그래밍 #페어프로그래밍 #AI코딩 #React #Next.js #React.js #ESLint #Vue #VueJS #프론트엔드 #프런트엔드 #웹개발 #싱글페이지 #SPA #멀티페이지 #MPA #서버사이드렌더링 #SSR #클라이언트사이드렌더링 #CSR #리액트서버컴포넌트 #RSC #UI #UI/UX #컴포넌트 #상태 #반응성 #개발환경 #명령형프로그래밍 #선언형프로그래밍 #DOM #모듈 #의존성 #번들러 #웹팩 #비트 #HTML #HTML 템플릿 엔진 #패키지매니저 #모노레포 #Prettier #DSL #합성 이벤트 #렌더링 #리렌더링 #가상DOM #조정 #알고리즘 #순수성 #불변성 #프롭스 #MVC #MVVM #관찰자패턴 #바인딩 #양방향바인딩 #단방향바인딩 #레이지로딩 #훅 #useState() #useEffect() #useRef() #useMemo() #useCallback() #React.memo() #컴파일러
  • 도서유형
    종이책, 무선제본
  • 대상연령
    모든 연령, 성인 일반 단행본
  • 도서상세정보
    183 * 235 mm, 696 Page

책소개

★ AI에 대체되지 않는 개발자로 살아가는 무한 진리 공식

★ 더 깊게, 더 견고하게, 더 집요하게 개념과 원리로 승부하라!

★ 프론트엔드 개발자로 살아가하려면 핵심 역량, 리액트를 정복하라!


 

이 책은 프론트엔드 개발자들이 복잡한 웹 개발 환경에서 마주하는 문제들을 해결하고, 실제 애플리케이션을 효율적으로 구축할 수 있도록 돕는 리액스 중급서입니다. 프론트엔드 기술이 왜, 어떻게 발전해왔는지 변천사를 이해함으로써, 웹 애플리케이션의 뼈대를 이루는 UI 컴포넌트를 설계하고 재사용성을 높이는 방법, 상태와 반응성을 통해 예측 가능한 UI를 만드는 원리를 알려드립니다. 또한 타입스크립트를 활용하여 런타임 오류를 사전에 방지하는 견고한 코드를 작성하는 노하우도 온라인 별책(PDF)으로 제공합니다.


 

이 책은 리액트의 렌더링 과정과 가상 DOM의 작동 원리를 깊이 있게 분석하여 불필요한 렌더링을 줄이고 성능을 최적화하는 실질적인 방법을 제시함으로써, 독자들이 예상치 못한 버그를 방지하고 더 견고한 애플리케이션을 설계할 수 있도록 돕겠습니다.


 

* 〈내코부〉로 오세요!

함께 의논하고 연구할 상대가 필요하다면, 디스코드 & 카톡에서 함께 연구해요. 모르는 내용을 질문하고, 오류를 해결해보세요. 〈내 코드를 부탁해 : 내코부〉에 오시면 다른 개발자와 노하우를 공유하며 더 많은 지식을 쌓아갈 수 있어요. 

- 디스코드 내코부 : discord.com/invite/BYRpaDrfbH

- 카톡 내코부 : open.kakao.com/o/ggK7EAJh

목차

[PART 1] 프론트엔드 개발 돌아보기


 

01장 프론트엔드 구성 요소와 발전 과정 돌아보기

__1.1 프론트엔드의 구성 요소와 발전 과정을 돌아봐야 하는 이유

__1.2 웹 개발과 프론트엔드가 차지하는 위상과 구성 요소

__1.3 초창기 웹 프론트엔드

__1.4 모듈의 탄생과 한계

__1.5 번들러의 탄생

__1.6 패키지 매니저의 도입

__1.7 템플릿 엔진의 도입

__1.8 명령형, 선언형 프로그래밍

____1.8.1 명령형 방식의 프론트엔드 개발

____1.8.2 선언형 방식의 프론트엔드 개발

학습 마무리 | 핵심 키워드 리마인드


 

02장 싱글 페이지 애플리케이션 돌아보기

__2.1 싱글 페이지 애플리케이션의 장점을 돌아봐야 하는 이유

__2.2 네트워크 호출 빈도

__2.3 성능 향상

__2.4 생산성 향상

____2.4.1 프론트엔드와 백엔드 개발 영역의 엄격한 분리

____2.4.2 선언형 프로그래밍을 사용한 빠른 프로토타입 구현

학습 마무리 | 핵심 키워드 리마인드


 

03장 UI 컴포넌트의 위상 돌아보기

__3.1 UI 컴포넌트의 위상을 돌아봐야 하는 이유

__3.2 프론트엔드 개발에서 UI 컴포넌트의 위상

__3.3 UI 컴포넌트의 추상화, 인터페이스, 캡슐화

__3.4 바닐라 자바스크립트로 컴포넌트 만들기

__3.5 웹 컴포넌트 API를 사용해 컴포넌트 만들기

__3.6 바닐라 자바스크립트 vs 웹 컴포넌트 API를 사용한 컴포넌트 비교

학습 마무리 | 핵심 키워드 리마인드


 

04장 상태와 반응성 돌아보기

__4.1 상태와 반응성을 돌아봐야 하는 이유

__4.2 상태와 설계 컴포넌트

____4.2.1 UI, 인터랙션을 담당하는 뷰(VIEW)

____4.2.2 데이터를 담당하는 모델

____4.2.3 모델과 뷰를 이어주는 중재자

__4.3 주요 디자인 패턴을 사용한 반응성 구현

____4.3.1 비 반응성 MVC 패턴 중재자 만들기

____4.3.2 MVC 패턴에 반응성 주입하기

__4.4 관찰자 패턴 알아보기

__4.5 MVVM 패턴과 반응성

____4.5.1 양방향 바인딩과 단방향 바인딩

____4.5.2 MVVM 패턴을 적용한 할 일 리스트 작성하기

____4.5.3 바인더 알아보기

____4.5.4 바인더 작성하기

학습 마무리 | 핵심 키워드 리마인드


 

05장 프론트엔드 구성 요소와 발전 과정 돌아보기

__5.1 개발 환경을 돌아봐야 하는 이유

__5.2 Node.js와 버전 매니저

____5.2.1 Node.js 구조와 원리

____5.2.2 노드 버전 매니저

__5.3 패키지 매니저

____5.3.1 패키지 매니저 비교

__5.4 모노레포

____5.4.1 모노레포와 모노레포 도구의 장점

__5.5 코드 퀄리티와 코드 포매팅

____5.5.1 린터

____5.5.2 포매터

____5.5.3 코드 정적 분석기

__5.6 리액트 개발 도구

____5.6.1 리액트 데브툴즈

____5.6.2 리액트 스캔

__5.7 리액트 개발 환경과 빌드 도구

____5.7.1 비트

____5.7.2 Rsbuild

____5.7.3 리액트 라우터

학습 마무리 | 핵심 키워드 리마인드


 

[PART 2] 리액트 핵심 요소 깊게 돌아보기


 

06장 JSX 구성 요소 돌아보기

__6.1 당신이 JSX를 공부해야 하는 이유

__6.2 DSL과 JSX 알아보기

__6.3 JSX를 구성하는 요소

____6.3.1 JSXElements

____6.3.2 JSXAttributes

____6.3.3 JSXChildren

____6.3.4 JSX Strings

학습 마무리 | 핵심 키워드 리마인드


 

07장 JSX 핵심 문법과 자바스크립트 변환 돌아보기

__7.1 JSX 핵심 문법과 자바스크립트 변환을 돌아봐야 하는 이유

__7.2 JSX 변환하기

____7.2.1 자동 런타임이란

____7.2.2 바벨로 JSX 변환해보기

____7.2.3 SWC로 JSX 변환해보기

____7.2.4 ESBuild로 JSX 변환해보기

____7.2.5 React.createElement와 리액트 엘리먼트 그리고 가상 DOM

__7.3 JSX의 핵심 문법 돌아보기

____7.3.1 템플릿 리터럴과 태그드 템플릿 돌아보기

____7.3.2 JSX VS 템플릿 리터럴

____7.3.3 합성 이벤트

____7.3.4 단일 루트 엘리먼트

____7.3.5 삼항 연산자와 &&

학습 마무리 | 핵심 키워드 리마인드


 

08장 리액트 재조정과 키 프롭스 돌아보기

__8.1 당신이 렌더링과 가상 DOM을 돌아봐야 하는 이유

__8.2 리액트 컴포넌트와 인스턴스

__8.3 렌더링과 리렌더링

__8.4 재조정 과정

__8.5 얕은 비교와 렌더링 최적화

__8.6 키(key) 프롭스와 리스트 렌더링

__8.7 키(key) 프롭스와 메모이제이션

학습 마무리 | 핵심 키워드 리마인드


 

09장 리액트 렌더링 규칙 돌아보기

__9.1 당신이 리액트 렌더링 규칙을 돌아봐야 하는 이유

__9.2 렌더링 조건

____9.2.1 애플리케이션이 처음 로드될 때

____9.2.2 컴포넌트 내부 상탯값의 변경으로 인한 리렌더링

____9.2.3 부모 컴포넌트가 리렌더링되었을 때

____9.2.4 컨텍스트의 값이 변경되었을 때

__9.3 리렌더링에 대한 오해

____9.3.1 자식 컴포넌트와 props.children

____9.3.2 컴포넌트에 전달되는 프롭스값이 변경되었을 때?

__9.4 리액트 렌더링 규칙

____9.4.1 부수 효과 제거와 멱등성 보장

____9.4.2 리액트 렌더링 규칙 - JSX로 전달된 값의 불변성을 유지

학습 마무리 | 핵심 키워드 리마인드


 

10장 리액트의 프롭스와 컴포넌트 패턴 돌아보기

__10.1 당신이 리액트의 프롭스와 컴포넌트 패턴을 돌아봐야 하는 이유

__10.2 리액트의 프롭스와 상태 개념

____10.2.1 리액트의 프롭스와 상태

____10.2.2 프롭스의 불변성

____10.2.3 프롭스와 속성

__10.3 프롭스 자료형 검증

____10.3.1 런타임 검증을 위한 prop-types 라이브러리

____10.3.2 컴파일 타임 검증을 위한 타입스크립트

__10.4 프롭스를 사용하는 컴포넌트 패턴

____10.4.1 컴포넌트 합성과 상속, 그리고 고차 컴포넌트

____10.4.2 중첩 컴포넌트와 children, 프롭스 드릴링

____10.4.3 렌더 프롭스 패턴

____10.4.4 슬롯 프롭스 패턴

____10.4.5 컴파운드 컴포넌트 패턴

____10.4.6 명시적 슬롯 패턴 - slot type RFC

학습 마무리 | 핵심 키워드 리마인드


 

11장 리액트의 상태와 배칭 돌아보기

__11.1 당신이 리액트의 상태와 배칭을 돌아봐야 하는 이유

__11.2 리액트의 상태 정의와 종류

____11.2.1 지역 상태와 파생 상태

____11.2.2 상태와 스냅샷

____11.2.3 상태의 불변성

____11.2.4 상태 끌어올리기

__11.3 컴포넌트 간의 데이터 흐름 돌아보기

____11.3.1 단방향 데이터 흐름과 단방향 바인딩

____11.3.2 양방향 데이터 흐름과 양방향 바인딩

__11.4 리액트 배칭 돌아보기

____11.4.1 배칭의 개념과 필요성

____11.4. 2 비동기 동작에서의 배칭 프로세스

____11.4.3 react-dom의 flushSync( )

학습 마무리 | 핵심 키워드 리마인드


 

12장 리액트를 구성하는 뿌리, 파이버 돌아보기

__12.1 당신이 리액트 파이버를 돌아봐야 하는 이유

__12.2 리액트 스택 재조정자 알아보기

____12.2.1 스택 재조정자 동작 원리

____12.2.2 스택 재조정자의 한계

__12.3 파이버 아키텍처 알아보기

____12.3.1 파이버 노드 해부하기

____12.3.2 파이버 우선순위와 레인(Lanes) 모델

____12.3.3 파이버 트리 구조 : 재귀 없는 순회

____12.3.4 더블 버퍼링과 얼터네이트 포인터

____12.3.5 파이버 아키텍처와 동시성 기능 원리

학습 마무리 | 핵심 키워드 리마인드


 

[PART 3] 리액트 훅 사용법 깊게 돌아보기


 

13장 리액트 훅의 사용 규칙 돌아보기

__13.1 당신이 리액트 훅을 돌아봐야 하는 이유

__13.2 왜 훅이라고 부를까?

__13.3 클래스 컴포넌트에서 함수형 컴포넌트로

____13.3.1 this 키워드의 혼란과 수동 바인딩의 번거로움

____13.3.2 고차 컴포넌트와 래퍼 지옥

____13.3.3 커스텀 훅을 사용한 로직 재사용

__13.4 리액트 훅 사용 규칙

____13.4.1 훅은 최상위에서만 호출해야 한다

____13.4.2 오직 리액트 함수 내에서만 훅을 호출해야 한다

____13.4.3 훅의 인수는 불변성을 가지고 있어야 한다

학습 마무리 | 핵심 키워드 리마인드


 

14장 리액트 필수 훅 돌아보기

__14.1 당신이 리액트 필수 훅을 돌아봐야 하는 이유

__14.2 useState( ) : 리액트 상태 관리의 시작과 핵심

____14.2.1 상태 초기화와 지연 초기화

____14.2.2 상태 업데이트와 업데이트 함수

____14.2.3 업데이트 함수와 클로저

__14.3 useEffect( ) : 컴포넌트를 외부 세계와 동기화하기

____14.3.1 useEffect( ) 사용법과 의존성 배열 돌아보기

____14.3.2 부수 효과의 뒷정리 : useEffect( )의 클린업 함수

____14.3.3 부수 효과 다루기 : 외부 시스템과 동기화

____14.3.4 엄격 모드에서의 useEffect( )

__14.4 useRef( ) : 렌더링을 넘어 값을 기억하는 법

____14.4.1 리렌더링을 발생시키지 않는 useRef( )

____14.4.2 useRef( )를 사용한 DOM 요소 직접 접근

____14.4.3 forwardRef( ) : 부모가 자식의 DOM에 접근하는 방법

____14.4.4 리액트 19버전에서의 forwardRef( )

__14.5 useReducer( )와 리액트 포탈

____14.5.1 useReducer( ) 알아보기

____14.5.2 createPortal( )로 모달 컴포넌트 만들기

학습 마무리 | 핵심 키워드 리마인드


 

15장 리액트 메모이제이션 돌아보기

__15.1 당신이 리액트 메모이제이션을 돌아봐야 하는 이유

__15.2 memo( )를 사용한 렌더링 최적화

____15.2.1 memo( ) 사용법

____15.2.2 성급한 최적화의 함정

____15.2.3 중첩 구조와 children 프롭스의 함정

__15.3 useMemo( ) : 값 메모이제이션

____15.3.1 useMemo( ) 내부 동작 들여다보기

____15.3.2 useMemo( )를 활용한 연산 최적화 예제

__15.4 useCallback( ) : 함수 메모이제이션

____15.4.1 useCallback( )으로 커스텀 훅에 안정적인 콜백 전달하기

____15.4.2 useCallback( )으로 프롭스 메모이제이션하기

____15.4.3 useCallback( ) 활용 : 디바운스 올바르게 동작하게 하기

__15.5 리액트 컴파일러를 이용한 자동 메모이제이션

____15.5.1 수동 메모이제이션의 한계

____15.5.2 컴파일러 개발의 역사

____15.5.3 리액트 컴파일러의 역할과 기능

____15.5.4 리액트 컴파일러의 원리 및 동작 방식

____15.5.5 리액트 컴파일러의 수동 메모이제이션 대체 가능 여부

____15.5.6 리액트 컴파일러 사용해보기

학습 마무리 | 핵심 키워드 리마인드


 

16장 리액트 컨텍스트와 에러 바운더리, 그리고 서스펜스 돌아보기

__16.1 당신이 리액트 컨텍스트, 에러 바운더리, 서스펜스를 돌아봐야 하는 이유

__16.2 에러 바운더리 사용해 견고한 앱 만들기

____16.2.1 클래스 컴포넌트를 사용해 에러 바운더리 컴포넌트 만들어보기

____16.2.2 에러 전파 알아보기

____16.2.3 렌더링 에러와 에러 바운더리 작동 조건

__16.3 컨텍스트 API를 사용한 효과적인 상태 공유

____16.3.1 프롭스 드릴링이란?

____16.3.2 컨텍스트 생성하기

__16.4 컨텍스트 API의 유스케이스

____16.4.1 중간 컴포넌트 계층이 생기고 렌더 프롭스 패턴을 중첩으로 사용할 때

____16.4.2 컨텍스트 API 사용해 개선하기

__16.5 컨텍스트 API와 리렌더링

____16.5.1 컨텍스트 제공자의 value 프롭스 메모이제이션

____16.5.2 컨텍스트 분리해서 리렌더링 영향 범위 줄이기

____16.5.3 셀렉터 패턴 사용해 최적화하기

____16.5.4 고차 컴포넌트와 memo( ) 활용하기

__16.6 서스펜스 사용해 컴포넌트 내 비동기 작업 수행하기

____16.6.1 서스펜스의 역사와 발전

____16.6.2 에러 바운더리와 서스펜스

____16.6.3 서스펜스 내부 구현과 작동 원리

__16.7 use( ) 사용해 컨텍스트와 프로미스 읽기

____16.7.1 컨텍스트값 읽기

____16.7.2 프로미스 결과 풀어내기

____16.7.3 use( )는 어떻게 조건문 안에서 호출될 수 있을까?

학습 마무리 | 핵심 키워드 리마인드


 

17장 리액트 동시성 기능과 심화 훅 돌아보기

__17.1 당신이 리액트 동시성 기능과 심화 훅을 돌아봐야 하는 이유

__17.2 useLayoutEffect( )와 useInsertionEffect( ) 사용 사례

____17.2.1 useEffect( )와 useLayoutEffect( )의 차이점

____17.2.2 리액트 헬멧과 useInsertionEffect( )

____17.2.3 리액트 19버전의 메타 데이터와 스타일시트

__17.3 useImperativeHandle( )을 사용한 제어 역전

__17.4 동시성 기능과 트랜지션

____17.4.1 useTransition( ) 사용하여 우선순위 낮은 작업 선정하기

____17.4.2 useDeferredValue( ) 사용하여 지연된 상탯값 사용하기

____17.4.3 startTransition( )과 비동기 함수

__17.5 useSyncExternalStore( )를 사용한 외부 상태 동기화

____17.5.1 내부 상태와 외부 상태

____17.5.2 useSyncExternalStore( )과 티어링

학습 마무리 | 핵심 키워드 리마인드


 

[PART 4] 리액트를 둘러싸는 기술과 미래


 

18장 리액트 렌더링 패턴 돌아보기

__18.1 당신이 리액트 렌더링 패턴을 돌아봐야 하는 이유

__18.2 클라이언트 사이드 렌더링과 SSR 돌아보기

____18.2.1 클라이언트 사이드 렌더링 알아보기

____18.2.2 서버 사이드 렌더링 알아보기

____18.2.3 서버 사이드 렌더링의 동형성과 수화 과정

____18.2.4 번들 크기 분석과 next.config

__18.3 서버 사이드 렌더링을 위한 리액트 API

____18.3.1 renderToString( ) 알아보기

____18.3.2 renderToNodeStream( )과 스트리밍

____18.3.3 renderToPipeableStream( )과 스트리밍 렌더링

__18.4 정적 사이트 생성과 증분 정적 재생성 돌아보기

____18.4.1 Next.js 환경에서 정적 사이트 생성 사용해보기

____18.4.2 증분 정적 재생성 추가해보기

__18.5 리액트 서버 컴포넌트 알아보기

____18.5.1 서버 컴포넌트의 개념과 특징 알아보기

____18.5.2 클라이언트 컴포넌트란?

____18.5.3 리액트 서버 컴포넌트 규칙

학습 마무리 | 핵심 키워드 리마인드


 

19장 Next.js 앱 라우터와 서버 액션, 그리고 새로운 리액트 훅 돌아보기

__19.1 당신이 Next.js 앱 라우터와 서버 액션, 그리고 새로운 리액트 훅을 돌아봐야 하는 이유

__19.2 Next.js 앱 라우터 기본 사용법

____19.2.1 앱 라우터의 라우팅과 규칙

____19.2.2 특수 파일과 컴포넌트 계층 구조

____19.2.3 중첩 라우팅과 레이아웃

__19.3 정적 렌더링과 동적 렌더링, 캐싱

____19.3.1 동적 라우트에 대한 정적 렌더링과 동적 렌더링

____19.3.2 정적 라우트에 대한 동적 렌더링

____19.3.3 풀 라우트 캐시 알아보기

____19.3.4 라우터 캐시 알아보기

____19.3.5 요청 메모이제이션과 React.cache( )

____19.3.6 데이터 캐시와 fetch( )

____19.3.7 라우트 핸들러 사용해 클라이언트에게 API 제공하기

__19.4 서버 함수와 서버 액션 사용해보기

____19.4.1 서버 함수와 서버 액션 알아보기

____19.4.2 서버 액션 동작 원리

__19.5 액션과 함께 사용하는 리액트 19버전 훅

____19.5.1 액션과 서버 액션의 관계

____19.5.2 useActionState( )과 트랜지션 사용하기

____19.5.3 useOptimistic( )으로 낙관적 업데이트 구현하기

____19.5.4 useFormStatus( )로 폼 상태 확인하기

학습 마무리 | 핵심 키워드 리마인드

본문인용

★ 대충 배워서는 대충의 결과만 냅니다

★ 차원이 다른 고객 경험을 제공하고 잠재적인 문제점을 미연에 방지하려면

★ 리액트 프레임워크의 철학과 원리까지 통째로 씹어먹고 소화해야 합니다


 

역량 있는 개발자라면 단순히 API를 사용하는 것을 넘어, 렌더링 과정을 명확히 파악하여 예측 가능하고 버그 없는 코드를 작성해야 합니다. 따라서 AI에 대체되지 않고 AI를 이용하려면 리액트의 구조와 동작 원리를 깊이 이해해야 합니다. 이를 통해 불필요한 렌더링을 막아 성능을 최적화하고 코드의 유지보수성을 높일 수 있으며, 복잡한 요구사항과 최신 기술 변화에 유연하게 대응하는 능력을 갖추게 됩니다. 이 책은 궁극적이고 깊은 이해를 추구하는 개발자를 위한 깊은 내용을 담았습니다. 문법만 아는 수준을 넘어 리액트 프레임워크의 철학과 원리까지 통째로 씹어먹고 소화하는 강철의 개발자로 거듭나길 빕니다.


 

★ AI 시대, 왜 ‘리액트’를 깊이 알아야 할까요?

★ AI로 대체되지 않는 시니어로 거듭나는 터닝 포인트를 만들어보세요!

리액트는 하나의 기술이 아닌, 거대한 ‘생태계’의 중심입니다. Next.js 기반 서버 사이드 렌더링, 리액트 네이티브(React Native)를 통한 모바일 앱 개발, 주스탄트(Zustand) 같은 라이브러리를 활용한 정교한 상태 관리까지, 이 모든 것은 리액트라는 뿌리에서 뻗어 나온 가지들입니다. 리액트의 핵심 철학과 구조를 깊이 이해한다면, 이 거대한 생태계의 기술들을 훨씬 빠르고 정확하게 습득하여 역량을 무한히 확장해 나갈 수 있습니다. 이는 특정 기술에만 능숙한 ‘I자형’ 개발자를 넘어, 웹과 모바일을 아우르며 가치를 창출하는 ‘T자형’ 인재로 성장하는 가장 확실한 발판이 되어 줍니다. Vue의 빠른 학습 곡선이나 Angular의 일체형 구조가 가진 장점과는 또 다른, 리액트만이 제공하는 압도적인 확장성의 가치입니다.


 

결국 리액트를 깊이 있게 공부하는 것은, 끊임없이 변화하는 기술 트렌드 속에서 길을 잃지 않게 해주는 단단한 ‘앵커(anchor)’를 내리는 일과 같습니다. 지금 당장 유행하는 문법이나 API를 쫓는 것이 아니라, 웹 애플리케이션의 구조를 설계하고 문제를 해결하는 개발자 본연의 역량을 키우는 가장 확실한 길인 셈입니다.


 

자동화의 시대는 개발자에게 질문을 던집니다. 당신은 코딩 도구의 지시를 따르는 ‘오퍼레이터’로 남을 것인가? 아니면 도구를 자유자재로 부리며 자신만의 가치를 창출하는 ‘아키텍트’가 될 것인가? 만약 후자를 꿈꾼다면, 이 책으로 리액트의 깊이를 탐험하며 기술을 이끌어가는 ‘대체 불가능한 해결사’로 거듭나시길 바랍니다.


 

★ 이 책이 필요한 분은 누구일까요?

★ 이 책의 대상 독자를 소개합니다, 10개 문항으로 자격 테스트 시작!

자바스크립트와 리액트를 이미 알고 있지만, 현업에서 난관에 부딪힐 때마다 근본적인 동작 원리가 궁금하고, 더 성장하고 싶은 욕심을 가진 분이야말로 이 책의 대상 독자입니다. 다음 10가지 웹 개발과 리액트 관련 질문 대부분에 대한 답을 알고 있다면 이미 여러분은 AI에 대체되지 않을 꼭 필요한 프론트엔드 개발자로 성장했다고 볼 수 있습니다. 아쉽게도 모르는 문항이 적지 않다면, 조금 더 성장해야 합니다. 하지만 너무 걱정하지 마세요. 이 책을 통해 곧 익히게 될 것이기 때문입니다.


 

- [질문 01] MPA 구조에서 Ajax 등장 이후에도 여전히 존재했던 주요 단점은 무엇이며, 이 단점을 극복하기 위해 프론트엔드 개발자들이 사용한 코드 조직화 방법은 무엇이었나요?

- [질문 02] 명령형 프로그래밍과 선언형 프로그래밍의 가장 큰 차이점을 UI 업데이트 관점에서 설명하세요.

- [질문 03] SPA의 생산성 향상에 기여하는 두 가지 주요 관점은 무엇인가요?

- [질문 04] UI 컴포넌트 개발에서 ‘추상화’와 ‘캡슐화’는 각각 무엇을 의미하며, 이들이 가지는 주요 목표는 무엇인가요?

- [질문 05] 클라이언트 상태와 서버 상태의 주요 차이점은 무엇이며, 웹 애플리케이션에서 각각의 예시를 들어 설명하세요.

- [질문 06] Node.js의 ‘이벤트 루프’와 ‘스레드 풀’은 각각 어떤 역할을 하며, 이들이 Node.js의 비동기 작업 처리에 어떻게 기여하나요?

- [질문 07] 모노레포 구조가 폴리레포 구조에 비해 가지는 주요 장점 두 가지는 무엇인가요?

- [질문 08] JSX에서 && 연산자를 사용하여 조건부 렌더링을 할 때 주의해야 할 점은 무엇이며, 이를 피하기 위한 대안은 무엇인가요?

- [질문 09] 리액트의 렌더링 과정에서 ‘렌더 단계’와 ‘커밋 단계’는 각각 무엇을 하는 단계이며, 이 두 단계가 분리된 주된 이유는 무엇인가요?

- [질문 10] 리액트 18버전에서 도입된 ‘자동 배칭Automatic Batching’은 무엇이며, 이것이 프론트엔드 개발에 어떤 이점을 제공하나요?


 

* [질문]에 대한 해답은 부록 ‘리액트 10가지 질문에 대한 답변’에서 확인하실 수 있습니다.


 

★ 왜 다시 한 번 리액트를 제대로 돌아봐야 하는 걸까요?

★ 다 안다고 생각하는 순간, 버그를 심게 됩니다.

★ 당신이 리액트 기술을 돌아봐야 하는 19가지 이유를 확인해보세요!


 

이 책은 프론트엔드 개발의 광범위한 핵심 요소와 그 발전 과정을 아우르며, 독자들이 큰 숲을 보는 시야를 갖추도록 안내합니다. 초기 정적인 웹페이지부터 싱글 페이지 애플리케이션(SPA)의 등장 배경과 장점, 모듈, 번들러, 템플릿 엔진의 탄생, 그리고 명령형에서 선언형 프로그래밍으로의 패러다임 전환에 이르기까지 핵심 개념들을 체계적으로 설명합니다. 또한, 리액트의 핵심인 JSX의 구조와 변환 과정, 상태와 프롭스, 그리고 데이터 흐름의 원칙, 리액트 렌더링 메커니즘과 가상 돔의 재조정 과정, 나아가 리액트 훅의 근본적인 작동 방식과 사용 규칙 및 파이버 아키텍처와 동시성 기능까지 다루어, 리액트의 내부 원리를 깊이 이해하고 기술적 기반을 공고히 할 수 있도록 돕습니다. 


 

각 기술을 소개하면서 해당 기술을 다시 돌아봐야 하는 이유도 소개합니다. 이유(WHY)가 중요합니다. 어떻게(HOW)는 이유를 해결하려는 여러 방안 중에 하나일 뿐입니다. 사고의 깊이가 깊어지면 코드와 서비스의 퀄리티가 높아집니다. 이 책에서 소개하는 다시 돌아봐야 하는 19가지 이유를 확인해보세요.


 

- 이유 01. 프론트엔드의 구성 요소와 발전 과정을 돌아봐야 하는 이유

- 이유 02. 싱글 페이지 애플리케이션의 장점을 돌아봐야 하는 이유

- 이유 03. UI 컴포넌트의 위상을 돌아봐야 하는 이유

- 이유 04. 상태와 반응성을 돌아봐야 하는 이유

- 이유 05. 개발 환경을 돌아봐야 하는 이유

- 이유 06. JSX를 공부해야 하는 이유

- 이유 07. 당신이JSX 핵심 문법과 자바스크립트 변환을 돌아봐야 하는 이유

- 이유 08. 렌더링과 가상 DOM을 돌아봐야 하는 이유

- 이유 09. 리액트 렌더링 규칙을 돌아봐야 하는 이유

- 이유 10. 리액트의 프롭스와 컴포넌트 패턴을 돌아봐야 하는 이유

- 이유 11. 리액트의 상태와 배칭을 돌아봐야 하는 이유

- 이유 12. 리액트 파이버를 돌아봐야 하는 이유

- 이유 13. 리액트 훅을 돌아봐야 하는 이유

- 이유 14. 리액트 필수 훅을 돌아봐야 하는 이유

- 이유 15. 리액트 메모이제이션을 돌아봐야 하는 이유

- 이유 16. 리액트 컨텍스트, 에러 바운더리, 서스펜스를 돌아봐야 하는 이유

- 이유 17. 리액트 동시성 기능과 심화 훅을 돌아봐야 하는 이유

- 이유 18. 리액트 렌더링 패턴을 돌아봐야 하는 이유

- 이유 19. Next.js 앱 라우터와 서버 액션, 그리고 새로운 리액트 훅을 돌아봐야 하는 이유


 

★ 리액트 강철의 개발자가 되고 싶은 여러분이

★ 프론트엔드 개발 역량을 한 단계 끌어올릴 수 있도록

★ 다섯 가지 특징을 책에 꾹꾹 아낌없이 담았습니다

문법만 외우던 리액트 공부는 이제 그만하세요! 단순 코딩을 넘어, 역량 있는 개발자로 성장해야만 AI에 대체되지 않는 시대가 되었습니다. 이 책은 모든 문법을 알려주는 책이 아닙니다. 웹 기술이 어떻게 발전해왔는지 살펴보며 리액트가 왜 필요한지 먼저 소개합니다. 그다음 핵심 개념을 추려 실전에서 어떻게 활용하는지, 그 원리를 깊이 있게 설명하며 리액트와 웹 프론트엔드 개발에 대한 생각의 지평을 넓혀줍니다. 이 책으로 리액트를 익혀야 하는 다섯 가지 특징은 다음과 같습니다.


 

_하나, 웹 개발의 ‘큰 그림’을 쉽고 명확하게 소개합니다

웹 개발이 어떻게 발전해왔는지, 초창기 HTML부터 자바스크립트, CSS 등장, 그리고 복잡한 페이지의 한계를 극복하기 위한 ‘모듈과 번들러의 탄생’ 과정을 소개합니다. ‘명령형’과 ‘선언형’ 프로그래밍의 차이를 쉬운 비유로 설명하며, 리액트처럼 선언형 방식이 코드를 얼마나 간결하고 읽기 쉽게 만드는지 알려줍니다. 덕분에 기술을 외우지 않고 리액트의 필요성을 자연스럽게 이해할 수 있습니다.


 

_둘, 리액트의 ‘핵심 기술’을 탄탄하게 다져 줍니다

리액트 UI를 만드는 특별한 문법인 JSX의 기본 원리와 브라우저가 이를 어떻게 이해하는지 배웁니다. 또한, 리액트의 효율적인 화면 업데이트 비결인 ‘가상 DOM’과 ‘렌더링 과정’을 명확히 설명하며, 성능을 최적화하는 key 프롭스의 중요성도 소개합니다. useState()(데이터 관리), useEffect()(외부 효과 처리), useRef()(렌더링과 무관한 값 유지) 등 필수 훅들을 실제 예시로 쉽게 익힐 수 있습니다.


 

_셋, ‘견고한 개발 환경’과 ‘설계 원칙’을 마스터합니다

개발에 필수적인 Node.js의 동작 원리와 pnpm, npm, yarn 등 패키지 매니저를 효율적으로 활용하는 방법을 알려줍니다. 단순히 화면을 그리는 것을 넘어, 재사용 가능한 UI 컴포넌트를 어떻게 설계하고, 추상화, 캡슐화와 같은 객체 지향 개념을 UI에 적용하는 노하우를 얻을 수 있습니다.


 

_넷, ‘최고의 성능’과 ‘유저 경험’을 위한 비법을 전수합니다

불필요한 렌더링을 막아 앱을 빠르게 만드는 React.memo(), useMemo(), useCallback() 등 메모이제이션 기법을 정확히 배우고, 리액트가 여러 상태 업데이트를 한 번에 처리하는 ‘자동 배칭’의 원리도 자세히 알려드립니다. 또한, 웹사이트의 초기 로딩 속도를 결정하는 CSR, SSR, SSG, ISR 등 다양한 렌더링 전략의 장단점을 쉽게 비교하며, 프로젝트에 맞는 최적의 방법을 선택할 수 있게 됩니다.


 

_다섯, 리액트의 미래를 대비하는 최신 기술과 트렌드 소개합니다

웹 개발의 미래를 이끌 리액트 서버 컴포넌트(RSC)와 클라이언트 컴포넌트의 개념을 깊이 있게 설명해, 서버와 클라이언트의 경계를 허무는 서버 액션의 혁신을 이해하도록 돕습니다. 궁극적으로, ‘리액트 컴파일러’처럼 자동 최적화를 제공하는 미래 기술까지 엿보며, 변화하는 기술 트렌드에 유연하게 대처할 수 있는 기반을 다져 줍니다.


 

★ 이 책의 구성과 다루는 내용


 

이 책은 프론트엔드 개발의 광범위한 핵심 요소와 그 발전 과정을 아우르며, 독자들이 큰 숲을 보는 시야를 갖추도록 안내합니다. 초기 정적인 웹페이지부터 싱글 페이지 애플리케이션SPA의 등장 배경과 장점, 모듈, 번들러, 템플릿 엔진의 탄생, 그리고 명령형에서 선언형 프로그래밍으로의 패러다임 전환에 이르기까지 핵심 개념을 체계적으로 설명합니다. 또한, 리액트의 핵심인 JSX의 구조와 변환 과정, 상태와 프롭스, 그리고 데이터 흐름의 원칙, 리액트 렌더링 메커니즘과 가상 DOM의 재조정 과정, 나아가 리액트 훅의 근본적인 작동 방식과 사용 규칙 및 파이버 아키텍처와 동시성 기능까지 다루어, 리액트의 내부 원리를 깊이 이해하고 기술적 기반을 공고히 할 수 있도록 돕습니다.


 

[Part 1] 프론트엔드 개발 돌아보기


 

_01장. 프론트엔드 구성 요소와 발전 과정 돌아보기

웹 애플리케이션의 주요 구성 요소(MPA, 모듈)와 프론트엔드 개발 환경의 발전 과정(번들러의 등장)을 다룹니다. 명령형 프로그래밍과 선언형 프로그래밍의 차이를 설명합니다.


 

_02장. 싱글 페이지 애플리케이션 돌아보기

SPA의 구조, MPA와의 차이점, 네트워크 호출 빈도 감소, 지연 로딩, 생산성 향상(프론트엔드와 백엔드 개발 영역 분리, 선언형 프로그래밍) 등 SPA의 장점을 다룹니다.


 

_03장. UI 컴포넌트의 위상 돌아보기

UI 컴포넌트의 중요성, 디자인 도구의 역할, 추상화, 인터페이스, 캡슐화와 같은 객체 지향 개념이 UI 컴포넌트에 어떻게 적용되는지 설명합니다. 상탯값State과 프롭스Props의 의미를 다시 짚습니다.


 

_04장. 상태와 반응성 돌아보기

클라이언트 상태와 서버 상태의 구분, 상태와 반응성이 프론트엔드 개발에서 하는 역할, MVC 및 MVVM과 같은 애플리케이션 아키텍처, 관찰자 패턴, 양방향 바인딩과 단방향 바인딩의 개념을 다룹니다.


 

_05장. 개발 환경 돌아보기

Node.js의 구조와 원리(V8 엔진, 이벤트 루프, Libuv 등), Node 버전 매니저(NVM, Volta, fnm 등), 패키지 매니저(npm, Yarn, pnpm)의 중요성과 비교, 모노레포의 개념과 장점, 코드 퀄리티 도구(린터, 포매터, 정적 분석기) 및 리액트 빌드 도구(Vite, ESBuild)에 대해 다룹니다.


 

[Part 2] 리액트 핵심 요소 깊게 돌아보기


 

06장. JSX의 구성 요소 돌아보기

리액트 UI 컴포넌트를 구현하는데 필수적인 도구인 JSX와 그 구성 요소에 대해 알아보고 JSX가 외부, 내부 DSL 중 어디에 속하는지 알아봅니다.


 

_07장. JSX 핵심 문법과 자바스크립트 변환 돌아보기

JSX가 리액트에서 UI를 선언적으로 설계하는 데 사용되는 문법 확장이며, 브라우저가 이해하는 자바스크립트 함수 호출로 변환되는 과정을 설명합니다. 단일 루트 엘리먼트 규칙, 조건부 렌더링, 합성 이벤트의 개념을 다룹니다.


 

_08장. 리액트 재조정과 키 프롭스 돌아보기

리액트의 렌더링 과정(트리거, 렌더, 커밋), 가상 DOM, 재조정Reconciliation, 디핑 알고리즘Diffing Algorithm, key 프롭스의 중요성에 대해 알아봅니다.


 

_09장. 리액트 렌더링 규칙 돌아보기

리액트의 렌더링을 유발하는 규칙들과 리렌더링에 대한 오해를 바로잡고, 그리고 렌더링 과정에서의 멱등성 및 불변성 원칙을 다룹니다.


 

_10장. 리액트의 프롭스와 컴포넌트 패턴 돌아보기

리액트의 핵심 개념인 프롭스를 다시 심도 있게 다룹니다. 프롭스의 불변성과 중첩 컴포넌트, 컴포넌트 합성, 렌더 프롭스 패턴등 다양한 컴포넌트 디자인 패턴을 설명합니다.


 

_11장. 리액트의 상태와 배칭 돌아보기

리액트의 핵심 개념인 상태를 다시 심도있게 다룹니다. 지역상태, 파생 상태, 단방향/양방향 데이터 흐름과 바인딩, 그리고 리액트 18버전부터 도입된 자동 배칭의 개념과 필요성을 설명합니다.


 

_12장. 리액트를 구성하는 뿌리, 파이버 돌아보기

레거시 스택 재조정자의 한계와 이를 극복하기 위한 파이버 아키텍처의 도입 배경, 파이버 객체의 구조, 파이버 우선순위 및 동시성 기능이 어떻게 구현되는지 깊이 있게 설명합니다.


 

[Part 3] 리액트 훅 사용법 깊게 돌아보기


 

_13장. 리액트 훅의 사용 규칙 돌아보기

훅의 도입 배경, 클래스 컴포넌트 대비 함수형 컴포넌트의 이점, 그리고 use 접두사로 시작하는 커스텀 훅을 포함한 훅의 주요 사용 규칙(최상위 레벨에서만 호출, 리액트 함수 내에서만 호출, 인수의 불변성 유지)을 설명합니다.


 

_14장. 리액트 필수 훅 돌아보기

useState( ) 및 useEffect()와 같은 필수 훅의 사용법을 자세히 다룹니다. 특히 useEffect( )의 의존성 배열 관리의 중요성과 엄격 모드에서의 동작 방식, 그리고 멱등성 준수의 필요성을 강조합니다.


 

_15장. 리액트 메모이제이션 돌아보기

불필요한 리렌더링을 방지하기 위한 메모이제이션 기법을 다룹니다. 리액트 컴파일러의 개발 역사와 목표(자동 최적화)를 소개하며, 수동 메모이제이션의 중요성 또한 언급합니다.


 

_16장. 리액트 컨텍스트와 에러 바운더리, 그리고 서스펜스 돌아보기

애플리케이션의 안정성과 효율적인 데이터 공유를 위한 고급 기법들을 다룹니다. 에러 경계 컴포넌트를 통한 에러 처리, 프롭스 드릴링 문제 해결을 위한 컨텍스트 API, use() API를 활용한 컨텍스트 및 프로미스 값 접근, 그리고 비동기 렌더링을 위한 서스펜스의 개념과 활용법을 설명합니다.


 

_17장. 리액트 동시성 기능과 심화 훅 돌아보기

useLayoutEffect(), useInsertionEffect(), useImperativeHandle() 등 고급 생명주기 훅의 사용법을 소개하며, 리액트의 동시성 기능(트랜지션)을 활용하여 부드러운 유저 경험을 제공하는 방법을 다룹니다.


 

[Part 4] 리액트를 둘러싸는 기술과 미래 돌아보기


 

_18장. 리액트 렌더링 패턴 돌아보기

CSR, SSR, SSG, ISR 등 다양한 리액트 렌더링 패턴의 기본 개념, 장단점, 그리고 사용 사례를 비교합니다. 최신 개념인 리액트 서버 컴포넌트(RSC)의 등장 배경과 규칙을 상세히 설명합니다.


 

_19장. Next.js 앱 라우터와 서버 액션, 그리고 새로운 리액트 훅 돌아보기

Next.js 앱 라우터의 기본 사용법과 리액트 19버전에서 소개된 서버 액션의 혁신적인 기능, 그리고 캐싱, 정적/동적 렌더링과의 관계를 설명합니다. 리액트가 서버와의 통합을 강화하는 방향으로 발전하고 있음을 소개하고, 리액트 19버전에 새롭게 추가된 훅들을 알아봅니다.

 

작가의 말

반도체 설계의 전설 짐 켈러(Jim Keller)는 유명 팟캐스트 진행자 렉스 프리드먼(Lex Fridman)의 방송에서 이렇게 말했습니다.

“대부분의 사람은 레시피(밀가루, 물, 이스트로 빵을 굽는 법)에만 관심이 있습니다. 정작 빵이 만들어지는 원리인 생물학, 재료 유통, 열역학에는 흥미를 두지 않는다.”

프론트엔드 개발도 마찬가지입니다. 프레임워크가 제시하는 레시피만 따라서는 곧 한계에 부딪힙니다. 학습 속도가 비약적으로 빠른 인공지능 시대에는 특히 그렇습니다. 이는 개발자가 리액트의 상태가 어떻게 업데이트되고 자바스크립트의 이벤트 루프가 어떻게 비동기를 처리하는지, 혹은 웹의 근간인 HTTP 프로토콜과 네트워크 원리는 모른 채 그저 useState()와 fetch()를 사용하는 법만 익히는 것과 같습니다. 저는 짐 켈러의 의견에 동의합니다. 단순히 레시피가 아닌 요리 자체를 깊이 이해하면, 빵뿐만 아니라 오믈렛과 샌드위치까지 만들 수 있습니다.

개발 환경은 예전보다 훨씬 빠르게 변하고 있습니다. 이제 AI는 버튼 하나로 컴포넌트를 만들고, 디자인 시스템까지 제안합니다. 처음에는 신기했지만, 어느 순간 불안해졌습니다. 실리콘밸리에서 들려오는 대규모 개발자 감원 소식에 놀라기도 합니다. "내가 만든 이 코드, 코파일럿이 만든 것과 무엇이 다를까?", "이러다 나도 언젠가 AI 도구로 대체되는 건 아닐까?"

많은 개발자가 이 질문 앞에서 멈칫합니다. 개발은 편리해졌지만, 동시에 우리 자신을 시험에 들게 합니다. AI 도구는 분명 뛰어난 조력자이지만, 복잡한 요구사항을 제대로 반영하거나 사용자의 마음을 사로잡는 세밀한 경험까지 만들어내지는 못합니다. 바로 그 지점에서 인간 개발자의 ‘깊이’가 빛을 발합니다.

이 책은 그 ‘깊이’를 향한 여정의 시작점입니다. 이미 리액트를 알고 계시더라도, 진짜 중요한 것은 표면적인 문법이 아니라 ‘왜 그렇게 작동하는지’, ‘어떻게 더 잘 설계할 수 있는지’, ‘무엇이 좋은 코드인지’ 판단하는 기준입니다.

여러분은 단순히 코드를 잘 쓰는 사람이 되기 위해 이 책을 집어든 것이 아닙니다. 자동화 시대 속에서도 방향을 잃지 않고, 문제를 주도적으로 해결하는 개발자로 성장하고자 하기 때문입니다.

이제 여러분을 깊은 ‘인사이드 리액트’의 세계로 초대합니다. 이 책과 함께 단단한 원리 위에 실력을 쌓아, AI에 대체되지 않는 개발자가 되어보세요. 리액트는 여러분이 그런 개발자가 되는 데 가장 강력한 도구가 되어줄 것입니다.

서평

“이 책은 제목처럼 리액트의 내부를 깊이 있게 다룹니다. 근본 원리를 이해할 수 있어, 책을 읽고 나면 활용도가 높을 것이라 생각합니다. 무엇보다 최적화에 대한 프로그래밍 관점의 시각을 제공합니다. JSX, 렌더링 프로세스, 렌더링 의사 결정 코드도 확인할 수 있습니다. 후반부에는 상태 관리와 훅도 자세히 다루고 있어, 이 책 한 권으로 리액트 실력을 한 단계 끌어올릴 수 있다고 생각합니다.”

황재원, IT 대장장이


 

“이제 웹을 빼놓고 서비스 개발을 논할 수 없을 만큼, 웹 개발 지식은 모든 개발자의 필수 역량이 되었습니다. 특히 이 책에서 다루는 리액트는 빠르게 변화하는 프론트엔드 생태계의 중심에 있는, 명실상부한 대세 프론트엔드 라이브러리입니다.

이 책은 리액트 중급 개발 서적으로, 개발자에게 리액트에 대한 깊이 있는 이해와 아키텍처 관점의 통찰력을 제공하는 유용한 지침서입니다. 단순히 컴포넌트를 만들고 상태를 관리하는 기본 구현법뿐만 아니라, 왜 특정 훅을 쓰는지, 성능을 위해 무엇을 고려해야 하는지, 내부 동작 원리는 어떠한지 등 시니어 리액트 개발자가 갖춰야 할 실질적인 지식을 풍부하게 담고 있습니다.

단순히 문법을 넘어, 왜 이런 구조가 필요한지, 실무에서 마주하는 현실적인 고민과 문제들을 어떻게 해결해 나가는지, 그리고 최신 리액트 트렌드를 프로젝트에 효과적으로 적용하는 방법을 체계적으로 배울 수 있습니다. 이렇게 쌓은 깊이 있는 지식과 문제 해결 능력은 AI 시대에 든든한 경쟁력이 되어줄 것입니다.

리액트 기초를 넘어 더 깊이 있는 개발을 하고자 하는 모든 리액트 개발자분들께 이 책을 추천합니다.”

최성욱, 삼성전자 VD사업부 Security Lab 클라우드 보안 엔지니어



 

“‘단순히 리액트를 넘어서, 진짜 ‘프론트엔드 개발자’로 성장하고 싶다면 이 책을 펼쳐보세요.’

프론트엔드 개발의 길을 걷는 개발자 중 ‘리액트를 할 줄 안다’는 사람은 많습니다. 하지만 ‘리액트를 이해한다’고 말할 수 있는 사람은 얼마나 될까요? 바닐라 자바스크립트 위에서 리액트가 어떻게 동작하는지, JSX가 왜 필요한지, 모노레포 환경에서 리액트를 어떻게 효율적으로 관리해야 하는지, 나아가 Node.js가 프론트엔드 개발자에게 어떤 통찰을 주는지 이야기할 수 있는 사람은 또 얼마나 될까요?

저는 8년 차 프론트엔드 개발자입니다. 그동안 수많은 리액트 관련 서적과 문서, 실무 프로젝트를 경험했지만, 《다시 깊게 익히는 인사이드 리액트》만큼 큰 통찰을 준 책은 드물었습니다. 이 책은 단순히 문법이나 API 사용법을 나열하지 않습니다. 그보다는 “왜 이런 구조를 쓸까?”, *“이 동작의 배경에는 어떤 원리가 있을까?”를 깊이 있게 설명합니다. 덕분에 단순히 ‘할 줄 아는 개발자’에서, 문제를 주도적으로 해결하는 개발자로 도약하는 데 큰 도움을 받았습니다.

이 책의 가장 큰 강점은 ‘기술의 원리’를 중점적으로 다룬다는 점입니다. 많은 개발자가 리액트를 배우면서 내부 동작 방식까지 이해하려 들지는 않습니다. 그러나 진정한 성장은 언제나 ‘원리의 이해’에서 비롯됩니다. 이 책은 바닐라 자바스크립트로 리액트의 핵심 개념을 해부하고, JSX와 모노레포, Node.js의 역할 등 ‘프론트엔드 개발’이라는 큰 그림 속에서 각 기술이 어떤 역할을 하는지 정확히 짚어줍니다.

특히 AI 시대에 프론트엔드 개발자가 갖춰야 할 원리 중심의 사고방식을 다룬다는 점에 주목해야 합니다. AI와 협업하는 환경에서는 단순한 도구 사용 능력을 넘어, 도구의 ‘본질’을 이해하는 것이 훨씬 더 중요해지고 있습니다. 이 책이 그런 시대 변화에 대비하는 개발자로 성장할 발판이 되어줄 것입니다.

프론트엔드 커리어에 깊이를 더하고 싶은 분, 단순히 기능을 구현하는 것을 넘어 문제를 주도적으로 해결하고 시스템을 이해하는 개발자로 성장하고 싶은 분께 진심으로 이 책을 추천합니다.

이 책을 읽고 난 후, 여러분은 리액트를 넘어 프론트엔드의 본질을 꿰뚫는 개발자로 한 걸음 더 나아가게 될 것입니다.”

최낙현, 8년 차 프론트엔드 개발자 / 스타트업 팀장


 

“통계 전공 5년 차 AI 개발자에서 AI 엔지니어로 전향한 지 1년 남짓 된 개발자입니다. 처음에는 가벼운 마음으로 리뷰를 신청했는데, 책을 읽고 마음이 바뀌었습니다. 이 책은 제게 ‘아, 나는 프론트엔드에 대해 모르는 게 많았구나’라는 사실을 깨닫게 했고, 저를 또 한 번 겸손하게 만들어 주었습니다. 최근 IT 강사로 이직했는데, 강사의 입장에서 볼 때 이 책은 프론트엔드에 애정이 있고 기초를 숙달한 뒤 더 높은 단계로 나아가고 싶은 분들께 적합하다고 생각했습니다. 정보화 시대에 지식은 넘쳐나지만, 그중에는 오류가 있거나 잘 정리되지 않은 내용도 많습니다. 이런 시대일수록 이 책처럼 잘 정리된 자료가 필요하다고 생각합니다. 앞으로도 이렇게 좋은 책들이 많이 나와 많은 사람에게 도움이 되었으면 합니다.”

조창제, 프리랜서 강사


 

“리액트를 단순히 사용하는 법을 넘어, 왜 그렇게 동작하는지를 깊이 있게 설명해주는 책입니다. JSX, 상태, 렌더링, 컴포넌트 구조 등 핵심 개념을 하나하나 짚어가며 점진적으로 난이도를 높여가는 구성 덕분에 자연스럽게 이해가 이어집니다. 실무에서 자주 마주치는 고민에 대한 설명도 잘 녹아 있어, 리액트를 더 깊이 이해하고 싶은 개발자에게 추천합니다.” 

이호철, 신세계아이앤씨 개발자


 

“리액트로 웹 서비스를 만들어보고 있는데, 리액트의 기본 개념을 확실하게 알고 넘어가야겠다는 생각으로 이 책을 읽었습니다. 이 책은 제목처럼 단순히 리액트 문법을 공부하는 책이 아니라, 리액트의 동작 원리를 깊게 파고드는 저자의 통찰력이 돋보이는 책입니다. 초심자에게는 조금 어려울 수 있지만, 리액트로 운영 가능한 서비스를 만들기 위해서는 꼭 읽어봐야 할 책입니다.” 

이장훈, 데브옵스 엔지니어


 

“리액트로 프론트엔드 개발해 온 지 3년이 지났지만, 막상 리액트가 어떻게 동작하는 라이브러리이며 어떤 구조로 구성되어 있는지 누군가에게 정확하게 설명하는 일은 여전히 어려웠습니다. 다양한 실무 경험 속에서도 리액트는 여전히 ‘쓰는 법은 알지만 원리는 정확히 잘 모르는’ 도구로 남아 있었고, 그로 인해 생기는 비효율적인 코드 구조 앞에서 자주 막막함을 느꼈습니다.

이 책은 그런 고민을 가진 개발자에게 더없이 명확한 길잡이가 되어줄 것입니다. 단순한 문법이나 기능 설명만이 아닌, 리액트의 렌더링 방식, 상태 관리 흐름, 훅의 실행 순서와 원리, 컴포넌트 트리 구조 등 내부 동작에 대한 본질적인 이해를 도와줍니다. 실제 코드 예제와 함께 작동 원리를 단계적으로 풀어가는 설명 방식은 추상적으로 느껴졌던 개념들을 명확하게 시각화 해줍니다.

리액트를 ‘잘 사용하는 개발자’에서 ‘깊이 이해하고 설계할 수 있는 개발자’로 성장하고 싶다면 이 책은 그 전환의 계기가 되어줄 것이라 생각합니다. 저처럼 실무 경험 속에서 본질적인 궁금증과 답답함을 가지고 있던 분이라면 더욱 추천 드립니다.”

이수빈, 메일플러그 그룹웨어 2팀 프론트엔드 개발자


 

“이 책을 읽으며, 그동안 겉핥기식으로만 이해했던 리액트의 핵심 개념과 설계 철학이 명확히 정리되는 느낌을 받았습니다. 단순히 ‘어떻게’ 사용하는지가 아니라 ‘왜’ 그렇게 동작하는지를 깊이 있게 설명해 주어, 실제 프로젝트에서 발생했던 렌더링 병목, 상태 관리 혼란, 컴포넌트 설계 문제들이 어디서 비롯됐는지 깨달을 수 있었습니다. 특히 렌더링 과정의 단계별 원리와 메모이제이션 기법, 훅의 설계 이유를 다룬 부분은 기존 지식을 체계화하는 데 큰 도움이 되었습니다. 이 책은 리액트를 단순한 UI 라이브러리가 아닌, 웹 애플리케이션 아키텍처를 설계하고 성능을 개선하는 도구로 인식하게 해주는 훌륭한 기술서입니다. 리액트를 정말 제대로 이해하고 싶은 개발자라면 반드시 읽어야 할 책이라고 생각합니다.”

이석곤, (주)아이알컴퍼니 수석


 

“리액트 단순 사용법을 넘어 JSX의 작동 원리부터 함수형 컴포넌트의 탄생 배경까지, 프론트엔드 개발의 근본을 파헤치는 책입니다. 자칫 지루할 수 있는 배경 지식을 꼭 필요한 핵심만 골라 명쾌하게 설명하여, 입문자는 물론, 경험 있는 개발자도 새로운 깨달음을 얻을 수 있습니다. 무심코 사용했던 기술의 '왜'를 이해하게 해주는 소중한 책입니다.”

유원곤, 트래블월렛 매니저


 

“리액트는 개발 현장에서 많이 사용하는 프론트엔드 라이브러리입니다. 이 책은 리액트의 심층적인 작동 원리를 파고들어, 단순한 기능 구현을 넘어 잠재적인 버그와 문제점을 미리 방지하고 탄탄한 리액트 개발 능력을 갖추고자 하는 열정적인 개발자들에게 최고의 지침서가 될 것입니다.” 

송진섭, 프리랜서 


 

“이 책은 리액트의 작동 원리와 흐름을 차근차근 풀어내 막연했던 개념을 또렷하게 정리해줍니다. 상태 관리, 렌더링, 서버 액션, 최신 패턴까지 아우르며 현업에서 마주한 고민을 깊이 있게 되짚어 보게 하고, 그 속에서 실마리를 찾게 해주는 든든한 프론트엔드 개발자 지침서입니다.”

김동현, 삼성SDS 프로


 

“이 책을 읽고 나서야, 지금까지 작성해 왔던 코드들이 정말로 '이해하고 쓴 것'이었는지를 되돌아보게 되었습니다. 예전에는 급하다는 이유로 내부 동작은 외면한 채 빠른 구현에만 집중했지만, 이 책의 베타 리딩을 계기로 이제는 더 깊이 이해하고 쓰는 코드를 지향하게 되었습니다.

이 책은 리액트를 단순히 사용하는 방법을 넘어, 컴포넌트, 렌더링, 훅 등 핵심 개념이 '왜' 그리고 '어떻게' 동작하는지를 차근차근 설명합니다. 리액트의 내부 동작 원리는 생각보다 위대한 마법이 아닌, 우리가 알고 있지만 자주 놓치는 개념의 조합이라는 사실도 알게 되었습니다. 특히 자주 실수하기 쉬운 부분을 짚어주는 점이 인상 깊었습니다.

내가 정말 리액트를 이해하고 사용하고 있을까?"라는 고민이 든다면, 이 책은 여러분에게 분명 특별한 가치를 줄 것이라 믿습니다.”

강병준, 1년차 프론트엔드 개발자

저자소개

저자 : 단테(윤재원)
전공자 출신으로 스타트업을 창업하며 웹 개발을 시작했습니다. 국내 유명 OTT 스타트업, 네이버에서 소프트웨어 엔지니어로 사내 디자인 시스템, LLM 애플리케이션을 만들었으며 현재 대기업 C사에서 시니어 프론트엔드 엔지니어로 근무하고 있습니다. 300명이 넘는 취업, 이직 준비생들을 대상으로 프론트엔드 개발 역량 강화를 위한 일대일 컨설팅 및 멘토링을 진행했으며 다수의 취업,
이직 합격자를 배출했습니다.

• 유튜브 _ youtube.com/@danteDeveloper
• 블로그 _ velog.io/@jay/mcp-for-non-tech
• 디스코드 _ discord.com/invite/BYRpaDrfbH
상단으로 이동
  • (54866) 전북특별자치도 전주시 덕진구 중동로 63