이전에 onSuccess에서 window.location.reload 하던걸 invalidateQueries로 변경하셨는데 그 이후에 성공할때마다 캐시값을 갱신시키면 부하가있을수있으니 낙관적업데이트로 변경한다고 들었는데요 4.10강좌 캐시데이터 다루기4에서 마지막에 onSettled 함수를통해 데이터 수정이 성공하나 실패하나 무조건 실행되는데 이러면 똑같이 데이터가 크면 부하가있는게 맞을까요? 실무에서도 저러한 방향으로 하는지 궁금합니다.
안녕하세요. 강의 정말 잘 듣고 있습니다! 강의에서는 generateStaticParams 함수에서 return [{id: 1}, {id: 2}, {id: 3}] 으로 예시를 작성해주신 부분 관련해서 실서비스를 운영할 때는 id가 꼭 1, 2, 3으로 정해진다는 보장이 없기 때문에 아래와 같이 백엔드에서 불러온 id값을 return하게끔 응용해보았습니다. export async function generateStaticParams() { const response = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/book`, { cache: "force-cache", }); const books: BookData[] = await response.json(); return books.map((book) => ({ id: book.id.toString() })); } 해당 코드가 올바르게 작성된 걸까요? 이러한 방법이 자주 사용되는 방법인가요? 예를 들면 만들어주신 api에는 페이징 기능이 없지만 실서비스 api에서 페이징 기능을 이용해 1페이지의 10개의 아이템들은 static하게 처리하고 이후 2페이지부터 동적으로 불러오게끔 하는 로직으로 구현한다고 하면 이러한 방식이 자주 사용되는지 궁금합니다.
ReturnType의 실제 구현 내용을 보니 강의에서 썼던 never 대신 any 를 사용하고 있더라구요 type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any; T에 제약 조건을 걸었기 때문에 조건부 타입이 false가 되는 경우가 없을 것 같은데 맞을까요? 그렇다면 never가 더 적합할 것 같은데 실제로는 any를 쓰는 이유가 따로 있는지 궁금합니다.
챕터: 프로미스와 제네릭 시간: 7분 55초 - 8분 5초 질문: reject로 전달되는 값의 타입은 선택적 매개변수이면서 any 타입인데, catch메서드의 콜백함수에서 어떻게 if문과 typeof를 통해 타입을 좁힐 수 있는건가요? 타입 가드를 통한 타입 좁히기는 unknown 타입을 대상으로 사용했던걸로 기억해서 혼동이 됩니다.
안녕하세요. 한입 리액트 강의 58강 수강 중 문의드립니다. 앞선 변경사항은 강의와 모두 동일하게 수행해 해결됐는데, index.tsx파일의 import './index.css';코드에서 "'./index.css' 부수 효과 가져오기에 대한 모듈 또는 형식 선언을 찾을 수 없습니다."라는 에러 메세지가 뜹니다.. AI에 물어보니 src안에 custom.d.ts파일을 생성해 코드 설정을 하라고 하는데 선생님 강의에서는 해당 파일이 없더라고요..? 왜 강의에서는 잘 진행됐는데 이런 에러가 뜨는지 궁급합니다..!
바이브 플러그님. 복습하다가 이런저런 질문이 생겨서요. 지금 예제 강의는 디지털상품이라 배송이 필요가 없는데, 만일 실제 물건을 보내야 하는 상황이면 구매자가 받을 주소를 입력할 창이 필요할 텐데, 좋은 방법이 있을까요? 실무에서는 보통 어떤 방법을 쓰시나요? 제 생각에는 택배보낼 곳 DB에는 기존에 이름과, 결재승인여부는 이미 확인했고(다른 테이블에서) 전화번호, 우편번호, 받을 주소 3개의 컬럼을 추가하면 될 것 같은데. 택배 배송을 위한 테이블만들 때 특별한 팁이 있나요? 왜 궂이 물어보냐하면, 우편번호는 우체국에 DB가 있을 것같고, 주소에 몇글자만 타이핑하면 우편번호와 기본주소를 가져오고, 세부주소를 타이핑하는거라서 좀 더 쉽게 하는 방법이 없나 해서요.
안녕하세요 좋은 강의를 해주셔서 감사합니다. 덕분에 새롭게 알아가는 것들을 배우는 재미를 오랜만에 느끼며 공부 중입니다. 그런데 강의 자료 중, stackblitz링크를 제외한 나머지 자료들은 접속이 되지 않고있습니다. 저는 안드로이드 모바일에서 접속 중입니다. 확인 부탁드립니다.
next-themes 문서를 읽어보고 다른 분들 사용방법을 읽어봤는데, 따로 NextThemeProvier를 생성하지 않고 next-themes의 ThemeProvider를 layout.tsx에 바로 적용하는데 강의에서는 따로 provider를 생성해서 적용하고 있습니다. 혹시 유지보수를 좀 더 원활하게 하기 위함일까요?