-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[9팀 김동한] [Chapter 2-2] 디자인 패턴과 함수형 프로그래밍 #46
Open
LESANF
wants to merge
28
commits into
hanghae-plus:main
Choose a base branch
from
LESANF:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains 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.
과제 체크포인트
기본과제
React의 hook 이해하기
함수형 프로그래밍에 대한 이해
Component에서 비즈니스 로직을 분리하기
비즈니스 로직에서 특정 엔티티만 다루는 계산을 분리하기
[�x] Component에서 사용되는 Data가 아닌 로직들은 hook으로 옮겨졌나요?
주어진 hook의 책임에 맞도록 코드가 분리가 되었나요?
계산함수는 순수함수로 작성이 되었나요?
심화과제
뷰데이터와 엔티티데이터의 분리에 대한 이해
엔티티 -> 리파지토리 -> 유즈케이스 -> UI 계층에 대한 이해
Component에서 사용되는 Data가 아닌 로직들은 hook으로 옮겨졌나요?
주어진 hook의 책임에 맞도록 코드가 분리가 되었나요?
계산함수는 순수함수로 작성이 되었나요?
특정 Entitiy만 다루는 함수는 분리되어 있나요?
특정 Entitiy만 다루는 Component와 UI를 다루는 Component는 분리되어 있나요?
데이터 흐름에 맞는 계층구조를 이루고 의존성이 맞게 작성이 되었나요?
과제 셀프회고
이번과제는 관심사 분리, 확장성, 가독성에 좀더 집중해 볼 수 있는 과제였습니다.
기본과제까지는 쉽게 풀어나갔는데 msw로 api를 설정하는 부분에서 시간을 좀 잡아먹었어요
뭔가 머리로는 설계가 된 듯 싶었지만 막상 코드에 녹여내려고하니 막힌 부분이 많았어요
어떤 구조로 폴더를 구성할까 이런부분에서 많은 생각을 가지게 해줬던 과제같습니다 😊
과제에서 좋았던 부분
일단 msw를 사용한 API구현을 실제로 해본것은 처음이었어요
API를 모킹하여 react-query를 사용해서 문제를 풀어나갈 수 있다고 생각했는데 새로고침에대한 문제가 여전히 존재했습니다
만들어 놓은 핸들러에
localStorage
를 추가하여 이를 해결했습니다.API니까 당연히 프로젝트에서 내부적으로 프로젝트가 켜져있는동안 갱신에대한 값이 유지될 줄 알았는데 그게 아니었어요
그래서 msw에 대해 이번기회에 많이 배웠다고 생각합니다,
그리고 프로젝트가 어떤 성격에따라 어떤 구조로 구성되어야하는지 많이 생각했어요
과제를 하면서 새롭게 알게된 점
무조건 기능 별로 폴더를 구성하고 요소들을 분리해야지
라는 관점에서 벗어났어요저는 아래와같이 크게 분류를 해봤고 이러한 부분에서 구조를 잡는것에 정답이 없다는 것을 알았어요
어떤 프로젝트에 어떤 구조가 어울리며 엔티티를 구분하여 함수들을 보기쉽게 나누는 점을 새롭게 알게되었습니다
크게 세가지 관점에서 정리하였고 이번 과제는 레이어 느낌이 났지만 뭔가 기능에 대한 느낌이 커서 도메인 중심 구조로 진행했습니다
구현을 하는 것도 어렵지만 시작전 구조를 잡는것도 그에 못지않게 많은 시간을 투자해야된다는 것을 배웠습니다
과제를 진행하면서 아직 애매하게 잘 모르겠다 하는 점, 혹은 뭔가 잘 안되서 아쉬운 것들
Q1)
react-query
를 이용하여 데이터를 받아서 화면을 구성할 때useState
를 쓰는 경우가 어떤경우가 있을까요 ?Q2) 1번 질문에 이어서 만약 전역상태처리와 관련 될 경우 어떤식으로
hooks
를 관리해야하는지 궁금합니다.리뷰 받고 싶은 내용이나 궁금한 것에 대한 질문
useState
로 관리하는 경우가 어떤 경우일까요 ?레퍼런스를 찾지못하였는데 아래의 코드에서
data
를 바로쓰는게 아니라 페칭성공시useState
로 관리하는 경우가 있던데어떤경우에 이런식으로 처리하는지 궁금해요