묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
2.18) ISR 2. 주문형 재 검증 질문 )
/book/3만 "존재하지 않는 페이지 입니다."라고 뜨는데 이유를 잘 모르겠습니다.아래는 npm run build 결과입니다.> section02@0.1.0 build> next build ▲ Next.js 15.1.6./src/components/book-item.tsx17:7 Warning: Using <img> could result in slower LCP and higher bandwidth. Consider using <Image /> from next/image or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element./src/pages/book/[id].tsx51:9 Warning: Using <img> could result in slower LCP and higher bandwidth. Consider using <Image /> from next/image or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element./src/pages/search/index.tsx20:6 Warning: React Hook useEffect has a missing dependency: 'fetchSearchResult'. Either include it or remove the dependency array. react-hooks/exhaustive-depsinfo - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/app/api-reference/config/eslint#disabling-rules ✓ Linting and checking validity of types Creating an optimized production build ... ✓ Compiled successfully ✓ Collecting page data 인덱스 페이지 렌더링fetchOneBook error Error: 서버 상태 오류 at u (.next/server/pages/book/[id].js:1:634) at async x (.next/server/pages/book/[id].js:1:873) ✓ Generating static pages (8/8) ✓ Collecting build traces ✓ Finalizing page optimization Route (pages) Size First Load JS┌ ● / (ISR: 3 Seconds) 1.05 kB 95.7 kB├ /_app 0 B 94.6 kB├ ○ /404 322 B 94.9 kB├ ƒ /api/hello 0 B 94.6 kB├ ƒ /api/revalidate 0 B 94.6 kB├ ● /book/[id] (5318 ms) 705 B 95.3 kB├ ├ /book/3 (5072 ms)├ ├ /book/1├ └ /book/2└ ○ /search 1.11 kB 95.7 kB+ First Load JS shared by all 96.9 kB ├ chunks/framework-a4ddb9b21624b39b.js 57.5 kB ├ chunks/main-d4c20200ddabac7f.js 33.7 kB └ other shared chunks (total) 5.68 kB○ (Static) prerendered as static content● (SSG) prerendered as static HTML (uses getStaticProps) (ISR) incremental static regeneration (uses revalidate in getStaticProps)ƒ (Dynamic) server-rendered on demand// book/[id].tsx// index.tsx
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
앱 라우트 방식에서 반응형 구현하는 방법
안녕하세요 선생님. 강의 잘 듣고 있습니다!강의 주제에 벗어나는 것 같아서 조심스럽게 질문드려보자면, 앱 라우트 방식에서 반응형을 구현하는 방법을 알고 싶습니다. 저는 이전에 페이지 라우터 방식에서 작업할 때 window.matchMedia 를 사용해서 useMediaQuery 훅을 만들어 반응형을 구현했습니다.근데 서버 컴포넌트에서는 위와 같은 방식을 사용하기 어려울 것 같은데 혹시 앱 라우트 방식에서 반응형을 구현할 때 많이 쓰이는 방식이 있을까요? 화면 너비에 따라 컴포넌트의 size prop을 다르게 넘겨주어야 하는 경우에 클라이언트 컴포넌트로 사용해야 할까요? 이 경우 다수의 컴포넌트가 클라이언트 컴포넌트가 될 것 같아 우려스럽더라고요.Next.js의 앱 라우터에서 반응형을 구현하는 방식에 대해 조언을 구하고 싶습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
하이브리드앱 강의는 언제쯤 올라올 예정인가요?
31일에 올라오지 않아서 궁금해 질문드립니다!
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Favicon이 설정이 안 됩니다.
현재 이미지를 public 폴더에 잘 넣어주었는데 아래 이미지처럼 바뀌지 않고 지구 모양으로 뜹니다.. app.tsx , document.tsx, index.tsx 파일에서 favicon 설정하는 코드가 없는데.. 이거때문인걸까요?
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
Pre Rendering 방식에서 페이지 이동 요청 시 동작 관련 질문 드립니다.
[1.2) Next.js 사전렌더링 이해하기] 강의 15분 부근에서 "사전 렌더링에서 페이지 이동 요청 시 클라이언트 사이드 렌더링 방식과 동일하게 처리한다"는 내용을 보고 질문 드립니다. 강의를 따라가며CSR에서의 JS Bundle은 서비스 전체 코드에 대한 번들사전 렌더링에서의 JS Bundle은 해당 페이지에 대한 번들라고 스스로 생각하여 페이지 이동 요청 시 웹 서버로부터 새 JS Bundle을 받을 줄 알았는데, 사전 렌더링에서도 JS Bundle은 서비스 전체 코드에 대한 번들인 것인지 궁금합니다. 만약 제가 이해한 것이 맞다면, 아래 답변에 대해서마지막으로 현재 페이지에 필요한 자바스크립트 코드만 Hydration이 이루어지게 됩니다. 그 이유는 간단한데요 단순히 Hydration이라는 과정이 현재 브라우저에 렌더링된 페이지의 HTML과 JS를 연결하는 과정이기 때문입니다.전체 JS Bundle에서 현재 페이지에 대한 JS를 실행하고, 컴포넌트 교체 및 수화가 일어난다고 생각하면 될까요?
-
해결됨[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
react 19버전에서는 recoil사용이 어렵나요?
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다.💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 안녕하세요. recoil 강의 부분에서 하나의 에러로 인해서 진행이 막힌 상태입니다!TypeError: Cannot destructure property 'ReactCurrentDispatcher' of '{imported module [project]/nodemodules/next/dist/compiled/react/index.js [app-client] (ecmascript)}.default.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' as it is undefined. "dependencies": { "next": "15.1.6", "react": "^19.0.0", "react-dom": "^19.0.0", "recoil": "^0.7.7" },next 15 & react 19 버전으로 진행중이었는데구글링을 해보아도 다들 더이상 recoi은 사용하지말라 이런 답만 알려주고있어 해결하기가 어려운 상태네요. 결국 버전문제인 것 같은데, 최신 버전으로 해당 문제가 해결이 어렵다면 다른 상태관리 라이브러리를 사용하며 진행하고싶은데요,Zustand 라이브러리를 사용해도 진행에 무리없을까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
React가 서버 컴포넌트를 지원하는 이유
안녕하세요 선생님. 강의 잘 듣고 있습니다.강의를 듣고 Next.js도 아니고 React는 CSR 방식인데 왜 서버 컴포넌트를 지원하지? 라는 의문이 생겼습니다.React 공식문서를 보니 프레임워크와 통합하기 위해 Next.js 팀과 협력했다고 나오더라고요. React가 서버 컴포넌트를 지원하게 된 계기가 Next.js의 SSR 때문인지 궁금합니다.공식문서 : https://react.dev/learn/start-a-new-react-project#bleeding-edge-react-frameworks
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
새 강의 쿠폰 질문있습니다.
안녕하세요 강의를 너무 잘 듣고 있습니다. 강의가 업데이트가 되었다는 공지를 오늘 처음 확인을 하게 되었는데 업데이트 된 내용으로 새로 듣고 싶은데 쿠폰을 혹시 발급 받을 수 있을까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Root Layout에서 Context API를 사용할 때 모든 컴포넌트는 클라이언트 컴포넌트가 되나요?
제목그대로의 질문입니다!app/layout.tsx에서<Providers>{children}</Providers> 와 같이 했을때 전체 페이지는 클라이언트 컴포넌트가 되는걸까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
안녕하세요
한입 Nextjs강의 수강중입니다. 2.12) SSR 2. 실습 요 강의전체가 다른 강의보다 음량이 많이 작게 나오네요수강에 문제는 없지만 혹시나 수정이 간단한 문제라면 한번 살펴보셔도 좋을것 같습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
기존 강의 자료 관련 주소, 새 강의 쿠폰
graphql 연습 관련 주소가 더 이상 유지되고 있지 않는 것 같습니다. 일단은 새 강의 쿠폰 관련 문의 드렸는데, 이전 강의에 해당하는 주소들은 이제 유지하지 않는 건가요?
-
미해결Next + React Query로 SNS 서비스 만들기
auth.ts 에서 오류가 납니다.
안녕하세요, 클론코딩 강좌 따라하던중 오류가 나는데 강사님 깃헙 클론해서 완성본 봐도 같은 오류가 나는것 같은데 무슨오류일까요..?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
클라이언트 , 서버 컴포넌트의 사용 범위
안녕하세요 정환님. 완강하고 혼자 google oAuth 와 jwt를 이용해서 로그인을 구현하는 와중에 아무리 찾아봐도 도저히 개념이 잡히지 않는 부분이 있어서 질문 드립니다. nextjs에서는 대부분의 컴포넌트들을 서버컴포넌트로 쓰는것을 권장하고, 상호작용을 위해 hydration이 필요한 컴포넌트들을 클라이언트 컴포넌트로 사용하라고 강의에서 배웠고 그렇게 구현을 하고 있습니다. nextjs의 로그인을 찾아보면 jwt로 access토큰과 refresh 토큰을 이용해서 구현을 하는 글들이 많이 있는데, access토큰은 로컬 스토리지나 state에 담고, refresh 토큰은 httpOnly 쿠키에 담으라고 합니다. 구현을 하다보니 컴포넌트에서 데이터를 페칭을 할때 서버에 access 토큰을 헤더에 담아 보내기 위해서는 로컬 스토리지나 state를 사용하기위해 무조건 클라이언트 컴포넌트를 사용해야 하는데 , 원래 이래야 하는 건가요? 이렇게 되면 데이터 페칭이 필요한 컴포넌트들을 무조건 클라이언트 컴포넌트가 되어버립니다. 아니면 서버 컴포넌트를 사용하고 페칭이 필요할때는 쿠키에 있는 refresh 토큰으로 매번 검증을 해야하는것인지..강의에 많이 벗어난 내용 같긴 한데 이렇게 사용하는게 맞는건인지 .. 개념이 잘 잡히지 않아 질문드립니다.강의는 정말 잘 들었습니다. 새해 복 많이 받으세요.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
새 강의 쿠폰 관련 문의
안녕하세요!! 강의 너무 잘 듣고 있습니다! 다름이 아니라 css 거의 마지막까지 왔는데 새 강의가 나왔다는 사실을 알게 되어서저도 새로운 버전으로 강의를 수강하고 싶은데요! ㅠㅠ실제로 82강에 나오는 my-shop 깃헙 페이지가 다운되기도 했고 해서 새로운 버전으로 꼭 수강하고 싶습니다!!저도 쿠폰을 받을 수 있을까요?좋은 강의 제공해 주셔서 정말 감사합니다!
-
미해결Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
LiveDemo 페이지 정상작동하나요?
강의를 본격적으로 듣기에 앞서Live Demo를 살펴보려했는데,링크 접속 자체에는 문제가 없으나,로그인 클릭시 리다이렉트 url이 잘못되었는지 정확한 이유는 모르곘으나 "This site can't be reached" 에러가 뜨네요?!확인 좀 해주실 수 있을까요?!
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
console에 Object로 출력되지 않는 이유?
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 2.2)페이지 라우팅 설정하기9:48 저는 Object 객체가 출력되지 않고 이렇게 출력이 되는데 {} 인걸 보니 객체로 불려와 지는건 알겠는데 왜 Object로 안오고 저렇게 오는지 궁금합니다
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
시간 기반의 ISR 사용 시 revalidate가 트리거 되는 시점
안녕하세요, 선생님. 강의 잘듣고 있습니다.시간 기반의 ISR 렌더링을 사용할 때 헷갈리는 부분이 있어서 질문 남깁니다.저번 시간까지는 revalidate 시간을 설정하면 유저가 웹 페이지에 유입된 시점부터 지정한 시간 주기로 페이지를 재생성한다고 생각했습니다.근데 이번 강의의 1:47초 부분을 보니까 클라이언트의 요청과는 관계없이 빌드된 시점부터 revalidate 되는 것인지 헷갈리더라고요.예를 들어 revalidate를 60초로 설정하면 빌드된 시점부터 60초 주기로 페이지가 재성성되며 API를 호출하게 되는 것으로 이해해도 괜찮을까요?
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
npm run build 중 에러발생
id와 같이 사용하지 않는 객체를 생성했을 경우 빌드가 진행되지 않습니다. 정환쌤 같은경우 빌드를 하실때 저렇게 //를 하지 않아도 잘 빌드가 가능한데, 저는 에러가 발생하네요.제가 설정과정을 놓친걸까요?
-
미해결Next + React Query로 SNS 서비스 만들기
Streaming을 사용하지 않아도 미리 정적인 컴포넌트들을 서버에서 응답을 받습니다
loading.tsx나 Suspense를 사용했을 때, Next의 Streaming이 동작하여 병렬적으로 미리 준비된 컴포넌트는 사용자의 브라우저에서 먼저 보이게 되고, fetch가 완료된 이후에 서버에서 데이터를 클라이언트로 보내줘서 사용자가 보이는걸로 알고 있습니다.하지만, 개발자 도구 Network 탭을 확인해본결과 새로고침을 하였을 때, loading.tsx나 Suspense를 사용을 모두 빼고서 prefetchQuery와 HydrationBoundary, useQuery만을 사용했을 시 Streaming 동작 방식처럼 fetch문 실행이 완료되기 전에 미리 NavMenu나 글자 같이 정적인 요소들이 fetch가 끝나기 전에 이미 브라우저에 도착해있는걸 확인하였습니다.하지만, 딱 한가지 다른 점은 후자 같은 경우는 정적인 컴포넌트가 브라우저에 도착했음에도 화면에 보이질 않고, 전자 같은 경우는 로딩창이나 다른 정적인 요소들은 이미 화면에 미리 보입니다.그렇다면, Next 15 공식문서에 있는 fetch 실행이 끝날때까지 HTML 파일을 서버 사이드에서 렌더링 하는 것이 Blocking 된다는 논리가 이해가 되질 않습니다. (https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming)위의 코드는 /home의 추천탭을 기준으로 확인하였습니다.이러한 현상이 발생하는 원인이 무엇인지 알 수 있을까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
useSearchParams 에러가 발생합니다
해결했습니다