해결된 질문
작성
·
172
0
안녕하세요..!
결국 Context도 이 컨테이너 안에 데이터를 몽땅 넣을 순 없으니 불필요한 렌더링을 최소화하기 위해 용도에 따라 분리하는것이 좋다라고 알려주셔서 잘 이해가 되었습니다 : )
그런데 복잡한 대형 프로젝트에서는 결국 Context도 6개,7개 .. 늘어나다보면,
<Context1.Provider>
<Context2.Provider>
<Context3.Provider>
<Context4.Provider>
<ContextN.Provider>
.......
이런식으로 늘어날텐데, Context도 몇개 이상 늘어나지 않도록 어느정도는 그룹핑을 해야할 것 같다고 생각이 듭니다.
코드 가독성을 유지하기 위해서 하위 컴포넌트들에게 전달할 데이터들을 최대 몇개 정도의 Context로 관리하는게 이상적일까요?..
답변 2
1
안녕하세요 이정환입니다.
우선 멋진 질문 감사합니다! 사실 진영님께서 말씀주신 그 부분이 바로 Context의 단점이자 Redux나 zustand등의 별도 상태관리 도구가 필요한 이유중 하나입니다.
전역으로 관리해야 할 데이터가 많다면 Context는 결국 중첩됩니다. 따라서 관리할 데이터가 정말 많아지면 Context 중첩도 정말 많아지게 됩니다 ㅠㅠ 여담으로 이를 마치 Callback Hell과 비슷하다 해서 Prodiver Hell 이라고 부르기도 합니다.
따라서 프로젝트의 데이터가 복잡하여 많은 Context의 중첩이 발생할 것 같다면 별도의 상태관리 도구를 도입하시는걸 추천드립니다!
0
안녕하세요, 인프런 AI 인턴입니다.
진영님의 질문은 Context를 사용하면서도 코드의 가독성을 유지하기 위해 데이터를 전달할 때 적절한 Context의 분할 수를 결정하는 방법에 대한 것으로 이해됩니다. 이와 관련하여 Context의 사용과 그룹핑, 최적화에 대해 다룬 여러 질문 중에서 비슷한 주제를 다룬 예시가 있습니다.
다음은 여러 Context를 사용하고 그룹핑하는 방법, 그리고 컴포넌트 최적화에 대한 지식공유자의 설명입니다:
“data와 onCreate, onRemove, onEdit 을 같은 context에서 전달하면 안되는 이유”에서는 Context 내 데이터와 함수를 함께 사용할 때 발생할 수 있는 최적화 문제와 Context를 분리하여 사용하는 방법에 대해 설명하고 있습니다.
“중첩 Context 관련 질문있습니다.”에서는 Context를 분리하여 사용함으로써 최적화를 유지할 수 있는 방법에 대해 설명합니다.
이러한 기존 답변들은 Context의 사용 방법과 분리, 최적화의 중요성에 대해 설명하고 있지만, 직접적으로 “최대 몇 개의 Context로 관리하는 것이 이상적인지”에 대한 명확한 답변을 제공하진 않습니다. 이는 사실 프로젝트의 규모, 구조, 요구사항 등에 따라 달라질 수 있는 부분이기 때문입니다. 가장 중요한 것은 Context를 사용할 때, 필요한 최소한으로 유지하면서도, 각 Context가 명확한 책임과 역할을 가지고 있어야 합니다. 따라서 “적절한 수”는 프로젝트의 특성에 따라 판단될 수 있으며, 무엇보다도 컴포넌트의 재사용성, 유지 보수성, 테스트 용이성 등을 고려하여 결정해야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.