원문: React Reconciliation: Deep Dive
React의 Reconciliation(조정)은 컴포넌트 트리의 변경 사항을 실제 DOM에 최소한의 비용으로 반영하기 위해 실행되는 내부 알고리즘이다.
이 과정 덕분에 React는 선언형으로 UI를 작성하더라도 실제 DOM 조작을 최적화할 수 있다.
React는 컴포넌트를 재사용할지, 새로 만들지를 아래 두 가지 기준으로 판단한다:
**타입(type)**이 같은가?
예: <input /> vs <div />는 다르지만 <input /> vs <input />은 같음
**트리 내 위치(position)**가 같은가?
컴포넌트의 렌더링 순서나 구조가 바뀌지 않아야 동일하다고 본다.
이 두 조건이 모두 만족되면 React는 **"같은 컴포넌트"**로 판단하고, 기존 상태(useState, useRef 등)를 유지한다.
function App() {
const [edit, setEdit] = useState(false);
return (
<>
<button onClick={() => setEdit(!edit)}>Toggle</button>
{edit ? (
<input placeholder="Edit mode" />
) : (
<input placeholder="View mode" disabled />
)}
</>
);
}
input은 조건부 렌더링을 통해 props가 달라지지만,