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.
#️⃣ 연관 이슈
📝 작업 내용
MSW 사용 방법
각 기능 폴더에 mock.js 파일을 만들어주세요. mock.js 파일 mock api가 정의된 handler 배열을 만들고, 그 배열을 export해 주세요.
msw 사용법은 공식 문서를 참조하세요.
만드신 mock 배열을 임포트한 뒤, setupWorker에 spread 연산자로 mock 배열을 추가해주시면 됩니다.
정의한 mock api는 dev 서버에서 그냥 fetch 요청으로 받아올 수 있습니다. 따로 빌드할 때 뭘 수정하고 그런건 없어요.
fetch 헬퍼 함수 사용 방법
fetchServer
기본적으로 fetch와 비슷하게 사용할 수 있습니다. 단, method는 소문자도 허용됩니다.
아무런 설정 없이 body에 객체를 넣으면 자동으로 json 형태로 보내줍니다.
fetchServer는 http 응답 코드 4xx, 5xx를 받으면 에러를 뱉습니다. .catch로 에러를 핸들링할 수 있으며, 해당 에러 객체가 HTTPError인지를 체크해서 에러를 핸들링할 수 있습니다.
fetchResource
fetchResource는 서버로부터 데이터를 읽어오는 작업을 더 선언적으로 하도록 합니다.
부모 컴포넌트에서 fetchResource((주소))를 선언해서 이 리소스를 웹에서 읽어오겠다고 선언합니다. useMemo로 감싸면 더 좋습니다.
fetchResource의 값은 함수입니다. 이 함수는 실제 데이터를 렌더링하는 컴포넌트의 props로 넘겨준 뒤, 해당 컴포넌트를 Suspense와 ErrorBoundary로 감싸면 됩니다. Suspense와 ErrorBoundary의 fallback props에는 각각 리소스가 로딩 중일 때, 리소스 불러오는 에러가 생겼을 때 렌더링할 리액트 엘리먼트를 넣으면 됩니다.
실제 데이터를 렌더링하는 컴포넌트는 부모에게서 받아온 resource 함수를 호출해서 실제 데이터를 받아온 뒤, 렌더링을 수행하면 됩니다.
💬 리뷰 요구사항