[11팀 이민기] Chapter 2-3. 관심사 분리와 폴더구조#53
Open
lapidix wants to merge 21 commits intohanghae-plus:mainfrom
Open
Conversation
stoic-park
reviewed
May 10, 2025
There was a problem hiding this comment.
modal 관련 단순 상태를 공통으로 관리하는 부분이 코드가 깔끔해지고 좋은 것 같습니다!!
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를 이용하여 비동기코드를 선언적인 함수형 프로그래밍으로 작성하기
체크포인트
배포 링크
https://mingi3442.github.io/front_5th_chapter2-3/
과제 셀프회고
과제에서 좋았던 부분
실무에서 충분히 사용하는 tanstack-query와 zustand를 이용해서 리팩토링을 진행하여 해당 라이브러리에 대한 이해도와 함께 리팩토링에 대한 연습을 진행해서 좋았습니다.
과제를 하면서 새롭게 알게된 점
이번에 tanstack-query를 이용해야 한다는 생각에 매몰되어서 낙관적 업데이트를 하고 쿼리를 재요청하지 않는 방법으로 해야하나? 라는 생각에 빠져버렸습니다.
그래서 그 방법에 대해 찾아보다가
queryClient.setQueryData에 대해 알게 되었고, 낙관적 업데이트 말고 정말 요청이 된 이후인onSuccess에서 사용하면 되지 않을까? 라는 생각으로 리팩토링을 진행했습니다.그러나 마지막에 zustand를 이용해서 posts와 comments를 관리했어야 했구나라는 생각을 했습니다..
덕분에
queryClient.setQueryData에 대해 알게 되었지만, 전역 상태관리를 통해 해결할 수 있던 일을 비효율적으로 해결한 것 같아서 아쉽습니다.과제를 진행하면서 아직 애매하게 잘 모르겠다 하는 점, 혹은 뭔가 잘 안되서 아쉬운 것들
검색 기능을 위해
createQueryParamsStore을 만들었습니다. 훅을 리턴하는 팩토리 패턴을 사용하였는데 store와 같이 쓰기 위해 사용을 했지만 이게 올바르게 구현한 것인지에 대한 의문점이 아직도 남습니다. 또한 검색 기능 자체가 제가 원하는 대로 작동하지 않아서 너무 아쉬웠습니다. 이 부분은 항해가 끝난 이후에 다시 해볼 계획입니다..리뷰 받고 싶은 내용이나 궁금한 것에 대한 질문
공식문서에서
app/에서providers를 관리하는 것으로 확인했었습니다. 프로바이더로 루트 레이아웃을 감싸는 경우가 많은데, 그러나 프로바이더가 클라이언트 컴포넌트일 경우 하위 컴포넌트들도 서버 컴포넌트 더라도 클라이언트 사이드 렌더링을 하는 것으로 알고 있습니다. 이럴 경우 서버 컴포넌트로 만드는 것들이 무의미해지는 것 같은데 이런 경우 어떻게 개선 가능할지 혹은 코치님은 어떻게 하실지 궁금합니다. 아래는 FSD 공식 사이트 example에 있는 한 프로젝트의 provider 코드 중 하나입니다!https://github.com/penteleichuk/Moke-Smoke/blob/main/src/app/providers/ThemeProvider/ui/ThemeProvider.tsx
features -> features

제가 이전 과제에서 받은 피드백대로 features에서 features를 사용하는 것은 FSD 원칙을 위배하기 때문에 개선을 하려고 해도 도저히 상상이 안갑니다.. 멘토링 마지막에 질문 드렸을 때는
page레이어를 활용해보라고 하셨지만 도저히 방법이 떠오르지 않아서 질문드립니다. 문제 지점은 아래입니다..modal을 위한 상태
modal을 위한 상태를 zustand로 관리하고 있는데 이게 좋은 판단인지 잘 모르겠습니다. 더 나은 방법이 있지 않았을까 라는 생각이 드는데 혹시 코치님이라면 어떻게 구성했을지 궁금합니다!