작성
·
199
0
로그인 및 인증,인가(세션,jwt둘다 사용), 게시판(이미지포함), 댓글, 소켓채팅 정도의 기능을 구현하여 테스트 코드와 docker로 띄워서 CI/CD까지 구현하려고 합니다.
상태랑 로직 관리를 useReducer, React Context API, React Query, redux, graphql
정도로 생각하고 있는데 어떤걸로 하는게 좋을까요?!
답변 1
0
안녕하세요 이정환입니다.
꽤나 복잡도가 있어보이는 프로젝트를 하실 예정이시군요
질문이 마치 비장한 출사표처럼 느껴집니다. 성공적으로 마무리하시길 응원하겠습니다 🤗
우선 복잡한 프로젝트에서의 글로벌한 상태 관리는 useReducer나 Context는 지양하시는 편을 추천드립니다. 애초에 Context는 글로벌하고 복잡한 상태 관리를 하기 위한 목적이라기 보단 사실 Props Drilling을 해결하는데에 그 본 목적이 있기 때문입니다.
따라서 글로벌 상태 관리로는 Redux, Recoil, Zustand 등의 대중적인 라이브러리를 추천드리는 바 인데요 모두 훌륭하므로 아무거나 골라 쓰셔도 상관 없지만 되도록 각 라이브러리 별 특징이나 장단점을 한번씩은 꼭 조사해보시고 선택하시는 것을 추천드립니다. 같은 기능을 한다고 해도 좀 더 특화된 부분이 존재하거든요
여기에 추가로 서버 상태관리를 위해 React-Query를 사용하시는건 매우 추천드리고 싶습니다. 또는 요새는 React-Query로 클라이언트 상태도 함께 관리하는 패턴도 자주 소개되던데 참고해보셔도 좋을 것 같아요
아 그리구 글로벌 상태관리 도구를 사용한다고 해도 useReducer나 Context를 아예 사용하면 안되는것은 아닙니다. useReducer는 로컬 상태를 깔끔하게 관리하는 이점이 있어 글로벌 상태가 아닌 로컬 상태를 관리할 때 이점이 있고 Context의 경우 특정 트리 내부에서만 접근하기만 하면 되는 데이터를 관리할때에도 꽤나 이점이 있을 수 있습니다.
추가로 GraphQL의 사용 여부는 서버 개발자 분과 직접 논의하셔서 두분이 더 선호하시는 방향으로 진행하시는게 좋을 것 같습니다.