inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

4. 앱라우터 데이터페칭시 서버 에러 및 클라이언트-서버컴포넌트 수화 에러..

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요! 강의 듣다가 에러가 발생해서 문의드립니다. 어디가 정확히 에러가 나는지 잘 모르겠어서, 어떻게 해결을 해야할지 모르겟네용... 클라이언트와 서버컴포넌트의 하이드레이션 과정에서 에러가 발생한다고 하는데요ㅠㅠ... 4ch 앱라우터 데이터 패칭 할 때 에러난건데, 서버 에러도 같이 뜹니다!! 아니면 서버의 문제라서 클라이언트-서버컴포넌트 하이드레이션까지 문제가 생긴걸까요?? ( 서버는 건드린 적이 없는데 ㅠㅠ ) < 에러 발생 내용 > hook.js:608 A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. 아래 사진은 서버 vscode 터미널 사진입니당 ㅠ Invalid this.prisma.book.findMany() invocation in C:\Users\82106\Desktop\06_onebite-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 PrismaClientInitializationError: Invalid this.prisma.book.findMany() invocation in C:\Users\82106\Desktop\06_onebite-server-main\src\book\book.service.ts:27:35 at In.handleRequestError (C:\Users\82106\Desktop\06_onebite-server-main\node_modules\@prisma\client\runtime\library.js:122:7154) at In.handleAndLogRequestError (C:\Users\82106\Desktop\06_onebite-server-main\node_modules\@prisma\client\runtime\library.js:122:6188)

  • react
  • typescript
  • next.js
댓글 3 좋아요 0 조회수 242

소스코드는 어디서 받을수 있나요?

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요. 강의영상의 코드를 다운받을수 있는곳이 있나요? 강사님 네이버 카페 가보니 코드로배우는리액트 자료실에 타입스크립트 추가되어 있는 yes24 링크인가요? 들어가봤는데 아닌것 같아서 여쭤봅니다..

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
tjdwnsdks 댓글 2 좋아요 0 조회수 191

이전강좌 수강요청

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요. 리액트 강좌를 아주 잘듣고 있는 학생입니다. 죄송하지만 이전 강좌를 다시 볼수 없을까요? 글내용을 수정하는 부분이 막혀서요 ㅠㅠ

  • javascript
  • react
  • node.js
foxball 댓글 2 좋아요 0 조회수 99

setup, teardown 동작 순서

미해결

실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트

안녕하세요! setup, teardown 강의를 보며 실습하고 있습니다. beforeAll 내에 console이 첫번째로 찍히다가 afterAll과 함께 사용할 경우에는 afterAll 바로 직전(마지막 바로 앞)에 찍히고 있습니다. (afterAll을 지울 경우에는 첫번째로 찍히고 있습니다.) beforeEach는 it을 실행하는 횟수만큼 실행되는거 같은데요. describe내에 선언한 beforeEach는 describe내에 호출한 it의 횟수만큼 실행되는게 맞는거 같은데 root의 beforeEach, afterEach도 it의 횟수만큼 실행되는게 맞을까요? 제가 사용한 코드와 출력화면 입니다. import { screen } from '@testing-library/react'; import React from 'react'; import TextField from '@/components/TextField'; import render from '@/utils/test/render'; beforeEach(() => { console.log('2. root - beforeEach'); }); beforeAll(() => { console.log('1. root - beforeAll'); }); afterEach(() => { console.log('5. root - afterEach'); }); afterAll(() => { console.log('6. root - afterAll'); }); describe('placeholder', () => { beforeEach(() => { console.log('3. placeholder - beforeEach'); }); afterEach(() => { console.log('4. placeholder - afterEach'); }); it('기본 placeholder "텍스트를 입력해 주세요."가 노출된다.', async () => { await render(<TextField />); const textInput = screen.getByPlaceholderText('텍스트를 입력해 주세요.'); expect(textInput).toBeInTheDocument(); }); it('placeholder prop에 따라 placeholder가 변경된다.', async () => { await render(<TextField placeholder="상품명을 입력해 주세요." />); const textInput = screen.getByPlaceholderText('상품명을 입력해 주세요.'); expect(textInput).toBeInTheDocument(); }); }); /** 실행 결과 2. root - beforeEach 3. placeholder - beforeEach 4. placeholder - afterEach 5. root - afterEach 2. root - beforeEach 3. placeholder - beforeEach 4. placeholder - afterEach 5. root - afterEach 1. root - beforeAll 6. root - afterAll */

  • javascript
  • react
  • 소프트웨어-테스트
  • vitest
dony 댓글 1 좋아요 0 조회수 248

구조 분해 할당에서 변수가 더 많이 존재하는 상황은 어떤 경우인가요??

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

2.3) 구조분해할당 강의의 배열의 구조 분해 할당과 객체의 구조 분해 할당 모두 아래 코드의 four와 extra와 같이 추가적으로 존재하지 않는 변수를 만드셨는데요. 이렇게 할당 받을 값보다 할당 받을 변수가 더 많은 경우가 실제로도 사용이 되나요?? 사용이 된다면 어떤 목적으로 사용이 되나요? let arr = [1, 2, 3]; let [one, two, three] = arr; let person = { name: "이름", age: 24, }; let { name, age, extra, } = person;

  • javascript
  • react
  • node.js
황서영 댓글 1 좋아요 0 조회수 172

npx prisma db push실행시 에러

해결됨

한 입 크기로 잘라먹는 Next.js

아래와 같은 에러가 발생했는데 무슨 문제인지 알려주시면 감사하겠습니다. Error: Prisma schema validation - (get-config wasm) Error code: P1012 error: Environment variable not found: DATABASE_URL. --> schema.prisma:13 | 12 | provider = "postgresql" 13 | url = env("DATABASE_URL") | Validation Error Count: 1 [Context: getConfig]

  • react
  • typescript
  • next.js
Michael Sohn 댓글 2 좋아요 0 조회수 593

서버컴포넌트 데이터 페칭 관련 문의 드립니다.

해결됨

한 입 크기로 잘라먹는 Next.js

서버컴포넌트에서 필요한 컴포넌트마다 데이터를 페칭하면, 서버에서 받아온 상태에 대해서는 전역상태 관리를 할 필요가 전혀 없는건가요?

  • react
  • typescript
  • next.js
Byoungmin Kang 댓글 2 좋아요 0 조회수 188

localhost 에서 연결을 거부했습니다.

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

프록시 설정하고 concurrently 설정후 npm run dev 를 하였는데 연결을 거부했습니다 뜹니다. ㅜㅜ

  • react
  • node.js
ahj0156 댓글 4 좋아요 0 조회수 2073

스프링부트 버전이 3.4.X 여도 괜찮을까요?

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 강사님. 섹션1 의 ' MariaDB와 부트 프로젝트생성 ' 에서 VScode 에서 스프링부트 프로젝트 만드실때 3.1.X 버전으로 만드셨는데 지금 보면 3.3.6 이랑 3.4.0 밖에 없는데 3.4로 해도 상관 없을까요? 강사님 강의에서는 jpa 를 쓰는것으로 알고 있지만 3.4.0부터는 mybatis framework도 못쓴다고 해서 여쭤봅니다.. 감사합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
tjdwnsdks 댓글 2 좋아요 0 조회수 950

layout shift가 아주 약간 일어나는 부분에 대해

해결됨

프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2

강좌를 따라해보니 lighthoust에서의 cls 점수는 0점인데 성능탭에서는 헤더 부분에서 아주 미세하게 layout shift가 일어난다고 나오고 있거든요. 이런 부분은 너무 작아서 점수를 매길때 무시하는 건가요?

  • react
  • chrome-devtools
kenny 댓글 2 좋아요 0 조회수 355

자막 오류 관련

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 5.3 JSX로 UI 표현하기 편 수강 중, 강의 초반부에 자막 오류가 있는 것 같아 문의 드립니다. 감사합니다.

  • javascript
  • react
  • node.js
송은인디 댓글 1 좋아요 0 조회수 213

포스트맨에서 true가 안떠요

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

(사진)

  • react
  • node.js
dbwls204605 댓글 1 좋아요 0 조회수 179

isLoading 관련 질문

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요 선생님. 강의 너무 잘 듣고 있습니다 !! 스토리지 강의 끝 부분 듣다가 질문이 생겨 글 남깁니다. if (isLoading) { return <div>데이터 로딩중입니다...</div>; } 위와 같이 작성된 if문은 isLoading이 false가 될 때까지 기다려주나요? if문이 실행되었을 당시에 isLoading이 true여서 데이터로딩중이라는 페이지를 반환한 후에도 여전히 로딩이 끝나지 않았다면, 아래 컴포넌트들을 렌더링하는 리턴문을 실행하였을 때 에러가 발생하지는 않나요? 벌써 강의 막바지네요. 선생님의 좋은 강의 덕분에 여기까지 올 수 있었던 것 같습니다. 감사합니다 :) 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • javascript
  • react
  • node.js
황유나 댓글 1 좋아요 0 조회수 201

왜 안되나요

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

(사진)

  • react
  • node.js
dbwls204605 댓글 1 좋아요 0 조회수 148

원시타입 vs 객체타입 부분 질문있습니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요 원시타입과 객체타입 강의를 보다가 궁금한점이 생겨 질문을 드립니다. let p1 = 1; let p2 = p1; p2 = 2; 이렇게 1에서 2로 재할당을 하면 메모리상에는 원래 1이 있었는데 새로운 메모리에 2가 추가가 되면서 해당 공간을 가리키는데 메모리 공간에 저장되어 있던 1은 수정되지 않는다...라고 이해하고 있습니다. 그럼 여기서 1은 수정만 되지 않을 뿐 없어지지 않고 그대로 1이 저장이 되어있는건가요? 그리고 객체타입에서는 값을 변경하면 원본이 바로 변경되므로 안전하게 ... 스프레드로 값을 복사해서 사용한다라는 설명이 맞나요?

  • javascript
  • react
  • node.js
부드러운 족제비 댓글 2 좋아요 0 조회수 200

useMemo와 useCallback 사용 시기

미해결

웹 게임을 만들며 배우는 React

안녕하세요. useMemo와 useCallback에 대한 사용 시기에 관련해서 여쭤보고싶습니다. useMemo와 useCallback을 사용한다면 특정상황을 제외하고, 기억된 값 또는 함수를 사용하여 성능을 올릴 수 있다는 부분까지 이해했습니다. 질문 드리고 싶은 부분은 useMemo를 "복잡한 함수", 불필요하게 다시 실행되는 함수의 결과값을 저장하기 위해, useCallback은 함수의 생성 비용이 "크다"라고 생각될때 사용하는 것이라고 이해중인데, 이때 "복잡한"과 "크다"의 기준이 무엇인지 알고 싶습니다. "복잡한"과 "크다"에 수치, 기준이 존재하는지 궁금합니다. 정확한 수치가 있는것인지, 주관적인것인지에 대해 알고 싶습니다. 감사합니다.

  • react
  • useMemo
  • usecallback
sishappyjiwon 댓글 2 좋아요 0 조회수 242

Async와 await에 대해 질문있습니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요 강의 너무 잘 보고 있습니다. 강의를 듣다가 Async와 await에 대해 질문이 있습니다. api요청과 같이 시간이 걸리는 작업은 비동기로 이루어지기 때문에 다른 작업이 먼저 이루어지고 그다음 데이터가 불러오면 그 작업을 해야되므로 비동기로 만들어 주기 위해 async를 붙인다 까지는 이해가 되는데 await은 비동기 작업까지 다 처리되고 결과값을 얻기 위해 사용이 되는건가요? 마지막으로 async는 함수 앞에 작성이 되는데 await은 어디에 작성이 되는것인지 궁금합니다.

  • javascript
  • react
  • node.js
부드러운 족제비 댓글 2 좋아요 0 조회수 353

debounce 함수 테스트 정확도 관련 질문입니다.

미해결

실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트

안녕하세요. debounce 함수 테스트 관련 강의를 보고 궁금한 점이 있어 문의드립니다. debouncedFn이 300ms이 지난 후 실행되어야 함을 테스트할 때, 기존에 작성해주신 것 처럼 테스트할 시에는 함수가 300ms 후가 아닌 즉시 실행이 되거나 그보다 작은 시간이 지나고 실행이 되어도 테스트가 통과하게 됩니다. 그에 따라 아래처럼 작성하는 것이 더 정확한 테스트라고 생각이 되는데 이렇게 테스트하지 않는 이유가 있는지 궁금합니다! it('특정 시간이 지난 후 함수가 호출된다.', () => { const spy = vi.fn(); const debouncedFn = debounce(spy, 300); debouncedFn(); expect(spy).not.toHaveBeenCalled(); // 즉시 호출되지 않았는지 확인 vi.advanceTimersByTime(299); expect(spy).not.toHaveBeenCalled(); // 299ms 후에도 호출되지 않았는지 확인 vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); // 300ms 후에 정확히 한 번 호출되었는지 확인 expect(spy).toHaveBeenCalled(); });

  • javascript
  • react
  • 소프트웨어-테스트
  • vitest
박일상 댓글 2 좋아요 0 조회수 205

몽고db 연결 오류가 납니다 위에껀 입력한 코드, 아래껀 터미널이에요

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

const express = require('express') const app = express() const port = 5000 const mongoose = require('mongoose') mongoose.connect('mongodb+srv://newlifecode:1234@newlifecode.f0tau.mongodb.net/test?retryWrites=true&w=majority&appName=newlifecode' , { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => console.log('MongoDB Connected...')) .catch(err => console.error('MongoDB Connection Error:', err.message)); app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) }) PS C:\Users\USER\Documents\boiler-plate> npm run start > boiler-plate@1.0.0 start > node index.js (node:7628) [MONGODB DRIVER] Warning: useNewUrlParser is a deprecated option: useNewUrlParser has no effect since Node.js Driver version 4.0.0 and will be removed in the next major version (Use `node --trace-warnings ...` to show where the warning was created) (node:7628) [MONGODB DRIVER] Warning: useUnifiedTopology is a deprecated option: useUnifiedTopology has no effect since Node.js Driver version 4.0.0 and will be removed in the next major version node:events:496 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use :::5000 at Server.setupListenHandle [as _listen2] (node:net:1907:16) at listenInCluster (node:net:1964:12) at Server.listen (node:net:2066:7) at Function.listen (C:\Users\USER\Documents\boiler-plate\node_modules\express\lib\application.js:635:24) at Object.<anonymous> (C:\Users\USER\Documents\boiler-plate\index.js:19:5) at Module._compile (node:internal/modules/cjs/loader:1546:14) at Object..js (node:internal/modules/cjs/loader:1689:10) at Module.load (node:internal/modules/cjs/loader:1318:32) at Function._load (node:internal/modules/cjs/loader:1128:12) at TracingChannel.traceSync (node:diagnostics_channel:315:14) Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1943:8) at process.processTicksAndRejections (node:internal/process/task_queues:90:21) { code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 5000 } Node.js v22.11.0 PS C:\Users\USER\Documents\boiler-plate> npm run start > boiler-plate@1.0.0 start > node index.js (node:860) [MONGODB DRIVER] Warning: useNewUrlParser is a deprecated option: useNewUrlParser has no effect since Node.js Driver version 4.0.0 and will be removed in the next major version (Use `node --trace-warnings ...` to show where the warning was created) (node:860) [MONGODB DRIVER] Warning: useUnifiedTopology is a deprecated option: useUnifiedTopology has no effect since Node.js Driver version 4.0.0 and will be removed in the next major version node:events:496 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use :::5000 at Server.setupListenHandle [as _listen2] (node:net:1907:16) at listenInCluster (node:net:1964:12) at Server.listen (node:net:2066:7) at Function.listen (C:\Users\USER\Documents\boiler-plate\node_modules\express\lib\application.js:635:24) at Object.<anonymous> (C:\Users\USER\Documents\boiler-plate\index.js:19:5) at Module._compile (node:internal/modules/cjs/loader:1546:14) at Object..js (node:internal/modules/cjs/loader:1689:10) at Module.load (node:internal/modules/cjs/loader:1318:32) at Function._load (node:internal/modules/cjs/loader:1128:12) at TracingChannel.traceSync (node:diagnostics_channel:315:14) Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1943:8) at process.processTicksAndRejections (node:internal/process/task_queues:90:21) { code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 5000 }

  • react
  • node.js
dbwls204605 댓글 1 좋아요 0 조회수 268

인기 태그

인프런 TOP Writers

주간 인기글