
핵심만 골라 배우는 TypeScript
수코딩
프론트엔드 입문자들은 필수적으로 익혀야하는 TypeScript 문법! 기초부터 시작해서 고급에 이르기까지 TypeScript 언어를 샅샅히 파헤쳐봅니다!
입문
TypeScript
리액트 19의 최신 기능을 타입스크립트(TypeScript)와 함께 배우는 리액트 완성 강의! 기초부터 상태관리(Context, Redux Toolkit, Zustand), API 통신(Fetch, Axios), 최신 훅(use, useActionState, useOptimistic 등), 실전 프로젝트까지 차근차근 익혀 실무에 바로 적용할 수 있는 리액트 앱을 만들 수 있습니다.
타입스크립트 기초 문법과 타입 시스템 이해
리액트 컴포넌트 구조, JSX 문법, props & state 사용법
리액트 + 타입스크립트 상태 관리 기법(useState, useReducer)
반복 렌더링, 조건부 렌더링의 핵심 문법과 타입 안전성
타입스크립트 기반 폼 처리 및 유효성 검사(제어/비제어)
최신 스타일링 기법(CSS Module, Styled-component, emotion, vanilla extract, tailwind css
Context API로 전역 상태 관리
Redux Toolkit을 이용한 구조적인 상태 관리
Zustand로 간단하고 빠른 상태관리 구현
커스텀 훅으로 로직 재사용하기
성능 최적화: useMemo, useCallback, React.memo
컴포넌트 구조 설계와 폴더 구조 정리 전략
리액트 19의 꽃 !!! use() + Suspense + ErrorBoundary로 비동기 데이터 처리하기
useOptimistic()으로 낙관적 UI 구현
useActionState()로 폼 처리와 상태 관리 통합하기
React Router(v7)로 SPA 라우팅 구현
페이지 전환과 동적 라우팅 처리
Fetch와 Axios로 API 데이터 가져오기 및 에러 핸들링
타입스크립트 기반 실전 프로젝트 기획 및 설계
상태관리 + API 통신 + 라우팅 통합 예제 구현
실무에 가까운 프로젝트 코드 관리 및 최종 마무리(node.js + express + mongodb + kakao + react 19))
비전공자도 이해하기 쉬운 React.JS!!
🛩수코딩의 프런트엔드 로드맵 시리즈 6단계!! 🛩
수코딩 강의들을 모은 로드맵이 출시되었습니다!
(📌 이미지를 클릭하면 로드맵 페이지로 이동합니다)
전체 강의에 30% 할인이 적용되어,
개별 강의보다 훨씬 더 저렴하게 수강하실 수 있어요.
또한, 로드맵 참여자분들께는
제가 출판한 책 3권 중 1권을 랜덤으로, 사인본으로 증정하는
이벤트도 진행 중입니다! 😀
로드맵 링크
➡https://www.inflearn.com/roadmaps/9957 (HTML + CSS + JS + TS + React + Vue)
➡https://www.inflearn.com/roadmaps/10015 (JS + TS + React)
프런트엔드 입문 분야 베스트셀러
2022 『코딩 자율학습 HTML+CSS+자바스크립트』 출간!
2023 『아는만큼보이는 프런트엔드 개발』 출간!
2024 『코딩 자율학습 Vue.JS』 출간!
2025 『리액트 + TypeScript』 출간 예정(하반기) 🎉🎉🎉
수코딩은 프런트엔드의 다양한 분야를 집필한 현직 작가에요.
출한한 책이 모두 베스트셀러입니다. 😎
프런트엔드 강의를 선도하고 있는 수코딩이 만든 특별한 강의랍니다!
React는 사용자 인터페이스를 구축하기 위한 가장 인기 있는 라이브러리 중 하나이며,
TypeScript는 코드의 안정성과 예측 가능성을 높여주는 자바스크립트의 강력한 확장 언어입니다.
이 둘을 함께 사용하면 버그를 줄이고, 코드 자동완성과 리팩토링이 쉬워지며, 대규모 프로젝트에도 강한 설계가 가능합니다.
하지만 처음부터 React와 TypeScript를 동시에 배우는 것은 쉽지 않습니다.
JSX, Props, State 같은 개념에 어떻게 타입을 붙여야 할지 막막하게 느껴질 수 있죠.
이 강의에서는 실무에서 가장 많이 사용되는 React + TypeScript 조합만 선별해 학습합니다.
복잡한 타입 추론이나 드물게 쓰이는 고급 기능은 과감히 제외하고,
초보자도 금방 익숙해질 수 있는 실전 중심의 내용으로 구성했습니다.
이 강의에서 다루는 핵심 주제는 다음과 같습니다:
🧱 기초부터 탄탄히
React 19(18+) 기반 최신 개발 흐름 반영
react.js 컴포넌트에 TypeScript 적용하기
컴포넌트 트리 구조 이해 및 정의 방법
Props, State, Event에 타입 안전하게 선언하는 방법
함수형 컴포넌트의 타입 정의
Children, Optional Props, Default Props 등 실무 패턴
react-router v7 최신 버전 라우팅 개념 학습
⚙ 상태관리와 렌더링
useState, useReducer를 활용한 상태 정의 및 타입 처리
반복 렌더링, 조건부 렌더링의 핵심 문법과 타입 안전성
🎨 스타일링 전략
다양한 스타일링 방법 학습
(CSS Module, styled-components, emotion, vanilla-extract, Tailwind CSS 등)
🔍 리액트 훅과 타입스크립트
useState, useEffect, useReducer, useRef, useContext 등 주요 훅 사용법
React 19의 최신 훅 (use, useOptimistic, useActionState) 타입 처리
커스텀 훅과 Context API에 타입 적용하기
🧠 전역 상태 관리
redux-toolkit, zustand 등 실무에 많이 쓰이는 전역 상태관리 도구 학습
📮 API & 폼 처리
React + TypeScript 기반의 Form 다루기 (Controlled/Uncontrolled)
API 연동 시 응답 타입 정의 및 에러 핸들링 방법
🛠 실전 중심 구성
디자인 기반의 다양한 실습 예제를 통해 실제 개발 감각 익히기
등 실제 개발에서 자주 활용되는 내용에 집중했습니다.
이 강의를 통해 React(19) + TypeScript의 핵심 개념과 문법을 쉽고 효율적으로 이해하고,
실무에 바로 적용 가능한 개발 역량을 자연스럽게 키워나갈 수 있습니다. 🚀
React + TypeScript, 처음 시작하셔도 걱정하지 마세요.
기초부터 차근차근, 하나씩 함께 배워 나갈 수 있도록 구성했습니다.
React는 사용자 인터페이스를 만들기 위한 가장 인기 있는 라이브러리이며,
TypeScript는 그 React를 더 안전하고 체계적으로 다룰 수 있도록 도와주는 강력한 도구입니다.
하지만 두 기술을 처음 접하면 이런 고민이 생기기 마련이죠:
“컴포넌트에 타입은 어떻게 붙이지?”
“useState에는 어떤 타입을 써야 할까?”
이 강의는 React와 TypeScript 모두 처음인 분들도
부담 없이 시작할 수 있도록,
쉬운 예제와 실습 중심으로 구성했습니다.
수코딩이 자신있게 말합니다.
이 강의는 세상 그 어떤 리액트 강의보다 가장 쉽게 리액트를 알려줍니다.
React 19의 최신 기능부터
상태 관리, 폼 처리, API 연동, 실전 프로젝트까지!
핵심 개념을 하나씩 익히고,
실제 프로젝트에 자연스럽게 적용할 수 있는 실력을 만들어 드릴게요.
“React + TypeScript를 더 안전하고, 더 똑똑하게!”
이 강의를 통해 여러분의 개발 실력을 한 단계 업그레이드해보세요. 🎯
이 강의는 처음부터 React 19 기반으로 제작되었습니다. (리액트 18로 찍다가 19로 업그레이드 한 게 아닙니다. 리얼 최신! 🚀)
새로운 useOptimistic, useFormStatus 등 최신 기능을 학습하며, React 19 프로젝트에도 자신 있게 대응할 수 있습니다.
JSX, Props, State, Event 등 React에서 자주 사용하는 개념을 TypeScript와 함께 배웁니다.
컴포넌트 타입 정의, Hooks 타입 처리, 제네릭 활용까지! 실제 현업에서 쓰이는 기술만 선별하여 집중 학습합니다.
리액트를 처음 배우는 사람도 쉽게 이해할 수 있도록 개념을 단계별로 설명하고, 예제 → 실습 방식으로 학습합니다.
손으로 직접 코딩하며 배우는 실습 중심 강의로, 이론을 실전에 바로 적용할 수 있게 도와줍니다.
리액트를 자바스크립트로만 써봤다면?
TypeScript와의 차이점과 장점을 명확히 비교하여 이해할 수 있습니다
기존 JS 코드도 어떻게 타입스크립트로 옮기는지 자연스럽게 익히게 됩니다.
최신 버전의 React와 TypeScript 기능을 적용해,
앞으로의 프로젝트에도 무리 없이 적용할 수 있는 기반을 다집니다.
최신 개발 트렌드와 업데이트 내용을 수시로 반영합니다.
교과서에 없는 현업 개발자만의 실전 팁과 업무 효율을 높이는 방법까지 알려드립니다.
자바스크립트뿐만 아니라, 프런트엔드 개발자로 성장하기 위한 방향성도 제시합니다.
수강생의 질문에 대해 빠르고 친절한 피드백을 제공합니다.
자주 하는 실수나 헷갈리는 부분을 짚어주며, 개개인의 학습 효과를 극대화합니다.
리액트 학습을 시작하기 전에 필요한 환경 설정을 배웁니다.
각각의 OS별로 VSCode를 설치하는 방법을 살펴보고
Prettier 및 익스텐션을 설치하여 학습 준비를 합니다.
이 챕터에서는 리액트 애플리케이션을 최신 방식으로 시작하는 방법을 다룹니다. Create React App(CRA)을 대체하는 Vite 기반 개발 환경을 구성하며, 리액트 개발에 필요한 필수 설정을 익히게 됩니다.
CRA의 한계와 Vite의 장점 비교
Webpack과 Vite의 차이점과 생태계 흐름 이해
Vite를 활용한 빠르고 직관적인 리액트 프로젝트 세팅
스니펫과 유저 스니펫을 통한 코드 생산성 향상
초기 프로젝트 구조 정리와 npm run dev
실행 흐름 파악
또한, 리액트에서 가장 중요한 JSX 문법의 개념과 특징을 소개합니다. JSX가 어떻게 HTML과 JavaScript를 결합하는지, 어떤 문법적 특징이 있는지를 이해하면서 이후 컴포넌트 학습을 위한 기초를 다지게 됩니다.
리액트에서 컴포넌트는 UI를 구성하는 가장 작은 단위이자 핵심 개념입니다. 이 챕터에서는 컴포넌트가 무엇인지, 어떻게 동작하고 어떻게 구성되는지를 실제 코드와 함께 단계적으로 학습합니다.
컴포넌트란 무엇인가? 그리고 왜 중요한가?
함수형 컴포넌트의 작성 조건과 구성 방식
React.Fragment
를 이용한 불필요한 DOM 제거
새로운 컴포넌트를 만드는 방법과 폴더 구조 설계
루트 컴포넌트와 컴포넌트 트리 구조의 개념 이해
또한, 실습을 통해 직접 컴포넌트를 생성하고 적절한 위치에 배치하면서 컴포넌트 기반 설계에 대한 감각을 익히게 됩니다.
이 과정을 통해, 컴포넌트를 보는 눈이 달라지고, 이후의 복잡한 리액트 구조도 자연스럽게 이해할 수 있는 기반을 마련할 수 있습니다.
이제 리액트의 핵심 개념 중 하나인 Props(속성)를 본격적으로 다룹니다. 이 챕터에서는 컴포넌트 간에 데이터를 어떻게 전달하고 활용하는지를 다양한 예제와 실습을 통해 익히게 됩니다.
리액트에서 컴포넌트 간 관계 이해: 조상-부모-자식 구조
JSX 내에서 기본 타입과 참조 타입 데이터를 출력하는 방법
태그 속성에 값을 전달하는 기본 원리
Props를 통해 데이터를 전달하는 다양한 방식과 패턴
비구조화 할당을 활용한 props 분리와 가독성 향상
타입스크립트를 기반으로 props의 타입을 쉽게 추론하고 명확히 정의하는 방법
전개 연산자(...
)를 활용한 props 전달 방식 이해
children
이라는 특별한 prop을 활용한 컴포넌트 재사용성 확장
props
와 children
의 역할 차이 비교
이 챕터를 통해, 리액트 컴포넌트 간의 데이터 흐름을 자연스럽게 이해하고, 타입 안정성과 가독성을 동시에 고려한 props 설계 역량을 키우게 됩니다.
리액트 애플리케이션에서 이벤트 처리는 사용자와의 상호작용을 구현하는 핵심입니다. 이 챕터에서는 버튼 클릭부터 이벤트 전파까지, 리액트에서 이벤트를 어떻게 다루는지 체계적이고 실용적인 관점으로 학습합니다.
JSX 문법을 통한 이벤트 연결 방식
이벤트 속성과 이벤트 핸들러 함수의 작성 패턴
핸들러에 매개변수를 전달하는 다양한 방법과 추천 방식
핸들러 내부에서 props
를 읽는 흐름과 실전 예시
상위 컴포넌트에서 핸들러를 props로 전달하는 구조
이벤트 객체(SyntheticEvent
)의 구조 및 활용법
target
, currentTarget
의 차이점과 용도
이벤트 전파 개념: 버블링과 캡처링의 이해
이벤트의 기본 동작 차단 방법 (e.preventDefault())
마지막으로 버튼 컴포넌트를 직접 만들고, 다양한 이벤트를 처리하는 실습을 통해 이벤트 처리 패턴을 자연스럽게 내재화합니다.
리액트의 상태 관리는 컴포넌트가 사용자와의 상호작용에 따라 반응하고 변화하도록 만드는 핵심 기능입니다. 이 챕터에서는 useState
와 useReducer
를 중심으로 상태 관리의 개념, 활용법, 실전 적용까지 폭넓게 다룹니다.
상태가 필요한 이유와 상태값의 기본 개념
useState
훅의 기초적인 사용법부터 실전 적용까지
객체 및 배열 상태를 다룰 때 주의할 점과 리렌더링 동작 방식
setState
의 업데이트 방식과 함수형 업데이트
상태의 독립성 개념과 상태 끌어올리기(lifting state up)
캡슐화(encapsulation)를 통한 상태 관리 책임 분리
카운터 앱을 직접 만들어보며 상태 관리 실력을 점진적으로 강화
useReducer
를 이용한 복잡한 상태 로직의 구조화
reducer 패턴으로의 전환 및 실전 미션 수행
이 챕터를 마치면, 단순한 상태 변경부터 복잡한 데이터 흐름까지 안정적으로 관리할 수 있는 리액트 개발자로 한층 성장하게 됩니다.
실제 사용자 인터페이스(UI)는 상황에 따라 화면이 조건적으로 바뀌고, 여러 데이터를 반복적으로 렌더링하는 구조로 이루어져 있습니다. 이 챕터에서는 리액트에서 이런 UI를 어떻게 구현하는지 집중적으로 다룹니다.
if
, switch
, 삼항 연산자(? :
), 논리 연산자(&&
) 등 다양한 조건 표현 방식
각 조건 방식의 사용 시점과 장단점 비교
트래픽 신호등, 로그인 상태, 메시지 출력 등 실제 시나리오 기반 실습
중첩 조건, 가독성, 컴포넌트 분리 전략 등 실전 팁 제공
배열 데이터를 기반으로 map()
을 이용한 컴포넌트 반복 출력
반복 렌더링에서의 key
속성 중요성 및 유효 범위 이해
filter()
등을 활용한 데이터 선별 및 조건부 렌더링의 결합
레시피 목록 렌더링 등의 실전 과제를 통해 반복 패턴을 체득
이 챕터를 마치면, 리액트로 복잡한 조건과 반복을 자연스럽게 구현할 수 있으며, 가독성 좋은 동적 UI를 설계할 수 있는 실력을 갖추게 됩니다.
이 챕터에서는 리액트에서 컴포넌트를 스타일링하는 다양한 기법들을 폭넓게 학습합니다.
단순한 인라인 스타일부터 CSS-in-JS, Tailwind, 이미지 스타일링까지 실제 프론트엔드 개발에서 자주 마주치는 모든 스타일링 기법을 실습과 함께 익히게 됩니다.
인라인 스타일과 전역 CSS 활용법
CSS 모듈을 통한 컴포넌트 단위의 스타일 캡슐화
classnames
유틸을 활용한 동적 클래스 관리
🧩미션: 버튼 그룹 UI 구현을 통해 다양한 스타일 방식 비교 체험
styled-components
의 문법과 기본 사용 방법
props를 활용한 동적 스타일링
keyframes
, as
등의 고급 기능과 헬퍼 함수 및 믹스인 사용법
전역 스타일 관리와 팁 모음
🧩미션: styled-components로 신호등 UI 만들기
Tailwind의 핵심 철학과 지시어 체계
조건부 클래스 적용 방법과 실전 적용 전략
🧩미션: Tailwind로 계산기 UI 완성하기
🧩보너스 미션: Tailwind의 실전 감각을 더해 고급 UI 도전!
이미지 렌더링 시 고려사항 및 CSS 조정 방법
🧩미션: 램프에 불이 들어오는 애니메이션 UI 구현
구글 웹폰트 적용법까지 함께 정리
이 챕터를 통해, 어떤 스타일링 도구가 프로젝트에 적합한지 판단할 수 있는 눈을 기르고, 미려하고 유지보수 가능한 UI를 구현할 수 있는 실전 감각을 갖추게 됩니다.
이 챕터는 지금까지 학습한 내용을 바탕으로 실제 작동하는 계산기 애플리케이션을 직접 구현하는 실습 중심의 프로젝트입니다. 컴포넌트 설계, 상태 관리, 이벤트 처리, 타입 분리, UI 구성까지 전부 직접 경험하게 됩니다.
프로젝트 시작 전, 계산기 동작 원리와 구조에 대한 개요
UI 설계 및 컴포넌트 구조화
리팩토링 과정을 통해 컴포넌트 역할과 책임을 정리
🧩타입스크립트를 활용해 상태와 연산자 타입을 명확히 분리
숫자, 연산자, 마침표, 클리어 등 주요 기능을 직접 구현
실전에서 자주 마주치는 버그 처리 및 디버깅 흐름 학습
React Developer Tools 설치 및 활용법을 통해 상태 변화 흐름 시각화
실시간 상태 추적과 컴포넌트 구조 분석 능력 향상
이 챕터를 마치면, 단순한 기능 구현을 넘어서 컴포넌트 분리, 상태 설계, 디버깅, 타입 관리까지 한 번에 경험하게 되며,“내가 직접 만든 기능이 동작하는 기쁨”을 통해 리액트에 대한 자신감을 갖게 됩니다.
이 챕터에서는 리액트에서 폼을 어떻게 다룰 것인가에 대한 실전적인 고민을 담았습니다. 단순한 입력 처리를 넘어, 리액트 19의 새로운 기능(ref 전달), 커스텀 훅을 통한 폼 로직 재사용, 유효성 검사까지 총망라합니다.
input
, checkbox
, radio
, textarea
등 제어 컴포넌트 전반 실습
상태와 연결된 입력 처리 흐름과 리렌더링 이해
🧩미션: 다양한 제어 입력을 조합한 폼 UI 구현
ref
를 통한 입력값 접근과 DOM 기반 제어 방식
제어/비제어 방식의 장단점 비교 및 통합 전략
🧩미션: 비제어 방식으로 다중 입력 일괄 처리하기
ref
를 props로 전달하는 새로운 패턴 (리액트 19)
복잡한 입력 처리를 커스텀 훅으로 분리하고 재사용성 높이기
커스텀 훅 심화: 내부 상태 추상화, 커스텀 벨리데이션 연동
필수값, 길이, 포맷 등의 기본 벨리데이션 구현 패턴
커스텀 벨리데이션 함수 작성 및 훅 통합
🧩미션: 로그인 폼 완성하기
→ 입력 제어 + 벨리데이션 + 상태 처리까지 총체적 폼 실습
이 챕터를 마치면 단순한 입력 처리에서 한 걸음 나아가,
복잡한 폼 흐름을 구성하고, 깔끔하게 유지보수 가능한 구조로 관리하는 역량을 얻게 됩니다.
실무 수준의 입력 제어 경험과 최신 리액트 기술까지 함께 체득할 수 있는 결정적 기회입니다.
이 챕터에서는 지금까지 배운 리액트의 핵심 개념들을 바탕으로, 실제로 동작하는 할일 관리(Todo) 애플리케이션을 구현합니다.
컴포넌트 분리, 상태 관리, 이벤트 처리, 리스트 렌더링, 수정/삭제 등 실전 리액트 개발 흐름을 처음부터 끝까지 경험할 수 있는 챕터입니다.
프로젝트 세팅부터 시작해 기본 구조 잡기
입력 폼을 통한 할일 등록 기능 구현
리스트 렌더링으로 할일 목록 표시하기
체크박스를 통한 할일 완료 표시 및 삭제 기능 추가
🧩할일 수정 기능 구현을 통해 상태 업데이트와 UI 제어 로직 숙련
단순한 API 이해를 넘어, 여러 컴포넌트 간의 역할 분리와 데이터 흐름을 설계
상태를 중심으로 동작하는 리액트 앱의 구조와 흐름을 처음부터 끝까지 스스로 구현
미션에 가까운 완성형 프로젝트로 작은 규모의 CRUD 앱을 직접 만들어본 경험
이 챕터를 마치면, 리액트의 다양한 기능을 조합해 하나의 앱을 설계하고 완성하는 자신감 있는 첫 프로젝트 경험을 갖게 됩니다.
이 챕터는 리액트 컴포넌트가 단순히 “렌더링”만 하는 것을 넘어서, 비동기 작업, 브라우저 이벤트, 외부 API 처리 등 사이드 이펙트 관리와 불필요한 렌더링을 줄이는 최적화 전략까지 함께 다룹니다.
useEffect
, useId
등)useId
훅을 활용한 접근성 향상 및 고유 식별자 생성
🧩할일 관리 앱에 useId
를 적용해 실무 접근성 감각 체득
useEffect
의 동작 시점, 의존성 배열의 원리 등 이론 + 실습
🧩Todo 앱에 useEffect
를 적용해 외부 데이터, 상태 변화 반응 처리 구현
React.memo
, useCallback
, useMemo
)React.memo
를 통한 불필요한 리렌더링 방지
메모이제이션이 언제 풀리는지, 그리고 그 이유 분석
useCallback
과 useMemo
의 차이와 적용 시점
🧩할일 관리 앱에 React.memo
와 useCallback
을 적용하여 최적화 체감
lazy
, suspense
, error-boundary
)컴포넌트를 지연 로딩하는 lazy()
와 Suspense
의 기본 개념
로딩 대기 중의 UI 구성과 사용자 경험 향상 전략
에러 발생 시 앱을 무너지지 않게 보호하는 ErrorBoundary
처리 방식
이 챕터를 마치면, 복잡한 컴포넌트 구조 속에서도 성능과 유지보수를 고려한 설계를 직접 구현할 수 있으며,
실제 서비스에서 요구하는 수준의 리액트 앱 운영 감각을 갖추게 됩니다.
컴포넌트 간 깊은 데이터 전달을 깔끔하게 처리하고 싶다면? Context API가 그 해답입니다.
이 챕터에서는 전역 상태 관리의 기초로 Context API의 핵심 개념과 사용법을 학습하고, 실전 프로젝트에 적용하며 구조화된 앱 개발 능력을 기릅니다.
props drilling 문제를 해결하기 위한 전역 상태의 필요성
createContext
, useContext
를 활용한 기본 전역 상태 설계
불필요한 렌더링 문제와 구조 개선 방법 (memo
, context 분리
)
reducer
와 결합하여 복잡한 전역 상태도 효율적으로 관리
✅두 개 이상의 Context를 함께 사용하는 패턴 실습 포함
초기 UserProfile 코드 분석 → 컨텍스트 객체로 상태 분리
🧩글자 크기, 테마, 알림 설정, 언어 설정(i18n.ts) 등 사용자 환경 설정을 전역 상태로 관리
useLayoutEffect
를 함께 활용해 렌더 순서 및 레이아웃 반응성 제어
✅Context API + 커스텀 훅 설계를 통한 확장성 높은 전역 상태 구조 학습
기존 할일 앱에 전역 상태 도입 → 컴포넌트 간 상태 공유 구조 개선
여러 컴포넌트가 동일한 상태를 활용할 수 있도록 구성하며 실전 설계 능력 강화
이 챕터를 통해 단순한 컴포넌트 단위의 상태에서 벗어나,
앱 전체를 바라보는 전역 상태의 흐름과 관리 전략을 실제로 구현할 수 있게 됩니다.
Context API로 전역 상태의 개념을 잡았다면, 이제는 리덕스 툴킷(RTK)으로 보다 확장 가능하고 유지보수하기 쉬운 전역 상태 관리 구조를 경험해봅니다.
이 챕터는 복잡한 상태를 체계적으로 관리할 수 있도록 리덕스 툴킷의 핵심 기능을 실습 중심으로 학습합니다.
Redux Toolkit의 등장 배경과 기존 Redux와의 차이점
스토어 생성 및 createSlice
를 통한 슬라이스 구조화
상태 변경 흐름, 액션 디스패치, 리렌더링 흐름 이해
✅Redux DevTools 연동을 통한 상태 디버깅
매개변수 전달, thunk
를 활용한 비동기 처리 로직까지 확장
✅슬라이스를 여러 개로 분리하고 병합하여 관리하는 고급 구조 실습
UserProfile 상태를 Redux 기반으로 재구성
🧩글자 크기, 알림 설정, 테마 상태 등을 슬라이스 단위로 구조화
Context API 대비 더 강력한 구조적 통제력과 유지보수성 비교 체험
기존 할일 관리 앱을 Redux Toolkit 기반으로 전환
✅Todo 상태, 추가/삭제/수정 로직을 슬라이스 단위로 구현
실전에서의 컴포넌트-스토어 분리 전략과 코드 관리 경험 강화
이 챕터를 마치면, 단순한 상태 관리에서 한 걸음 나아가
“슬라이스 단위의 구조화된 전역 상태 관리”를 직접 구현할 수 있는 수준에 도달하게 됩니다.
실무에서 Redux Toolkit을 어떻게 쓰는지 궁금했던 분들에게도 강력 추천되는 실전 챕터입니다.
복잡한 설정 없이 빠르게 전역 상태를 만들고 싶다면?
이 챕터에서는 가볍고 직관적인 전역 상태 관리 라이브러리인 Zustand를 학습합니다.
Redux보다 가볍고 Context보다 강력한 구조로, 실무에서도 점점 주목받고 있는 상태 관리 대안입니다.
Zustand의 개념과 철학: “Global store with minimal boilerplate”
기본 사용법과 상태 정의 방식
상태에 매개변수를 전달하고, 파생 상태를 쉽게 만들 수 있는 구조
✅persist
기능으로 로컬스토리지 등 영속성 저장
✅subscribeWithSelector
를 이용한 리렌더링 최적화
✅immer
를 통해 불변성 관리를 직관적으로
✅devtools
연동으로 디버깅까지 손쉽게 처리
UserProfile
상태를 Zustand 기반으로 다시 구현
Redux/Context와 비교했을 때 코드 양, 직관성, 확장성 차이 체험
기존 할일 앱을 Zustand 기반으로 전환
✅컴포넌트가 글로벌 상태를 사용하는 다양한 방법 직접 구현
상태 변경 → UI 렌더 → 저장/복구 흐름을 최소 코드로 구현하는 경험 제공
이 챕터를 마치면, 세 가지 상태 관리 도구(Context API, Redux Toolkit, Zustand)를 모두 체험한 실력자로서
상황에 맞는 전역 상태 도구를 판단하고 선택할 수 있는 실무 기준과 감각을 얻게 됩니다.
이제 리액트 앱을 “살아 있는 앱”으로 만들어야 할 시간입니다.
이 챕터에서는 실제 서버와 통신하는 방법을 학습하고, 이를 PostBrowser 미니 프로젝트에 직접 연결해보며 리액트 앱의 실전 통신 구조를 완성해갑니다.
HTTP 통신의 기본 개념과 구조
json-server
로 로컬 API 서버 구성 → 🛠실습 기반 API 환경 구축
Thunder Client를 활용한 API 테스트 자동화
📝db.json
파일 구성 노트 제공으로 실습 기반 완비
기본 요청 (GET
, POST
, PUT
, DELETE
) 구조 익히기
✅ 로딩 상태, 에러 핸들링, 요청 취소(AbortController
) 등 실전 요소까지 반영
🧩실전 중심 CRUD 작업을 fetch
로 전부 구현하며 리액트 연동 흐름 이해
axios
기본 사용법부터 CRUD 전체 흐름 정리
✅axios.create()
를 통한 공통 인스턴스 구성
✅인터셉터, 에러 핸들링, 응답 구조 통합 등 실무 전략 소개
기본 코드 제공 → 리액트 앱에 데이터 연동 적용
게시글 렌더링 → 페이징 구현 → 검색 기능 추가까지 순차적 완성
✅ 실습을 통해 상태 관리, 패칭 흐름, UI 업데이트 흐름 전부 종합적으로 경험
이 챕터를 마치면, 단순한 컴포넌트를 넘어서 API와 통신하는 실전형 리액트 애플리케이션을 직접 설계하고 구현할 수 있는 능력을 갖추게 됩니다.
이후 TanStack Query
나 고급 상태 관리로 확장할 수 있는 확실한 기반을 다지는 파트입니다.
이 챕터는 리액트 19에서 도입된 폼/비동기 관련 API들을 중심으로,
데이터 통신을 사용자 경험 관점에서 어떻게 최적화할 수 있는지를 기능별 실습 + TMDB 실전 프로젝트를 통해 배우게 됩니다.
useTransition
을 이용한 스무스한 UI 상태 전환 처리
🧩Transition 적용 전후 비교 실습을 통해 체감형 학습
useActionState
, form action
, useFormStatus
를 통한
→ 폼 처리의 새로운 방식과 서버 액션 흐름 학습
useOptimistic
으로 낙관적 UI 구현
✅ 비동기 작업 전 응답 없이도 UI를 먼저 반영하는 최신 UX 설계
use()
를 통한 Promise 기반 데이터 직접 처리 및 Suspense 연계
ErrorBoundary
와 Suspense
조합으로 에러 + 로딩 대응 전략 구성
영화 목록 렌더링 → 페이징 → 무한스크롤 구현까지 전개
🧩Suspense + use() + ErrorBoundary 조합으로 실전 완성도 높은 영화 앱 구성
✅회원가입 흐름까지 통합한 서버와의 통신 전체 사이클 경험
이 챕터를 마치면, 단순한 fetch나 axios 수준을 넘어
리액트 19 시대의 데이터 UX를 선도하는 기능들을 실전 앱에 자연스럽게 녹여낼 수 있는 수준에 도달하게 됩니다.
사용자 중심의 UI 응답성과 실시간성 있는 앱 구현을 원하는 분들에게 강력히 추천되는 파트입니다.
리액트 애플리케이션에서 라우터는 페이지 구조, 데이터 흐름, 사용자 이동 경험을 책임지는 핵심입니다.
이 챕터에서는 React Router v7의 최신 API들을 기반으로 SPA 구조를 설계하고,
라우팅 + 데이터 로딩 + 에러 핸들링까지 완전한 전환 흐름을 구축해봅니다.
기본 설치 및 라우터 설정
중첩 라우트, 인덱스 라우트, 레이아웃 라우트 구성
✅라우트 프리픽스, 동적/옵셔널 세그먼트, 스플랫 등 실무형 경로 패턴 학습
NavLink
, Link
를 활용한 UI 중심의 이동 제어
<Form>
컴포넌트로 리액트 라우터 기반 폼 처리 이해
navigate()
함수를 활용한 프로그래밍 방식 이동 처리
✅전통적인 form 제출 방식과 라우터 기반 접근의 차이 체험
loader
속성을 통한 라우트 단위 데이터 패칭 흐름 설계
loader
에서 발생하는 비동기 요청 → 로딩 처리 → 에러 핸들링
✅loader + suspense
, loader + errorElement
등 실전 구조 구현
이 챕터를 마치면, 리액트 앱의 페이지 설계부터 데이터 흐름, 사용자 경험까지
전반적인 SPA 구조를 스스로 설계하고 운영할 수 있는 프론트엔드 설계력을 얻게 됩니다.
지금까지 학습한 컴포넌트 설계, 상태 관리, 데이터 통신, 사용자 경험 최적화, 인증 처리, 배포까지
모든 내용을 집약한 리액트 기반 풀스택 프로젝트의 완성 단계입니다.
이 챕터에서는 실제 서비스처럼 동작하는 블로그형 웹 애플리케이션을 직접 구현하고 배포까지 경험합니다.
MongoDB 설정 및 백엔드 API 연동
✅카카오 로그인 구현: 애플리케이션 등록부터 OAuth 플로우 전체 구성
✅자체 회원가입/로그인 구현: 폼 구성 + 서버 연동 + 상태 관리
토큰 인증, 에러 처리, 인증 흐름 디버깅 실습
게시글 등록 → 이미지 첨부 프리셋 연동
✅ 수정, 삭제, 상세 보기 기능까지 모든 CRUD 흐름 실현
댓글 작성, 삭제, 렌더링 로직 → 상태 연동 및 리렌더링 처리
✅백엔드 수정 내용은 강의 노트로 함께 제공
메인 게시글 목록을 페이지 단위로 불러오기
✅ 페이지네비게이션 컴포넌트를 직접 설계하여 실전 감각 강화
무한스크롤이 아닌 정형화된 페이징 처리 전략 이해
사용자 흐름에 맞춘 UI/UX 개선과 미비점 보완
✅ 프론트엔드 & 백엔드 각각 Vercel을 통한 실제 배포 실습
실 서비스 기준으로 도메인 구성, 이미지 최적화, 최종 점검까지
이 파이널 챕터를 마치면, 단순한 연습을 넘어
“스스로 사용자 인증 기반 웹 서비스를 구축하고 운영할 수 있는 개발자”가 됩니다.
강의를 통해 배운 모든 것을 완성된 하나의 서비스로 통합해보며 실력을 검증하세요!
디자인이 적용되지 않은 실습만 빼고, 디자인이 적용된 것만 소개할게요!
디자인이 적용안된 예제까지 하면 수십개 +
이러한 밀도 높은 모든 예제들이 여러분들의 단계적인 학습을
완벽하게 도와줄 것이라고 자신합니다.
누구에게나 인정받는 대작 게임이 나에게는 재미없을 수 있는 것처럼,
강의도 모두에게 똑같이 맞는 건 아닙니다.
아무리 칭찬이 자자한 강의라도 나와 맞지 않을 수 있고,
반대로 누군가에겐 평범한 강의가 나에겐 최고의 강의가 될 수 있죠.
그래서 제 모든 강의는 최소 10% 이상 무료로 공개되어 있습니다.
직접 들어보고, 저와 스타일의 ‘결’이 맞는지 확인해 보세요!
만약 저와 결이 잘 맞는다면,
프런트엔드 개발자로 가는 가장 빠른 지름길을 안내해 드리겠습니다.
믿고 따라오세요!🚀
Q. 진짜 아무것도 모르는 초보자입니다. 괜찮을까요?
A. 네. 정말 괜찮습니다. 아무것도 모르는 분들이 학습할 수 있게 구성한 맞춤 강좌입니다. 단, 학습에 사용되는 언어에 대한 최소 수준의 지식은 갖추어야 합니다.
Q. 선수지식이 필요한가요?
A. 네, 본 강좌는 반드시 HTML5/CSS3/JavaScript/TypeScript에 대한 선행 지식이 필요합니다.
운영 체제 및 버전(OS): Windows, macOS
사용 도구: 비주얼 스튜디어 코드(Visual Studio Code), 크롬(Chrome)
PC 사양: 웹 서핑이 가능한 수준의 최저 사양도 가능합니다.
실습 진행을 위한 강의별 학습 자료 제공합니다.
완전 비전공자, 초보자도 수강 가능
단, HTML5/CSS3/JavaScript/TypeScript에 대한 학습은 선행되어야 합니다.
학습 대상은
누구일까요?
리액트를 처음 배우는 프론트엔드 입문자
자바스크립트 기반 리액트는 익숙하지만 타입스크립트가 낯선 개발자
상태관리 도구(Context, Redux Toolkit, Zustand)를 체계적으로 비교하고 싶은 분
React 19의 새로운 기능을 실무에 적용해보고 싶은 개발자
포트폴리오용 리액트 프로젝트를 완성하고 싶은 예비 취업자
선수 지식,
필요할까요?
html + css
javascript
typescript
4,221
명
수강생
176
개
수강평
62
개
답변
4.9
점
강의 평점
7
개
강의
수코딩은 온라인과 오프라인을 병행하면서
코딩을 가르치는 활동을 하고 있습니다.
다년간의 오프라인 강의 경험을 바탕으로,
더 많은 사람들이 코딩을 쉽고 재미있게 배울 수 있도록
매일 고민하고, 끊임없이 노력하고 있습니다.
현재까지 다음과 같은 3권의 책을 출판하며
프런트엔드 강의 분야를 선도하고 있습니다:
또한, 유튜브 채널을 통해 다양한 무료 강의도 제공하고 있습니다.
👇 지금 바로 방문해 보세요
[유튜브 채널 링크]
전체
316개 ∙ (26시간 50분)
해당 강의에서 제공:
6. GoodBye CRA
04:20
8. 왜 Vite인가?
03:21
9. Vite 7.0 살펴보기
04:15
12. 초기 폴더 및 파일 살펴보기
06:13
14. 불필요한 폴더와 파일 삭제하기
02:00
15. npm run dev란?
03:41
16. JSX란?
02:23
17. JSX의 특징
03:46
18. 컴포넌트란?
01:42
19. 컴포넌트의 종류
02:27
20. 함수형 컴포넌트의 조건
02:41
21. React.Fragment
04:13
22. 새로운 컴포넌트 만들기
02:34
23. 컴포넌트 트리 이해하기
03:53
24. 루트 컴포넌트에 대한 고찰
02:05
25. 컴포넌트에 대한 이모저모
06:00
26. components 폴더
01:43
29. 조상, 부모, 자식, 자손
02:12
30. 기본 데이터 출력하기
04:09
31. 참조 데이터 출력하기
05:26
33. 컴포넌트에 데이터 전달하기 1
04:38
34. 컴포넌트에 데이터 전달하기 2
08:25
35. 비구조화 할당하기
02:39
36. 타입 쉽게 알아내기
01:55
37. 타입 정의 하는 방법
03:01
38. 스프레드 연산자 활용하기
04:22
39. children
06:21
42. 이벤트 연결하기
03:41
43. 이벤트 속성 파악하기
01:49
45. 이벤트 핸들러 방법 추천
02:44
48. 이벤트 객체 배우기 - 1
08:05
49. 이벤트 객체 배우기 - 2
04:48
50. 이벤트 객체 배우기 - 3
03:25
51. 이벤트 전파 - 버블링
04:10
52. 이벤트 전파 - 캡쳐링
02:04
53. 이벤트 기본 동작 막기
03:11
54. (해설) 버튼 컴포넌트 만들기
02:58
55. 상태가 필요한 이유
02:28
56. useState - 1
05:32
57. useState - 2
04:22
58. (미션) 상태 값 정의하기
03:56
59. 상태 업데이트 방법
05:44
60. 상태 업데이트 방법 복습하기
03:10
61. (해설) 카운터앱 만들기
03:48
62. 객체 상태 정의하기
06:01
63. 객체 상태 정의하기 심화
04:24
65. 배열 상태 다루기
03:44
66. 상태 독립성 이해하기
05:06
67. 상태 끌어올리기
03:40
68. 캡슐화 이해하기
04:12
71. useReducer - 1
01:21
72. useReducer - 2
05:33
73. 카운터 앱 만들기 v3
04:11
74. 조건부 렌더링 - if
06:40
76. 조건부 렌더링 - switch
04:15
78. 조건부 렌더링 - 삼항 연산자
04:51
80. 조건부 렌더링 - && 연산자
02:27
82. 반복 렌더링 - for
05:35
83. 반복 렌더링 - map
05:36
85. key 속성 고유하게 하기
07:57
86. key 속성의 유효 범위
01:37
87. filter
06:06
89. 인라인 스타일
05:15
90. 글로벌 스타일
04:52
91. CSS 모듈(Module)
05:31
92. classnames
08:37
94. CSS-IN-JS 소개
02:07
110. 이미지 렌더링
05:41
111. 이미지 렌더링 (CSS)
06:45
112. (해설) 램프 불 켜고 끄기
04:25
113. 구글 폰트 적용하기
04:57
114. 계산기 만들기 소개
02:30
115. 계산기 만들기 준비
04:20
116. 계산기 리팩토링
07:05
117. 계산기 타입 빼기
02:49
119. 리액트 개발자 도구 설치
02:38
120. 계산기 기능 구현 - 연산자
14:00
121. 계산기 기능 구현 - 소수점
02:40
122. 계산기 기능 구현 - 클리어
02:45
124. 폼 다루기란?
01:02
126. 제어 컴포넌트 - 체크박스
06:23
127. 제어 컴포넌트 - 라디오
08:20
131. 비제어 컴포넌트 - 체크박스
07:23
132. 비제어 컴포넌트 - 라디오
03:46
136. 폼 제어 고급 - 커스텀 훅
04:59
137. 벨리데이션 - 기본
01:34
138. 벨리데이션 - 커스텀
06:00
140. (해설) 로그인
19:38
141. 할 일 관리 앱 소개
01:47
142. 리액트 앱 생성
05:09
143. 컴포넌트 분리하기
16:16
144. 할 일 등록 기능 구현하기
07:56
147. 할일 수정 기능 구현하기
05:33
148. useId
03:25
149. 할일 관리 앱(useId)
02:06
150. useEffect 이론
01:34
151. useEffect 실습
08:23
152. (해설) 스톱워치
07:10
154. 컴포넌트 리렌더링 조건
05:12
155. React.memo
05:59
157. useCallback
05:56
158. 할일 관리 앱(메모이제이션)
08:28
159. useMemo
03:55
160. lazy
04:02
161. suspense
04:43
162. error-boundary
07:38
164. Context API
08:01
165. Context API 개선
06:42
181. Redux Store 생성
04:28
182. Redux Slice 생성
10:40
183. Redux에서의 리렌더링
03:38
185. Redux Devtools
02:56
186. Redux Thunk
07:32
191. 할일 관리 앱(Redux)
17:22
192. zustand란?
01:20
193. zustand 사용하기
08:25
194. zustand 매개 변수
03:16
195. zustand persist
04:19
197. zustand immer
03:04
201. 데이터 패칭 기초 개념
03:09
202. json-server
03:29
203. thunder client
07:19
210. fetch - crud
10:01
211. axios - crud
08:57
212. axios - total
04:19
214. Post Browser 소개
01:39
218. Post Browser 검색
08:03
224. form action
06:28
225. useFormStatus
05:16
226. useOptimistic
03:47
229. use + suspense
01:46
231. error boundary
05:24
232. tip
03:42
233. tmdb 회원가입
03:10
234. tmdb 소개
05:06
235. 영화 목록 렌더링 - 1
11:34
236. 영화 목록 렌더링 - 2
06:07
237. 무한 스크롤링
08:21
254. 파이널 프로젝트 소개
02:55
255. 몽고 DB 준비하기
08:49
256. 몽고 DB 설정변경
01:37
257. 카카오 애플리케이션 만들기
05:06
258. 카카오 로그인 원리 이해하기
04:12
265. 일반 회원 가입 구현하기
13:55
266. 일반 회원 로그인 구현하기
08:23
267. 액세스토큰 대처법
01:55
268. 게시글 등록하기 - 1
06:30
269. 게시글 등록하기 - 2
09:29
270. 게시글 등록하기 - 3
08:58
271. 게시글 등록하기 - 4
11:14
272. 메인 - 1
08:11
273. 메인 - 2
06:45
274. 메인 - 3
04:11
275. 메인 - 4
06:54
276. 게시글 상세
05:20
277. 게시글 수정
08:02
278. 게시글 수정 버그
03:07
279. 게시글 삭제
02:25
280. 게시글 댓글
08:53
281. 게시글 댓글 렌더링
09:07
282. 게시글 댓글 삭제
04:58
283. 백엔드 코드 수정
02:02
285. 게시글 목록 - 1
07:47
286. 게시글 목록 - 2
06:00
287. 게시글 목록 - 3
04:16
288. 게시글 목록 - 4
03:40
289. UI 변경
01:06
290. 미비된 것 보완
08:26
292. 배포 - 백엔드
04:21
293. 배포 - 프런트 - 1
00:28
294. 배포 - 프런트 - 2
06:51
295. 배포 - 프런트 - 3
05:58
전체
6개
5.0
6개의 수강평
수강평 2
∙
평균 평점 5.0
수강평 3
∙
평균 평점 5.0
5
리액트를 전에 다른 강의로 한번 공부했었지만 머릿속에 정리가 안되는 느낌이었는데 이 강의를 들으니까 쫙 정리가 되었고 중간중간에 미션들도 있어서 저절로 체화되는 느낌이라 너무 좋았어요! 강의 스타일이 저랑 너무 잘 맞아서 다음에 어떤 새로운 강의가 나올지도 기대됩니당ㅎㅎ
안녕하세요. Do Hae Kim님! 정성스러운 후기 감사합니다! 😊 기존에 공부하셨던 내용을 이번 강의로 정리하고 체화되었다니 정말 뿌듯하네요. 강의 스타일이 잘 맞으셨다니 더할 나위 없이 기쁩니다. 말씀해주신 것처럼 현재는 Next.js 15 강의를 기획 중이라, 이전보다 더 흥미롭고 실전적인 내용으로 찾아뵐 수 있을 것 같아요. 앞으로도 기대 많이 해주세요! 🙌