안녕하세요.
처음 만난 리액트부터 리덕스까지 결제하여 강의를 들었습니다.
이제 본격적으로 간단한 프로젝트를
직접 만들어 보려고 하는데
각종 궁금한 점을 블로그에 검색하다가 알게된건데
리덕스의 단점을 보완하기 위해서
SWR, React-Query를 사용한다는 말을 보았어요.
그런데 저는 처음 만난 리덕스 강의를 들으면서
이제는 ducks에서 thunks, sagas까지 오면서
그 단점이 많이 보완이 된 것 같다는 생각이 들었는데
그래도 아직은 제 지식은 부족하고......
선생님께서 Redux가 다른 상태관리 라이브러리의 시초기 때문에 알아두면 좋다는 말씀에는 공감하는 바라
Redux로 시작할까 싶으면서도
어떻게 방향을 잡으면 좋을지 모르겠어서요.
저는 백엔드 개발로는 현재 5년차인데
프론트엔드를 이번에 하게되어 리액트 자체는 처음입니다.
선생님은
Redux, SWR, React-query에서
지금 리액트를 시작한다면 어떠한 상태관리를 선택하시는 걸 추천하시나요?
각 장단점을 간단하게라도 말씀해 주실 수 있나요...
안녕하세요, 소플입니다.
빠른 시간 내에 완강하셨군요ㅎㅎ 축하드립니다~!
말씀하신 것처럼 최근에는 프론트엔드 개발에 SWR, react-query 등을 많이 사용하긴 합니다.
다만 말씀해 주신 두 가지 라이브러리는 Redux 같은 상태 관리 라이브러리와는 약간 다른 카테고리에 속하는 라이브러리 입니다.
일반적으로 우리가 말하는 상태 관리 라이브러리는 Redux, MobX, Recoil, Zustand, Jotai 등 이고,
SWR이나 react-query는 Data Fetching & Caching 라이브러리 라고 합니다.
그래서 SWR, react-query의 목적은 서버로부터 데이터를 받아오고, 받아온 데이터들을 캐싱하고 관리하는 것이 주요 목적이라고 할 수 있습니다.
우리가 자체적으로 정의한 애플리케이션의 상태(
state
)들을 관리하기 위한 목적으로 사용하는 것은 아닙니다.그래서 애초에 목적이 다르기 때문에 하나의 애플리케이션 내에서 Redux와 SWR을 함께 사용하기도 합니다.
여기서 Redux와 redux-thunk, redux-saga등을 사용해서 SWR이 해주는 역할을 직접 다 구현할 수도 있습니다만, 꽤 번거로운 작업이 될 겁니다.
그래서 애플리케이션 아키텍처를 어떻게 가져가야 할지에 대한 정답은 없지만,
지금 제 강의를 완강하신 시점에서는 먼저 React와 Redux만을 사용해서 애플리케이션 개발을 해보시는 것이 좋고,
그 이후에 필요하다면 SWR이나 react-query를 도입해보는 것이 좋습니다.
만약 개인 프로젝트로 하실 것이라면 아키텍처를 자유롭게 해도 되겠지만,
만약 회사 프로젝트로 하시는 것이라면 프로젝트 요구사항에 맞춰서 아키텍처를 잡아야 하는데,
이 부분은 프로젝트에 대한 추가 정보를 제공해주시면 제가 더 도움을 드릴 수 있을 것 같습니다.
혹시 회사 프로젝트 관련해서 공개적으로 질문하시기 어려운 부분이 있다면,
inje@soaple.io로 메일주시면 늦더라도 꼭 답장을 드리도록 하겠습니다!
감사합니다.
답글
미숫가루
2023.07.12감사합니다 소플님. 메일 드렸습니다. 확인 부탁드릴게요.
Inje Lee (소플)
2023.07.12안녕하세요, 소플입니다.
메일을 포워딩 되도록 해놨는데 스팸 메일로 분류되어 포워딩이 안되고 있었네요ㅠ
메일 찾았으니 확인하고 답변드리겠습니다!
감사합니다.
미숫가루
2023.07.13안녕하세요 소플님. 메일 확인하였습니다. 감사합니다!
말씀해주신 프론트오버플로우 사이트도 참고하겠습니다.
다행히(?) 약간의 스터디 할 시간이 있어서
SWR 도구도 학습을 해봐야겠어요~!
소플님 딕션과 편집, 설명 방법이 저에게 굉장히 많은 도움이 되었어요.
앞으로도 많은 강좌 내주세요^^
Inje Lee (소플)
2023.07.13그래도 학습할 시간적 여유가 있다고 하시니 다행이네요ㅎㅎ
SWR도 사용하시다가 궁금한 점이 있으면 사이트에 언제든지 질문 남겨주시기 바랍니다.
제 강의가 도움이 되셨다니 저도 뿌듯하네요~
앞으로도 화이팅하시길 바랍니다!😀