안녕하세요 강의 잘 보고 있습니다. 한가지 질문이 있는데요! 라우팅 테스트 중에 (beforeLogin) 하위로 추가 생성되는 라우트는 Link로 접속하면 잘 되는데, 직접 URL로 치고 가면 not-found 페이지가 뜨는데 어떤 이유일까요 ? 질문1) 아래 이미지의 itest 폴더 인터셉팅 잘됨. 하지만 새로고침 하거나 직접 localhost:3000/itest 치고 들어가면 페이지 없음. (원래는 새로고침 시 page.tsx 내용이 보여야 하지 않나요?) 질문2) 테스트겸 localhost:3000/dkwlsWK 라우트를 생성해서 직접 URL치고 들어가니 역시 없는 페이지로 뜹니다. 혹시 (그룹핑) 하거나 페레럴을 사용한 것과 연관이 있을까요 ? 질문3) 아래 이미지 중 @modal/(.)itest 에 default.tsx 로 하면 에러가 나더라구요! (page.tsx로 하면 괜찮지만 페이지를 찾을 수 없음)
app 컴포넌트에서 const [todos, setTodos] = useState(mockDate); 를 생성하고 자식 컴포넌트인 editor컴포넌트에서 oncreate 함수를 만들어도 되나요? app 컴포넌트에 state를 생성했으니 리스트 컴포넌트에도 전달이 가능할 거 같아서요. 이렇게 안하는 이유는 App 에서 관리하는 것이 더 일관적이며 유지보수가 쉬운 구조라서 그런가요?
안녕하세요 :) 기존 리액트 프로젝트에서는 React Query를 사용해서 서버 상태를 관리를 많이 했었는데 제 개인적인 생각은 굳이 nextjs에서는 특별한 것을(무한스크롤링 등) 구현하지 않는 이상은 필요없지 않을까라는 생각입니다. 데이터 캐싱, revalidate, loading.tsx, error.tsx등을 이용해서 충분히 대체가 가능할거 같은데 혹시 어떻게 생각하시는지 궁금하고 만약 nextjs에서 react query를 사용하시면 주로 언제 사용하시는지 궁금합니다!
비디오 업로드 FORM 만들기 (1) 에서 npm run dev를 하고 페이지를 확인하면 이러한 에러가 발생합니다. 어떻게 해결하면 좋을까요? 이외 기타에러 1. [1] WARNING in ./node_modules/mutationobserver-shim/dist/mutationobserver.min.js [1] Module Warning (from ./node_modules/react-scripts/node_modules/source-map-loader/dist/cjs.js): [1] Failed to parse source map from 'C:\Users\iokl3\OneDrive\문서\0. git\John_Ahn\John_Ahn_Youtube_React\1. Dev\boilerplate-mern-stack-master\client\node_modules\mutationobserver-shim\dist\mutationobserver.map' file: Error: ENOENT: no such file or directory, open 'C:\Users\iokl3\OneDrive\문서\0. git\John_Ahn\John_Ahn_Youtube_React\1. Dev\boilerplate-mern-stack-master\client\node_modules\mutationobserver-shim\dist\mutationobserver.map' [1] @ ./node_modules/rc-menu/es/DOMWrap.js 166:2-34 이외 기타에러 2. [1] ERROR in ./node_modules/antd/es/version/index.js 2:15-22 [1] Should not import the named export 'version' (imported as 'version') from default-exporting module (only default export is available soon) [1] @ ./node_modules/antd/es/index.js 65:0-47 65:0-47 [1] @ ./src/components/views/Footer/Footer.js 5:0-28 18:57-61 [1] @ ./src/components/App.js 12:0-43 71:35-41 [1] @ ./src/index.js 86:0-35 99:35-38
안녕하십니까. 포트원에서 테스트 결제후 받은 imp_uid 값으로 강의 서버의 createPointTransactionOfLoading API에 impUid값을 세팅해서 보내려고 합니다 . 테스트 결제후에 받은 imp_uid 값은 결과값 오는거까지는 잘 되는데, 해당 API에 담아서 보내면 자꾸 404 에러가 뜹니다. 왜 이러는 걸까요 ?
안녕하세요. 강의를 복습하다가 캐싱 기능에 대해 질문이 생겼습니다. Next에서 fetch의 cache: 'force-cache'를 설정하면, 데이터가 공적 캐싱으로 처리된다고 알고 있습니다. 여기서 게시판을 예로 들어보면, 게시물을 새로 포스팅하면 전체 게시물 목록을 갱신해야 하기 때문에 서버에서는 cache: 'no-store'를 설정하여 항상 최신 데이터를 가져오고, 클라이언트에서는 qn을 이용해서 staleTime을 설정하여 데이터를 일정 시간 동안 캐싱하고 있습니다. "force-cache"와 "useQuery" 내 두 번의 캐싱이 발생하여 비 효율적일 수 있다고 생각되어 cache: 'no-store'를 사용하여 클라이언트에서만 캐싱하고 있었는데요. 생각해보니 fetch를 이용해서 공적으로 캐싱하는게 성능적으로 우월할거 같아서 "force-cache"로 변경하고 invalidateQueries를 이용하여 클라이언트에서 post되면 데이터를 갱신하도록 변경하고 테스트를 해보았는데 잘되는게 이해가 되질 않습니다. 서버는 초기 항상 캐싱된 데이터를 반환하기 때문에 데이터가 상이할줄 알았는데 터미널을 봐도 post하고 리스트를 갱신할때만 Api 호출하고 이후엔 캐싱된 데이터를 잘 사용합니다. 이 경우, 사용자가 데이터를 갱신하면 서버의 캐시가 자동으로 업데이트되고, 공적 캐싱을 사용하여 효율적으로 데이터를 관리할 수 있는 건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 미니 블로그 진행해보는데, MainPage는 출력이 되고 버튼도 작동됩니다. 다만 여기서 PostViewpage로 넘어가려니, 아래와 같은 오류가 발생합니다. 콘솔 로그를 확인해도 해결방안을 잘 모르겠어서 질문드립니다. 아래 오류 사진과 PostViewPage 코드입니다.
안녕하세요 강의보구 실습중인데 이거 완성하고 실행시켜보니까 이런 오류상태인데 TypeError: User.findByToken is not a function at auth 아무리 구글링해봐도 못찾겠어서 혹시 이거 해결하신 분 있을까용 ㅠㅠ user.js 해당 함수 내용입니다ㅠㅠ 모 빼먹은게있을까요 userSchema.statics.findByToKen = function (token, cb) { var user = this; //토큰을 디코드 한다 jwt.verify(token, "token", function (err, decodeTkn) { //클라이언트에서 가져온 토큰과 디비에 보관된 토큰이 일치하는지 확인 user.findOne({ _id: decodeTkn, token: token }, function (err, user) { if (err) return cb(err); cb(null, user); }); }); };
안녕하세요 정환님. 문득, 강의를 듣다가 "FCP 이후 페이지 이동은 CSR로 동작한다." 라는 내용으로 인해 아래와 같은 궁금증이 생겨서 질문 드립니다! 대표적으로 리액트의 CSR은 빈껍데기인 index.html 파일을 넘겨주기 때문에 SEO 최적화에 안 좋은데, FCP 이후 페이지 이동은 CSR로 동작한다면 SEO 최적화에 안 좋지 않을까요? FCP 이후 페이지 이동 요청이 발생하면 JS 실행(컴포넌트 교체), 페이지 교체가 이루어 지는데 실제로 페이지 교체를 위해 html 파일은 받아오지 않는거죠? 예를 들어서, search 페이지에서 book 페이지로 이동하는 걸 네트워크 탭으로 관측했을 때 search 페이지의 html 파일을 받아온 뒤, book 페이지로 이동한다면 book 페이지의 html 파일은 받아오지 않고 js 파일만 받아오는 것처럼요! 궁금한 점은 두 가지입니다! 좋은 강의를 제작해 주셔서 감사드립니다!
안녕하세요 :) 설명을 해주실때 페이지에서 공통된 layout에 있는 RSC 페이로드만 클라이언트 라우터 캐시에 저장이 된다고 이해를 했는데 만약 layout.tsx 클라이언트 컴포넌트가 있는 경우라면 해당 클라이언트 컴포넌트의 React 코드(JS Bundle)를 서버로 다시 요청을 하는 건가요? 강의에서 설명을 하신대로 만약 루트레이아웃, 서비바 레이아웃 이렇게 있을때 만약 서치바 레이아웃에 클라이언트 컴포넌트가 포함이 되어 있다면 해당 서치바 레이아웃 코드가 클라이언트 라우터 캐시에 저장이 되는지, 아니면 클라이언트 컴포넌트가 섞여있을때는 해당 레이아웃은 클라이언트 라우트 캐시에 저장이 안되는지 궁금합니다
5.1 풀라우트 캐시 강의를 듣다가 궁금한 점이 있습니다. Dynamic 페이지는 fetch 메서드에 캐시옵션이 없을때 적용이된다고 말씀하셨는데 후반부에 revalidate 옵션이 붙었을때는 스태틱 페이지라도 일정 시간 간격으로 풀 라우트 캐시를 업데이트 해준다. 라고 설명해주셨는데요, 그렇다면 fetch 메서드에 캐시옵션이 없을때와 revalidate 옵션을 넣었을때는 스태틱 페이지로 설정이 된다. 라고 이해하면 되는걸까요? 아 제가 잘못 생각했었습니다. 이해 했습니다.
expo 환경설정중에 궁금한 점이 생겨 문의드립니다. 강의에 나온데로 그대로 설치를 했는데 파일이 구성이 달라 문의드립니다. 영상에서는 app.js 파일이 있는데 저의 파일안에는 app.js 파일이 없습니다... 구성도 많이 다른것 같습니다. 어떤 원인에서 이러한 결과가 나오게 되었는지 궁금합니다. 감사합니다.
Controller.propTypes = { count: PropTypes.number.isRequired, // count가 숫자형으로 필수 buttonClick: PropTypes.func.isRequired, // buttonClick이 함수형으로 필수 }; 전 위와같은 코드를 작성하지 않으면 props가 missing이라는 오류가 뜹니다. 혹시 이유를 알 수 있을까요?
강의 6.3) 기능구현하기 카운트 컴포넌트를 state로 만들어야 한다고 하셨는데 state대신 ref를 사용하면 어떻게 되나요? ref는 리렌더링을 유발하지는 않지만 dom에 접근이 가능한 걸로 알고 있습니다. 그렇다면 ref를 사용해도 무방하지 않냐는 것이 저의 생각입니다. ref를 사용한다면 ui변경이 가능하지만 리액트가 그 수정을 감지 못하는 문제가 생겨서 state를 사용하는 것인가요?