
[React] React시작하기

Component, CSS, Event, Props

useState, useEffect, useContext, useLocation, useCallback

더미데이터 만들기, json-server, useEffect

Route, Link, useNavigate

[React] Async 와 Await

[React] Modal 팝업창 띄우기

[React] axios와 fetch 비교

[React] JSON 기초

핫 리로딩!!!

Webpack DevServer Proxy

코드 스플리팅(code splitting)

children은 React에서 특별한 용도로 사용되는 props 중 하나이다.

useSWR은 Stale While Revalidate

withCredentials

useRef

웹 소켓(WebSocket)!!

Socket.IO

Redux 시이작

Redux Toolkit

쿠키와 세션

Token 과 JWT 1편

configureStore는 Redux 스토어를 생성하는 함수로, Redux의 기본 createStore 함수보다 간편하게 스토어를 설정할 수 있도록 도와준다.

redux-persist로 데이터 영구 저장하자..!

AccessToken 재발급 받기!!

React 프로젝트 개발 시 헷갈리던 utils와 hooks 구분!

React를 React답게!

React는 왜 "선언적"일까? React의 선언적 특성은 특정 개인이 만든 슬로건이 아니라, React 자체의 본질적 특성을 나타내는 공식적인 표현이다. React 공식 문서(react.dev): "Declarative views make your code

“선언적” 철학을 경계로 구현한다

들어가며 — 1–2편에서 이어가기 1–2편에서는 “로딩/에러 같은 불완전성은 컴포넌트 바깥의 경계(Suspense, ErrorBoundary)로 넘긴다”는 철학을 다뤘다. 이 철학 덕분에 컴포넌트는 성공 상태만 책임지고, 대기와 실패는 경계가 대신 담당하게 된다.

이번 글에서는 그 선언적 철학이 “컴포넌트”라는 단위를 중심으로 어떻게 구현되는지를 살펴본다.

작은 단위를 조합해 복잡한 UI를 만드는 방식으로, React의 Composition over Inheritance 철학을 실무에 구현한다.

React가 강조해온 합성 철학을 끝까지 밀어붙인 결과, UI는 껍데기로 두고 로직만 남기는 Headless 컴포넌트가 탄생했다.

앞선 글에서 우리는 Compound Pattern이 합성을 “역할 단위로 쪼개기”로,Headless 컴포넌트가 합성을 “로직과 UI의 분리”로 확장한 모습을 살펴봤다.그렇다면 이번엔 이런 질문을 던져보자.“컴포넌트가 표현하는 태그 자체도 바뀔 수 있어야 하지 않을까?”

“데이터는 한 방향으로만 흐른다. 예측 가능성을 위해.”