DEV WIKI
프론트엔드 · 기술

React

React는 컴포넌트와 상태를 사용해 사용자 인터페이스를 렌더링하는 JavaScript 라이브러리입니다.

적용 범위
React의 개념·동작을 확인해야 하는 공개 웹 환경문맥: 바이브 코딩
출처
React
출처 확인일
2026-07-27
최종 검토
2026-07-27
오류·수정 제보 (새 창에서 열림)

정상 동작 조건

요약

React 오류를 확인할 때는 브라우저 콘솔의 첫 오류, 렌더링 시점의 입력값, 컴포넌트 상태 변경과 서버·클라이언트 실행 경계를 분리해 기록해야 합니다.

확인 절차

React는 컴포넌트와 상태를 조합해 사용자 인터페이스를 렌더링합니다. 화면이 반복 갱신되거나 서버와 브라우저 결과가 다를 때는 컴포넌트의 입력, 상태 변경, 실행 환경을 나누어 기록해야 합니다.

오류 확인 순서

  1. 브라우저 콘솔과 서버 로그에서 가장 먼저 발생한 오류를 각각 기록합니다.
  2. 문제가 발생한 컴포넌트의 props와 state가 어느 시점에 바뀌었는지 확인합니다.
  3. effect 안에서 상태를 다시 변경하거나 렌더링 중 외부 값을 읽는 코드가 있는지 확인합니다.
  4. 서버 렌더링을 사용하는 경우 서버 결과와 브라우저 첫 렌더링 입력을 비교합니다.

원문 JavaScript 오류는 JavaScript 오류 (새 창에서 열림)와 관련 React Guide에서 먼저 대조합니다.

관련 오류·증상

AI가 만든 UI를 키보드만으로 조작할 수 없음

클릭 가능한 요소가 키보드 포커스를 받지 못하거나 Enter·Space 동작을 제공하지 않는지 확인합니다.

AI가 만든 화면이 API 대기 중 빈 화면으로 남음

데이터 요청 중·성공·실패 상태를 구분하지 않아 사용자가 빈 화면을 오류로 오해하는지 확인합니다.

AI가 만든 낙관적 UI가 저장 실패 후에도 성공 상태로 남음

서버 저장 전에 화면을 성공 상태로 바꾼 뒤 요청이 실패해도 원래 값과 오류 상태로 되돌리지 않는지 확인합니다.

Cross-Origin Request Blocked

Amazon Web Services 공식 원문에 표시된 Cross-Origin Request Blocked 항목의 문구를 확인하는 문서입니다.

Client Component를 async 함수로 선언함

use client가 있는 React·Next.js 컴포넌트를 async 함수로 만들어 Promise를 반환하는지 확인합니다.

Next.js encountered URL data outside of Suspense

Client-side navigation 중 Server Component가 <Suspense> 경계 밖에서 params 또는 searchParams를 읽을 때 표시되는 Next.js 오류입니다.

Invalid src prop: hostname is not configured under images in your next.config.js

Next.js `Image`의 외부 이미지 호스트가 `images.remotePatterns`에 정확히 등록되지 않았는지 확인합니다.

Next.js could not validate that a segment in your UI has instant navigation

Next.js가 렌더링 트리에서 누락된 segment의 instant navigation 검증을 수행하지 못하는 오류입니다.

No HTML link for pages

Next.js 내부 경로 이동에 일반 `<a>`를 사용해 전체 페이지 새로고침이 발생하는지 확인합니다.

No Duplicate Head

pages/_document.js의 하나의 custom document에서 <Head />가 둘 이상 사용된 상태입니다.

React 입력이 uncontrolled와 controlled 사이에서 전환됨

입력값이 처음에는 undefined였다가 문자열이 되거나 반대로 바뀌어 React 경고와 입력 상태 이상이 발생하는지 확인합니다.

React useEffect가 상태 변경 때문에 무한 반복 실행됨

useEffect가 실행될 때마다 의존성 값을 바꾸어 다시 실행되는 순환이 있는지 확인합니다.

React에서 이전 API 응답이 최신 화면을 덮어씀

검색어·필터가 바뀐 뒤 먼저 보낸 요청이 늦게 도착해 최신 요청의 결과를 덮는지 확인합니다.

Hydration failed because the server rendered HTML didn't match the client.

서버가 만든 HTML과 브라우저의 첫 React 렌더링 결과가 달라 hydration mismatch가 발생했는지 확인합니다.

React 목록의 key가 없거나 배열 인덱스로 지정됨

목록의 항목 순서가 바뀔 때 React가 항목의 상태와 DOM을 잘못 재사용하는지 확인합니다.

Rendered more hooks than during the previous render.

React 컴포넌트가 이전 렌더링과 다른 순서 또는 개수로 Hook을 호출했는지 확인합니다.

React 이벤트에서 이전 상태값으로 계산된 결과가 저장됨

같은 이벤트나 비동기 콜백에서 상태를 여러 번 변경할 때 이전 렌더링의 값을 계속 사용하고 있는지 확인합니다.

참고 자료

React Learn (새 창에서 열림)

React · 공식 자료 · 확인 범위: components, state, rendering · 확인일: 2026-07-27