Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
과제 체크포인트
배포 링크
기본과제
목표 : 전역상태관리를 이용한 적절한 분리와 계층에 대한 이해를 통한 FSD 폴더 구조 적용하기
체크포인트
심화과제
목표: 서버상태관리 도구인 TanstackQuery를 이용하여 비동기코드를 선언적인 함수형 프로그래밍으로 작성하기
체크포인트
과제 셀프회고
빠르게 과제를 완료할 수 있을거라 생각했는데, 생각보다 시간이 너무 많이 소요되었습니다. 과제전형 응시 + 회사 업무 바빠짐 이슈로 수요일에 과제를 시작했는데,, ㅜㅜ 일찍 시작했으면 좀 더 완성도를 높일 수 있지 않았을까 하는 아쉬움이 남습니다.
그래도 이제 FSD가 뭔지 어느정도는 알게 된 것 같아 좋습니다. (근데 이게 저에게 딱 맞는 구조는 아닌 것 같아서 앞으로 자주 사용할지는 모르겠습니다.)
과제 설명을 보고, 기본 심화를 구분하지 말고 처음부터 RQ + zustand를 적용해서 분리해보자! 는 마인드로 시작했습니다.
과정이 쉽지는 않았지만, 나눠서 진행했으면 더 오래걸렸을 것 같네요. 그래도 잘 마무리해서 좋습니다.
과제에서 좋았던 부분
과제를 하면서 새롭게 알게된 점
과제를 진행하면서 아직 애매하게 잘 모르겠다 하는 점, 혹은 뭔가 잘 안되서 아쉬운 것들
리뷰 받고 싶은 내용이나 궁금한 것에 대한 질문
고민을 오래 했는데, 명쾌하게 정리하지 못한 부분 질문드립니다.
2.. post를 조회하는 로직이 비슷한 종류로 3가지 있었습니다. 일반 게시물 조회 / 태그별 게시물 조회 / 게시물 검색. 이들은 각각 응답 구조가 같고, 모두 user 데이터랑 결합해서 사용했습니다. 그래서 저는 다음과 같이 세 타입의 쿼리를 묶은 새로운 쿼리를 만들었습니다.
user랑 결합하는 로직에서는 post 데이터가 어떤 종류의 post인지 신경쓰지 않으므로, 이렇게 묶어서 은닉화하고자 하는 의도도 있었습니다.
제가 궁금한건, 1. 이렇게 훅을 결합해서 사용하기도 하는가. 2. 결합된 이 훅은 어느 레이어에 배치해야 하는가 입니다.
일단 사용해도 괜찮다는 가정하에, entity layer는 아닌 것 같고, feature에 배치해야 하나? 그렇다면 이 훅은 widget 이상에서만 사용할 수 있나..? 이런 생각이 들어서요. (1번 질문과 어느정도 이어집니다.. ㅎㅎ) 이 훅에 대한 코치님의 의견이 궁금합니다. (나라면 이렇게 훅을 구성했을 것 같다. 어느 레이어에 배치했을 것 같다. 혹은 이렇게 만들지 않았을 것 같다)
post 데이터와 user 데이터를 결합하는 로직은 헬퍼 함수로 만드는 것으로 충분할까요? 아니면 묶는 로직까지 포함해서 상위 훅으로 만드는게 좋을까요..?
queryClient 캐시 무효화/자체 수정 관련 질문입니다. 댓글 삭제/게시물 수정 등 mutation 로직을 수행할 때, 결과 업데이트 하는 방식에는 두 가지가 있다고 생각합니다. 1. 관련 쿼리를 invalidate해서, 그 데이터를 사용하는 컴포넌트에서 refetch 수행 / 2. queryClient cache에 저장된 값을 모두 순회하며, 직접 업데이트
1번 방식은, 코드 작성하는 입장에서 (세부 업데이트 로직을 생각하지 않아도 된다는 점에서)편하다는 장점이 있지만, 추가적으로 API 호출이 발생합니다. 2번 방식은, API 호출은 막지만, 세부 업데이트 로직을 생각해야 해서 번거로운 면이 있습니다. 서비스가 커지면 업데이트 로직이 거대해지기도 합니다.
코치님은 어떤 방식을 더 선호하시나요? 혹은 어떤 방식이 더 옳다고 생각하시나요?
감사합니다. 연휴 잘 보내세요 :)