Skip to content

Commit

Permalink
📝 Context API는 "상태 관리" 도구인가?
Browse files Browse the repository at this point in the history
  • Loading branch information
emayom committed Mar 18, 2024
1 parent 83f8ff7 commit fcdbddd
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion react/context-api-isnt-a-state-management-tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,17 @@ Context API는 Redux가 아닙니다. <u>Context API는 Provider의 value가 바

3. **컴포넌트의 재사용이 어려워집니다.**

단순 전역 상태 관리 이상 고수준의 상태 관리가 목적이라면 여타 라이브러리를 사용하는 것이 더 적합할 수 있습니다.
<br/>

## 마치며
이번 글은 'Context API를 상태 관리의 용도로 사용해서는 안 된다.'가 아니라 '어떤 용도로 생겨났는지, 그리고 상태 관리의 용도로 사용했을 때에 고려해야 하는 점들은 무엇인지'에 대해서 정확하게 언급하는 글이 되었으면 하는 목적으로 작성했습니다.

Context API를 useState, useReducer와 함께 사용하여 전역 상태를 관리하고, 관심사를 분리하기 위한 목적으로 사용할 수 있습니다. 하지만, 단순 전역 상태 관리 이상 고수준의 상태 관리가 목적이라면 Context API로 한계가 있을 수 있기 때문에 여타 라이브러리를 사용하는 것이 더 적합할 수 있습니다.

마지막으로, 상태 관리에 대한 다양한 글들을 서치하며 [우리 팀이 Zustand를 쓰는 이유](https://velog.io/@greencloud/%EC%9A%B0%EB%A6%AC-%ED%8C%80%EC%9D%B4-Zustand%EB%A5%BC-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0)라는 글을 읽게 되었습니다.
상태 관리 도구를 선택하게 된 고민과 의사결정 과정이 잘 드러나 참고하기 좋은 글이라는 생각이 들었습니다.

위의 글과 같이 상태 관리 라이브러리를 선택하기 이전에 '전역으로 관리할 상태가 얼마나 되는가?', '얼마나 많은 곳에서 참조하게 되는가?', '관리하고자 하는 상태의 유형은 무엇인가?'와 같은 고민들을 선제하여 **필요성을 정확하게 인지한 이후**, 애플리케이션 요구 사항에 적합한 상태 관리 라이브러리를 선택하기 위해 '접근 방식에 따른 상태 관리 유형', '유형별 장단점', '라이브러리의 업데이트 추이' 등을 파악하고 비교하는 과정이 수반되어야 한다는 점을 다시 확인할 수 있었습니다.

<br/>

Expand Down

0 comments on commit fcdbddd

Please sign in to comment.