STUDY/[ React ]

그래서 Context랑 Provider랑 Fiber가 무슨 상관인데

Lim임 2025. 11. 28. 02:19

➤ Provider = Context에 실제 “값을 채우고 전달하는 공급자”

Context 자체는 “형식만 있음”.
Provider가 있어야 실제 값이 들어감.

즉,

Context = 타입/구조 정의(창고 설계)
Provider = 실제 값 공급 + 연결(창고 문 여는 지점)
Consumer/useContext = 값 꺼내서 사용(물건 꺼내쓰기)

 Context는 “전역 객체”가 아님

React 내부에서 Fiber 트리를 따라 특정 Provider에서 받은 value를 전파하는 구조임.

그래서 Provider를 여러 개 두면:

<ThemeContext.Provider value="dark">
  <ThemeContext.Provider value="light">
     <Component />
  </ThemeContext.Provider>
</ThemeContext.Provider>
RootFiber
 └─ ProviderFiber(value="dark")   ← ThemeContext.Provider #1
      └─ ProviderFiber(value="light")  ← ThemeContext.Provider #2
           └─ ComponentFiber          ← Component

 

ComponentFiber는 “상위(ancestor)로 계속 올라가며 Provider를 찾음”.

 

useContext(Context) 는 자기 바로 위에 있는 가장 가까운 Provider를 찾는다.
(“가장 가까운 조상 Provider”)

 

Component는 가장 가까운 Provider인 “light”를 받음.

➡️ React는 단순한 global variable을 쓰는 게 아니라
트리에서 가장 가까운 Provider로 바인딩하는 아주 깔끔한 시스템임.