Skip to content

Commit 510ec9e

Browse files
committed
docs: 리액트에서도 의존성 주입으로 결합도를 낮춰보자! - Renderer Props 패턴 (feat.DIP) 에 요새 안쓰는 이유 추가
1 parent b67e5fe commit 510ec9e

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

contents/posts/React/solid-render-props.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,24 @@ function Cafe() {
294294
}
295295
```
296296

297+
## 🥲 그런데 왜 Renderer Props 패턴은 요즘 덜 쓸까?
298+
299+
Renderer Props 패턴은 의존성 주입(DI), DIP, OCP를 전부 만족시킬 수 있는 멋진 패턴이지만, <br/>
300+
실전에서는 몇 가지 단점 때문에 요즘은 예전만큼 자주 쓰이지 않습니다.
301+
302+
1. Renderer Props Hell
303+
- 중첩된 Renderer Props 로 인해 코드가 복잡해지고 가독성이 떨어질 수 있습니다.
304+
305+
2. 재렌더링 전파
306+
- `render={(bean, status) => {...}}` 같은 익명 함수가 매 렌더링마다 새로 만들어 넘기기 때문에 부모가 재렌더링시 자식도 불필요하게 재렌더링될 수 있습니다.
307+
- 이를 방지하려면 `useCallback` 등으로 함수를 메모이제이션 해야 합니다.
308+
309+
3. 의도가 한 눈에 안보임
310+
- 함수 호출부만 보면 이 컴포넌트가 "무슨 데이터를 제공하는지", "상태가 어디서 오는지" 파악이 어렵습니다
311+
312+
4. 몇가지 대안 등장
313+
- 커스텀 훅, Context, Suspense 등 리액트 생태계에 다양한 대안이 등장하면서 Renderer Props 패턴의 필요성이 줄어들었습니다
314+
297315
## ⚙️ 결론!
298316

299317
1. "의존성 주입" 이란, 컴포넌트(혹은 함수)가 필요한 자원을 스스로 만들지 않고, 외부에서 전달받는 설계 방식이다.

0 commit comments

Comments
 (0)