to-do 웹과 DB 연동에 대한 고민 [해결]

doobab·2023년 1월 5일
0

고민고민하다가 결국 커리어리에 질문을 올렸다.

Q.
리액트에서 데이터베이스의 데이터가 변경될 때마다 재렌더링할 수 있는 방법이 있을까요?
제가 생각한 방법은
1. 처음에만 데이터를 state에 저장하고, 이후에는 데이터와 state를 별개로 취급하는 방법
2. 데이터가 수정될 때마다 get으로 데이터를 다시 불러와 state를 변경하는 방법
3. 데이터를 처음에 불러오고, 이후 한꺼번에 다시 저장하는 방법
세가지 입니다.

그리고 2가지 방법을 답변으로 받았고, 그 답변은 아래와 같다.

데이터베이스 조회 요청을 자주 보내기

  • 데이터에 직접적인 작업이 수행되면 해당 데이터를 사용하던 곳에서 다시 데이터베이스로 데이터를 요청하게끔 작업
  • 내가 생각한 방법의 2번과 유사함
  • 라이브러리: react-query (tanstack-query)

첫 조회 요청 때 전달 받은 데이터를 객체에 저장하고 객체를 계속 갱신해서 사용하기

  • 데이터를 불러온 후 객체에 저장한 뒤 페이지는 해당 객체를 바라보며 생성, 수정, 삭제 시에도 해당 객체를 수정해주는 방식
  • 내가 생각한 방법의 1번과 유사함
  • 라이브러리: redux, recoil, zustand

답변에 의하면 예전에는 아래의 방식이 대중적이었지만 비교적 최근에는 위의 방식을 시도했고 괜찮은 접근 방법인 것 같아 요즘은 위의 방식도 많이 사용한다고 한다.
그리고 현재는 둘 중 하나를 고르기보다는 경우에 따라 같이 또는 혼합해서 사용하는 느낌이라고 한다.


좋은 답변을 받은 만큼, 더 열심히 프로젝트를 다시 굴려봐야겠다.
나는 일단 redux를 배워보고 싶기 때문에 아래의 방법을 사용해보려고 한다.

profile
꾸준함을 연습하는 중🙂

0개의 댓글