React 기초 학습 – 화면 상태 로드맵

Coding Learning Lab기초 강의와 React 실습 문제

React 코드 리뷰 노트

이 화면이 왜 다시 렌더링되지 않는지 상태 흐름부터 확인합니다

JSX 문법 설명보다 먼저 state 변경, input 연결, 목록 업데이트, loading/error 분기가 실제 UI에서 어떻게 실패하는지 봅니다. 각 모듈은 같은 실수 유형의 React 문제로 바로 이어집니다.

방문자가 읽은 개념이 실제 문제로 이어지도록 모든 모듈 버튼은 홈 실습 랩의 정확한 문제 ID로 이동합니다.

1단계JavaScript 실행 흐름함수 return, 조건문, 배열/객체 흐름을 먼저 잡습니다. 2단계TypeScript 데이터 계약값이 없거나 형태가 다른 API 응답을 타입으로 막습니다.
3단계React 화면 상태상태 변경, 입력, 목록, API 결과가 화면에 반영되는 흐름을 다룹니다.
01버튼 클릭 카운터

컴포넌트와 JSX

React 화면은 작은 컴포넌트를 조합해 만듭니다. JSX는 HTML처럼 보이지만 JavaScript 값과 함수를 함께 다루는 문법입니다.

핵심컴포넌트는 입력을 받아 화면 조각을 반환하는 함수처럼 생각하면 됩니다.
실무 예폼, 목록, 필터, API 화면처럼 프론트엔드에서 반복적으로 만드는 UI 패턴에 바로 연결됩니다.
주의React에서는 DOM을 직접 바꾸기보다 상태를 바꾸고 화면은 상태에서 다시 계산하는 흐름이 중요합니다.
function Welcome() {
  return 

학습을 시작합니다

; }
02버튼 클릭 카운터

useState로 화면 상태 관리

버튼 클릭, 입력값 변경, 탭 전환처럼 화면이 바뀌는 값은 state로 관리합니다.

핵심state를 직접 바꾸지 말고 setter 함수를 호출해야 React가 화면을 다시 그립니다.
실무 예폼, 목록, 필터, API 화면처럼 프론트엔드에서 반복적으로 만드는 UI 패턴에 바로 연결됩니다.
주의React에서는 DOM을 직접 바꾸기보다 상태를 바꾸고 화면은 상태에서 다시 계산하는 흐름이 중요합니다.
const [count, setCount] = useState(0);
setCount(prev => prev + 1);
03입력값 미리보기

입력값을 상태와 연결하기

검색창, 로그인 폼, 댓글 입력처럼 사용자가 입력한 값은 value와 onChange를 함께 연결하면 안정적으로 다룰 수 있습니다.

핵심controlled input은 입력값을 React 상태가 단일 기준으로 관리하게 합니다.
실무 예폼, 목록, 필터, API 화면처럼 프론트엔드에서 반복적으로 만드는 UI 패턴에 바로 연결됩니다.
주의React에서는 DOM을 직접 바꾸기보다 상태를 바꾸고 화면은 상태에서 다시 계산하는 흐름이 중요합니다.
const [text, setText] = useState("");
 setText(e.target.value)} />
04Todo 항목 추가/삭제

배열 상태를 불변하게 업데이트

Todo, 장바구니, 선택 목록처럼 배열을 다룰 때는 원본을 직접 바꾸지 않고 새 배열을 만들어야 합니다.

핵심push 대신 전개 연산자나 filter/map을 사용하면 React 상태 변경이 명확해집니다.
실무 예폼, 목록, 필터, API 화면처럼 프론트엔드에서 반복적으로 만드는 UI 패턴에 바로 연결됩니다.
주의React에서는 DOM을 직접 바꾸기보다 상태를 바꾸고 화면은 상태에서 다시 계산하는 흐름이 중요합니다.
setTodos(prev => [...prev, { id: Date.now(), text }]);
05필터 버튼 만들기

필터와 조건부 렌더링

전체/완료/미완료 탭, 검색 결과, 상태별 목록처럼 같은 데이터도 조건에 따라 다르게 보여줘야 합니다.

핵심필터 값은 제한된 문자열로 관리하고, 화면에는 필터링된 배열만 렌더링합니다.
실무 예폼, 목록, 필터, API 화면처럼 프론트엔드에서 반복적으로 만드는 UI 패턴에 바로 연결됩니다.
주의React에서는 DOM을 직접 바꾸기보다 상태를 바꾸고 화면은 상태에서 다시 계산하는 흐름이 중요합니다.
const visibleTodos = todos.filter(todo => filter === "all" || todo.status === filter);
06API 로딩 상태 표시

로딩, 에러, 빈 상태

실무 화면은 성공 상태만 있지 않습니다. 데이터를 기다리는 중, 실패한 경우, 결과가 없는 경우를 분리해야 합니다.

핵심API 화면은 loading, error, empty, success 상태를 먼저 설계하면 깨지는 화면이 줄어듭니다.
실무 예폼, 목록, 필터, API 화면처럼 프론트엔드에서 반복적으로 만드는 UI 패턴에 바로 연결됩니다.
주의React에서는 DOM을 직접 바꾸기보다 상태를 바꾸고 화면은 상태에서 다시 계산하는 흐름이 중요합니다.
if (loading) return 

Loading...

; if (error) return

Error

; if (!data) return

Empty

;

React 실무 복습 루틴

React 15문제를 무작정 풀기보다 입력값, 폼 검증, API 상태, 재시도 흐름을 순서대로 묶어보세요. 실제 서비스 화면에서 자주 이어지는 패턴입니다.

왜 틀리는지 확인

버튼 클릭에만 제출 로직을 넣거나, 로딩과 에러 상태를 boolean으로 흩어놓으면 실무 화면에서 버그가 늘어납니다.

실무 기준으로 복습

문제를 맞힌 뒤 입력 출처, 제출 흐름, 실패 메시지, 재시도 버튼까지 코드 리뷰 기준으로 점검하세요.

React 15문제 실습 순서

위 개념을 확인한 뒤 아래 순서로 풀면 state, props, 목록, 폼, API 상태까지 실무에서 자주 쓰는 흐름을 끊기지 않고 연습할 수 있습니다.

다음 단계

이 페이지를 한 번 훑은 뒤 React 15문제를 순서대로 풀어보세요. 이후 React 문제를 30개까지 확장하기 전에 컴포넌트 분리, props, 폼 검증, API 상태 관리까지 이어갈 예정입니다.