묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Next + React Query로 SNS 서비스 만들기
새로 올라온 강의 영상에 문제가 있는거 같습니다.
"섹션4 그런데 백엔드 개발자가 API를 아직 못 만들었다"의 "msw 세팅과 .env" 강좌가 8분 38초까지 영상이 검은 화면으로 나옵니다. 해당 영상에서 검은 화면 중간 중간 노란색 안내 문구는 나오는 것과 다른 영상에서는 해당 증상이 보이지 않은 것으로 보아서 제 환경에서 해결할 수 없는 문제로 보이는데, 확인 한번 부탁드립니다.
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
[자체 해결]삭제하기 시 경고 alert 출력
안녕하세요. 7.7)리뷰 삭제 기능 구현하기를 하는 중인데, 혹시 바로 삭제하지 않고 중간에 alert 같은 걸로 정말 삭제할지 체크하고 그 다음에 삭제하는 식으로는 어떻게 하면 좋을까요? form 태그에 onsubmit을 달아서 중간에 끼어드는? 방식으로 해볼까 했는데, 뭔가 useActionState랑 호환을 어떻게 해야할지 잘 모르겠네요...아래 코드를 작성해서 해결했습니다! const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => { const confirmDelete = confirm(`댓글을 정말 삭제하시겠습니까?`); if (confirmDelete) { const form = e.currentTarget; form.requestSubmit(); // 폼을 강제로 제출 } };
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
데이터 패칭 관련 질문 드립니다.
안녕하세요 이정환 강사님.인스타의 위치검색기능과 비슷한 기능을 구현하고 있습니다.조회버튼을 클릭해서 serachParams를 서버컴포넌트로 전달하는 형식이 아니라 검색어가 입력되면 바로 검색해서 결과를 출력해야 하는 페이지인 경우에는 전부 클라이언트 컴포넌트로 구성해야 하나요?어떤식으로 구성해야 Next의 장점을 최대한 살릴 수 있는지 궁금합니다.
-
미해결Next + React Query로 SNS 서비스 만들기
게시글 삭제하기
안녕하세요 제로초님! 게시글 삭제하기 기능을 구현하고 있습니다!구현해도 안되길래 스웨거가서 테스트를 하고 서버를 봤더니 오류가 나더라구요혹시 이유를 알 수 있을까요??
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
React Server Component 와 Pre Fetching
안녕하세요, 강의 애청자(?) 입니다.React Server Component가 도입된 후에 interaction이 필요한 component(Client component)만 JS Bundle에 포함시켜서 Browser로 보냄으로써 JS Bundle의 불필요한 계산(용량)을 줄일 수 있다고 말씀하셨습니다. 그렇다면 여기서 궁금한것이 React Server Component를 설명해주시기 전에 Pre Fetching에서 JS Bundle에는 사실 현재 Page에 필요한 JS Bundle만 전달된다. 이유는 용량이 커지면 hydration이 지연되기 때문. 그 후에 Pre fetching으로 나머지 연결된 모든 Page의 JS Bundle을 불러온다고 설명해주신 개념은 여전히 유지가 되는건가요?즉, 아래의 순서가 맞는지 궁금합니다.(Brower) 접속요청(Server) JS 실행-Rendering(Server to Browser) Rendering 된 HTML(Browser to User) 화면에 Rendering(Server to Browser) JS Bundle( 단, '현재 Page에 필요한', 'Client component')(Browser) Hydration(Browser to User) Interaction 가능 - TTI(Server to Browser) Pre Fetching/JS Bundle (단, '연결된 모든 Page의', 'Client component')이 순서가 맞을까요?아니라면.. Pre fetching 개념이 React Server Component 도입이후 없어진건가요?(이건 아닌거같긴한데 ㅎ)어떻게 동작하는지 궁금합니다. 항상 잘 듣고있습니다.감사합니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
게시글 삭제
안녕하세요 제로초님! 게시글 삭제하기 기능을 구현하고 있습니다!구현해도 안되길래 스웨거가서 테스트를 하고 서버를 봤더니 오류가 나더라구요혹시 이유를 알 수 있을까요??
-
미해결Next.js 시작하기(feat. 지도 서비스 개발)
키보드 어떤 거 사용하시나요
궁금합니다
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
유저의 요청으로 서버에서 "JS 실행(렌더링)"을 하는것에 관한 질문
유저가 웹 앱에 진입을 하면서 서버에 요청을 보낼 때,서버에서 JS를 실행하여 html을 채워준 뒤에 클라이언트로 보낸다고 이해하였습니다. 질문 1) 그렇다면, 서버에서는 node와 같은 자바스크립트 런타임 환경이 갖춰져 있어야 한다는 이야기일까요?? 질문 2) 더 나아가서, 넥스트 프로젝트의 배포 방법이 리액트의 배포 방법과 차이가 많이 날까요??(vercel을 사용하지 않는다는 전제하에)
-
미해결Next + React Query로 SNS 서비스 만들기
구글 로그인 구현하기
안녕하세요 제로초님! 완강하고 지금 구글 로그인 구현중입니다.구글로 로그인하다가 마지막에 인가토큰받는 부분에서 404 에러가나는데 이유를 모르겠습니다... 도와주세요 ㅠ_ㅠ
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
nest 서버 에러
안녕하세요 네스트 서버에서 아래와 같은 에러가 발생해서 보니 커넥션 관리가 안되고 있더라고요prisma disconnect 추가하시면 좋을 거 같습니다. 강의 잘 보았습니다 감사합니다. PrismaClientInitializationError: Invalid prisma.review.findMany() invocation: Can't reach database server at aws-0-ap-northeast-2.pooler.supabase.com:5432 Please make sure your database server is running at aws-0-ap-northeast-2.pooler.supabase.com:5432. at In.handleRequestError (/var/task/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/var/task/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/var/task/node_modules/@prisma/client/runtime/library.js:122:5896) at async l (/var/task/node_modules/@prisma/client/runtime/library.js:127:11167) at async ReviewService.findBookReviews (/var/task/dist/src/review/review.service.js:32:16) at async /var/task/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at async /var/task/node_modules/@nestjs/core/router/router-proxy.js:9:17
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
value 와 defaultValue 의 차이
포트폴리오 강의를 보다가 질문이 생겼습니다.defaultValue 와 value 의 차이가 defaultValue 는 기존값이 수정되고, value 는 수정이 안된다는 것 뿐인가요? 그렇다면 value 는 값을 수정할 수 없으므로 readOnly 라는 코드를 빼도 되는것 아닌가요?그리고 아래의 코드는 삼항연산자로 되어 있는데 (props.address !=="" ) 이 거짓일때는 게시물 수정할 때를 의미하는것이 맞나요?제가 정확히 이해하고 있는지 의심이 들어서 질문 올립니다!그리고 BoardCommentWrite.presenter컴포넌트에서 value={props.writer} 라고 되어 있는데 defaultValue={props.writer} 라고 되어도 문제 없는게 맞나요? <S.Input placeholder="작성자" onChange={props.onChangeWriter} value={props.writer} /> <S.Address readOnly value={ props.address !== "" ? props.address : props.data?.fetchBoard.boardAddress?.address ?? "" } />
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
eslint 설치 문제
eslint 설치할 때 3개 중에 마지막 3번째 선택지가 없어서 수업질문 참고해서 yarn add eslint@8.0.1 설치를 하였습니다. 그다음에 npx eslint --init를 했는데 마지막에 강사님화면에서는 Would you like to install them now? · No / Yes 이렇게 되어있고 여기서 yes하면 Which package manager do you want to use? npm yarn pnpm 이런식으로 뜨는데 저는 Would you like to install them now with npm? · No / Yes 이렇게 바로 떠서 yes를 누르면 바로 설치가 됩니다.(no 눌려도 그냥 설치돼요) 근데 설치하고 나면 이런 사진과 같은 오류가 떠요 안되는 경우 방법으로 1. yarn.lock, node_modules, .eslintrc.js 파일을 지워주시고,2. 다시 한 번 위의 순서로 eslint를 설치해 주세요! 이것도 다 따라했는데 계속 똑같아요 지피티한테 물어보니까주요 경고 및 문제:package-lock.json 감지 경고프로젝트에 yarn.lock과 package-lock.json이 동시에 존재합니다. Yarn과 npm을 섞어 사용하면 의존성 문제나 충돌이 발생할 수 있으므로, 하나의 패키지 매니저만 사용하는 것이 좋습니다.해결책: package-lock.json 파일을 삭제하고 Yarn을 계속 사용하거나, 반대로 Yarn을 포기하고 npm을 사용하세요.의존성 경고 (peer dependency 불일치)예를 들어, @typescript-eslint/eslint-plugin이 eslint 버전 8.57.0 이상을 요구하지만 현재 설치된 버전은 8.0.1입니다.해결책: 경고를 무시하지 않고, 요구 사항에 맞는 최신 버전을 설치하세요 yarn add eslint@^8.57.0eslint@8.0.1 버전 경고설치된 eslint 버전 8.0.1은 더 이상 지원되지 않는 버전입니다. 최신 버전으로 업그레이드하세요.해결책yarn add eslint@latest의존성 중 사용 중단된 모듈예를 들어, glob@7.2.3과 inflight@1.0.6이 더 이상 지원되지 않습니다.이는 주로 간접 의존성에서 발생하며, 해당 모듈의 최신 버전으로 업데이트하거나, 의존성을 최신으로 맞춰야 할 수 있습니다.이런식으로 알려주는데 뭐 아무거나 못건들겠어요 잘못될 것같아서 뭐가 잘못된걸까요 ?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
라이브러리 react 버전 관련
안녕하세요 궁금한 게 있는데 알려주신 react loading skeleton 라이브러리는 리액트 19와 호환되지 않아서 react 18을 써야하는데,next 15는 리액트 19 rc 버전을 사용하고 있는데요.next 15 + react18로 사용을 해도 앱 라우터가 동작은 하던데, next 15 + react18로 사용하면서 라이브러리 들을 쓰는 게 좋을까요? next 15 + react19 rc로 쓰는 게 좋을까요?관련해서 검색해보면 next 15 + react18은 앱라우터를 못 쓴다고만 되어있더라고요. 강사님의 개인적인 의견이 궁금해서 여쭤봅니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
피그마가 안열립니다.
안녕하세요 피그마 접속 하려고 하는데 이런 팝업창이 뜨면서 안열립니다..구글검색 후 webGL 설정하는 것 까지 해보았는데 안열리네요 ㅠㅠ
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
코드 정렬 기능
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의자님께서는 강의에서 어떤 코드 정렬 기능을 쓰고 계신지 궁금합니다. 단축키를 이용하시는 것 같은데 저는 똑같이 안되는 것 같습니다.
-
미해결[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
npx husky install
yarn add --dev husky 명령어를 사용후,npx husky install 명령어를 사용했는데 husky - install command is DEPRECATED 라는 오류가 계속해서 발생합니다. .git도 생성되어 있는데 어떻게 해결해야할지 모르겠어서 질문합니다
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
4.1)앱 라우터의 데이터패칭 /패칭 오류
안녕하세요 이정환 강사님!강의 너무 잘 듣고 있습니다.다름이 아니라 section04로 넘어가면서 서버 데이터 패칭 시 하기와 같은 에러가 발생하는데요hook.js:608 A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:- A server/client branch if (typeof window !== 'undefined').- Variable input such as Date.now() or Math.random() which changes each time it's called.- Date formatting in a user's locale which doesn't match the server.- External changing data without sending a snapshot of it along with the HTML.- Invalid HTML tag nesting.It can also happen if the client has a browser extension installed which messes with the HTML before React loaded.https://react.dev/link/hydration-mismatch ... <HotReload assetPrefix=""> <ReactDevOverlay state={{nextId:1, ...}} dispatcher={{...}}> <DevRootNotFoundBoundary> <NotFoundBoundary notFound={<NotAllowedRootNotFoundError>}> <NotFoundErrorBoundary pathname="/" notFound={<NotAllowedRootNotFoundError>} notFoundStyles={undefined} ...> <RedirectBoundary> <RedirectErrorBoundary router={{...}}> <Head> <link> <RootLayout> <html lang="en"> <body- cz-shortcut-listen="true" > ...서버에러인거 같아서 서버 터미널을 보니[Nest] 89115 - 2024. 12. 01. 오후 10:22:40 ERROR [ExceptionsHandler] Invalid this.prisma.book.findMany() invocation in/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() {→ 27 return await this.prisma.book.findMany(Error querying the database: FATAL: Tenant or user not foundPrismaClientInitializationError: Invalid this.prisma.book.findMany() invocation in/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() {→ 27 return await this.prisma.book.findMany(Error querying the database: FATAL: Tenant or user not found at In.handleRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:5896) at l (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:127:11167) at BookService.findAllBooks (/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:12) at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-proxy.js:9:17[Nest] 89115 - 2024. 12. 01. 오후 10:22:40 ERROR [ExceptionsHandler] Invalid prisma.$queryRawUnsafe() invocation:Error querying the database: FATAL: Tenant or user not foundPrismaClientInitializationError: Invalid prisma.$queryRawUnsafe() invocation:Error querying the database: FATAL: Tenant or user not found at In.handleRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:5896) at l (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:127:11167) at BookService.findRandomBooks (/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:51:12) at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-proxy.js:9:17[Nest] 89115 - 2024. 12. 01. 오후 10:24:17 ERROR [ExceptionsHandler] Invalid this.prisma.book.findMany() invocation in/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() {→ 27 return await this.prisma.book.findMany(Error querying the database: FATAL: Tenant or user not foundPrismaClientInitializationError: Invalid this.prisma.book.findMany() invocation in/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:35 24 } 25 26 async findAllBooks() {→ 27 return await this.prisma.book.findMany(Error querying the database: FATAL: Tenant or user not found at In.handleRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:7154) at In.handleAndLogRequestError (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:6188) at In.request (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:122:5896) at l (/Users/jonghyun/Documents/onebite-books-server-main/node_modules/@prisma/client/runtime/library.js:127:11167) at BookService.findAllBooks (/Users/jonghyun/Documents/onebite-books-server-main/src/book/book.service.ts:27:12) at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-execution-context.js:46:28 at /Users/jonghyun/Documents/onebite-books-server-main/node_modules/@nestjs/core/router/router-proxy.js:9:17[Nest] 89115 - 2024. 12. 01. 오후 10:24:17 ERROR [ExceptionsHandler] Invalid prisma.$queryRawUnsafe() invocation:이와같은 에러가 발생하는데요 supabase에도 문제가 없고 혹시 .env파일에서의 url에 오타가 있는지 봤지만 DATABASE_URL="postgresql://postgres.hnetjcwhrrrlawdduljl:J8duYElvPI3aY69n@aws-0-ap-northeast-2.pooler.supabase.com:5432/postgres"아레와 같이 문제는 없었는데 어떤 점이 문제인지 4시간째 찾지 못해서 질문드립니다 ㅠ
-
해결됨Next.js App router 기반 Chat GPT 만들기
섹션7 사이드바 &대화페이지 연동 9분50초경 질문
여기도 하나 질문 드릴게 있는데 conversation.ts파일이 'use server'로인해 서버에서 실행되는 함수가 되는데 그럼에도 revalidatePath함수에 절대경로 ('localhost:3000/')이 아닌 루트경로를 넣어도 왜 상관이 없는건지 궁금합니다 ㅠㅠ
-
해결됨Next.js App router 기반 Chat GPT 만들기
섹션7 사이드바 &대화페이지 연동 3분50초경 질문
클라이언트 컴포넌트안의 자식컴포넌트들은 자동으로 클라이언트 컴포넌트로 바뀌는데 사용할 자식 컴포넌트를 children으로 처리하면 클라이언트 컴포넌트로 바뀌지 않고 서버컴포넌트로 남기때문에 문제가 발생하지 않는건가요? 그렇다면 그게 가능한 메커니즘은 무엇인지 궁금합니다 ㅠㅠ
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
프리패칭이 정상적으로 되는지 확인 방법
첫번째는 3000이고 2번째는 3000/search인데프리패칭이 된지 어떻게 확인 하는건가요?