항해 X 동북 ICT 82일차.

박지민·2022년 9월 10일
0

항해99

목록 보기
82/95
post-thumbnail

  추석연휴가 시작됐다. 물론 추석이라해서 쉬지는 않았고 조금 쉬엄쉬엄하며 하기로 했다. 오전중에 멘토님께 멘토링을 받고 프론트 팀원분과 폴더 구조를 나눈 후 리팩토링에 대해 간단하게 얘기하고 본격적으로 리팩토링에 들어갔다. 일단은 내 코드에 JSX내에서 동작하는 함수들이 많아서 그 함수들을 모두 밖으로 빼내서 나중에 커스텀 훅으로 변경시키기 용이하도록 변경했다. 지금 생각해보면 진작에 이렇게 했으면 편했을텐데 뭐가 그리 급했는지 복사 붙여넣기를해서 보일러 플레이트를 늘렸나 모르겠다. 그리고 커스텀 훅을 만드려는 찰라 문제가 발생했다.

  원래는 잘 됐다고 생각했는데 리액트 쿼리에 인피니트 쿼리를 사용하는 부분에서 문제가 발생했는데 게시글을 작성하고 수정, 삭제했을 때 invaildQueries로 수동 리페치를 시켜줘도 반영이 안되서 삭제를 해도 목록에 그대로 남아있는 현상이 발생했다. 기존에 2번정도 발생했던 문젠데 그때마다 고쳤다고 생각하고 넘어갔는데 왜 또 발생했는지 모르겠었지만 당장에 서비스를 하고 있는 입장이라 빠르게 hoxfix에 들어갔다.

  리액트 쿼리에 docs를 보니 원래 내가하는 방식대로 리패치를 시키는게 아닌 것 같아서 docs에 나온대로 수동 리패치 방식을 변경해 봤으나 소용이 없었고 여러 레퍼런스를 기웃거려 봤으나 뾰족한 수는 나오지 않았다. 그래서 최후의 방법으로 쿼리의 캐시타임을 0으로 만들고 일단은 서비스에 지장이 없게 하려고 했으나 그것도 소용이 없었다. 참으로 난감한 순간이였는데 급한 불은 의외의 오타에서 껴졌다. 원래는 refetchQueries를 사용하려고 했는데 ide에 자동완성기능으로 removeQueries로 잘못쳐서 그걸 모른체 확인해 봤는데 내가 생각했던데로 기능이 정상 동작했다. 이게 쿼리의 캐시데이터를 다 밀어버리고 새로 받아와서 되는 것 같았는데 이러면 쿼리를 쓰는 의미가 없다고 생각됬지만 일단은 서비스를 동작시키는게 우선이라는 생각이 들어 나중에 수정하는 것으로 하고 넘어가기로 했다. 리액트 쿼리는 쓰면 쓸수록 생각해야 될 요소가 너무 많아지는 것 같아 어려운 것 같다.

profile
프론트엔드 개발자

0개의 댓글