inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

useEffect로 사용을 해도 되나요?

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

useEffect(() => { localStorage.setItem('todoData', JSON.stringify(todoData)); }, [todoData]); 이렇게 작성을 하고, 나머지는 다 주석을 처리했는데도 정상 작동하는 것 같더라구요. 하지만 의문인게 setTodoData((prev) => [...prev, newTodo]); localStorage.setItem('todoData', JSON.stringify([...todoData, newTodo])); 여기도 주석처리를 했는데, 여기는 조금 작성하는 게 다르 지 않나요? handleRemoveClick = () => { setTodoData([]) } 여기도 그렇구요. 그런데 그냥 다 정상 작동 하네요?

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
gusn9719 댓글 1 좋아요 0 조회수 219

도대체 강의 자료 csv, txt파일은 어디 있는거죠?

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

도대체 강의 자료 csv, txt파일은 어디 있는거죠? 강의 재생화면에서 자료다운 버튼을 누르면 관련 자료가 다운이 되어야 하는게 아닌가요? 다들 메일로 요청해서 받는것 같은데 이건 아닌것 같은데요.

  • python
나민엽 댓글 2 좋아요 0 조회수 154

로그인 방식 관련해서 질문드립니다!!

미해결

Next + React Query로 SNS 서비스 만들기

로그인 방식을 구현하면서, 쿠키로만 개발할 경우 완전히 백엔드에 의존하게 되어 로컬로, 동시에 키고 개발을 하지 않는이상, 도메인간 불일치를 해결 할 방법이 없어, msw를 사용해야 한다고, 이전에 말씀해주셨습니다!! 보통, 회사나, 개인 소프트웨어를 만들 때 어떤 방식으로 로그인을 주로 만드시는지 조금 알고 싶어 궁금하여 질문을 남깁니다!! 로그인 방식 고찰 로그인 성공시, accessToken을 body로 받고, refreshToken은, httpOnly 쿠키로 받는 경우 (서버에서, DB or Redis를 통해 refreshToken 관리) → 인증 필요 요청 (Bearer accessToken), 리프레시 필요 요청 (refreshToken 심긴 쿠키를 바탕으로 요청) - DB에서 관리하는 것 보다, redis를 통해 관리했을 떄 읽기 속도가 빠름을 확인! 응답: accessToken과 refreshToken 모두 body로 클라이언트에게 전달. 인증 필요 요청과, 리프레시 토큰 재발급 요청 모두 헤더의 Bearer에 accessToken이나, refreshToken을 넣어서 전달.) 현재 방식: accessToken, refreshToken 모두 쿠키로 응답받고, 요청또한, 쿠키를 포함하여 전달. 제로초님은, Next.js를 활용하여, 웹 사이트를 만드실 떄, 어떠한 방식으로 로그인을 구현하시는지 궁금하고, 많은 회사에서 사용하는 방식은 보통 어떤 방식인지도 알고싶습니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
김용민 댓글 2 좋아요 0 조회수 243

eslint 설정 후 오류가 납니다.

미해결

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

강의대로 eslint 설정한 후 { "extends" : [ "react-app" ] } npm run dev 하면 아래와 같은 에러가 납니다. VITE v6.0.3 ready in 354 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ➜ press h + enter to show help 오후 4:41:35 [vite] Internal server error: C:\Dev\fullstack-app\frontend\src\main.jsx 1:1 error Parsing error: The keyword 'import' is reserved ✖ 1 problem (1 error, 0 warnings) Plugin: vite-plugin-eslint File: C:/Dev/fullstack-app/frontend/src/main.jsx at TransformPluginContext._formatError (file:///C:/%EC%94%A8%EC%97%94%ED%8B%B0%ED%85%8C%ED%81%AC/Dev/fullstack-app/frontend/node_modules/vite/dist/node/chunks/dep-yUJfKD1i.js:47158:41) at TransformPluginContext.error (file:///C:/%EC%94%A8%EC%97%94%ED%8B%B0%ED%85%8C%ED%81%AC/Dev/fullstack-app/frontend/node_modules/vite/dist/node/chunks/dep-yUJfKD1i.js:47153:16) at TransformPluginContext.transform (file:///C:/%EC%94%A8%EC%97%94%ED%8B%B0%ED%85%8C%ED%81%AC/Dev/fullstack-app/frontend/node_modules/vite-plugin-eslint/dist/index.mjs:1:1989) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async EnvironmentPluginContainer.transform (file:///C:/%EC%94%A8%EC%97%94%ED%8B%B0%ED%85%8C%ED%81%AC/Dev/fullstack-app/frontend/node_modules/vite/dist/node/chunks/dep-yUJfKD1i.js:47001:18) at async loadAndTransform (file:///C:/%EC%94%A8%EC%97%94%ED%8B%B0%ED%85%8C%ED%81%AC/Dev/fullstack-app/frontend/node_modules/vite/dist/node/chunks/dep-yUJfKD1i.js:40852:27) 오후 4:41:35 [vite] Pre-transform error: C:\Dev\fullstack-app\frontend\src\main.jsx 1:1 error Parsing error: The keyword 'import' is reserved 파싱 오류 같은데 어느 설정파일을 수정해야 할까요?

  • react
  • redux
  • node.js
  • 웹앱
  • mongodb
CNTTECH 댓글 1 좋아요 0 조회수 253

배열에서도 for in 사용이 가능한 것 같습니다!

해결됨

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

11:42 아래와 같이 for in을 배열에서도 사용이 가능한 것 같습니다! 다만 권장되지는 않는 방법이라고 하네요. let arr = [1, 2, 3]; for (let i in arr) { console.log(arr[i]); } 권장되는 방법: for...of, 일반 for 루프, forEach() 메서드 등

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

MSW 오류

해결됨

Next + React Query로 SNS 서비스 만들기

먼저 next와 react의 버전은 각각 15버전과 19버전입니다 next 15 부터는 http.ts 의 코드가 간결하게 바뀌어서 적용해보던 중 세팅 단계에서 해당 오류가 발생하였습니다 TypeError: Cannot read properties of undefined (reading 'url' 구글에 검색해보니 최신버전에서도 발생하는 것 같습니다 ㅠㅠ

  • react
  • next.js
  • react-query
  • next-auth
  • msw
심현석 댓글 2 좋아요 0 조회수 472

[ERROR] MSW Server-Side 적용 실패 에러 / (Module not found Error '_http_common')

미해결

Next + React Query로 SNS 서비스 만들기

[문제점] MSW의 nodejs Server를 Server-Side 에서 실행하려고 할 때 Module not found Error '_http_common' 와 같은 에러 발생으로 빌드가 실패하는 상황을 겪고 있습니다. 저만 겪고 있는 상황인지 싶지만 질문 드립니다. [현상황] 아래와 같이 SSR Component안에서 API를 사용하여 데이터를 받아온 후 화면을 그리고나면, export const Home = async () => { const res = await fetch("https://api.github.com/users/zerocho"); const data = await res.json(); return ( <div className="flex flex-1 items-center justify-center"> <h1>{data.name}</h1> <img src={data.avatar_url} alt={data.name} className="rouneded" /> </div> ); }; 아래와 같은 화면을 확인 할 수 있습니다. 이를 MSW의 Server-side를 사용하기 위해서 Layout단에서 server를 listen하도록 실행하면 if ( process.env.NEXT_RUNTIME === "nodejs" && process.env.NODE_ENV !== "production" ) { const { server } = require("@/mocks/http"); server.listen(); } export default function RootLayout({ children }: { children: React.ReactNode; }): JSX.Element { return ( <html lang="en"> <body className={inter.className}> <MSWProvider> <Suspense>{children}</Suspense> </MSWProvider> </body> </html> ); } 아래와 같은 Build Error로 Module not found: Can't resolve '_http_common' 나게 됩니다. [찾아본 원인?] _http_common 이 Node.js built-in module인데, Next.js Webpack의 config에서 해당 module을 자동 import 하지 않아서 발생하는 에러라고 합니다. (출처: https://github.com/mswjs/msw/issues/2291 ) [시도한 해결 방안 1] - src/instrumentation.ts 파일을 아래와 같이 추가. export async function register() { if (process.env.NEXT_RUNTIME === "nodejs") { const { server } = await import("./mocks/http"); server.listen(); } } - next.config.js를 아래와 같이 수정 /** @type {import('next').NextConfig} */ module.exports = { reactStrictMode: true, transpilePackages: ["@repo/ui"], experimental: { instrumentationHook: true }, }; 결과 동일 [시도한 해결방안 2] - next.config.js에 webpack 내용 추가 /** @type {import('next').NextConfig} */ module.exports = { reactStrictMode: true, transpilePackages: ["@repo/ui"], experimental: { instrumentationHook: true }, webpack: (config, { isServer }) => { if (isServer) { if (Array.isArray(config.resolve.alias)) // server일시 browser를 제외 시킨다 config.resolve.alias.push({ name: "msw/browser", alias: false }); else config.resolve.alias["msw/browser"] = false; } else { if (Array.isArray(config.resolve.alias)) config.resolve.alias.push({ name: "msw/node", alias: false }); else config.resolve.alias["msw/node"] = false; } return config; } }; 결과 동일 [추가 조사한 내용들] - 현재 github issue에 아래와 같이 등록되어 있습니다. https://github.com/mswjs/msw/issues/2291 Server-Side를 사용하지 않고도 MSW를 사용할 수는 있지만, 해결 방안이 있을지 해서 질문드립니다!

  • react
  • next.js
  • msw
jy ko 댓글 3 좋아요 0 조회수 492

에러 해결 방법

미해결

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

[0] Failed running 'server/index.js' [1] [1] VITE v4.4.4 ready in 271 ms [1] [1] ➜ Local: http://localhost:5173/ [1] ➜ Network: use --host to expose [0] Restarting 'server/index.js' [0] file:///Users/kim-yongmin/test-example-shopping-mall/server/index.js:9 [0] import productsJSON from './response/products.json' assert { type: 'json' }; [0] ^^^^^^ [0] [0] SyntaxError: Unexpected identifier 'assert' [0] at compileSourceTextModule (node:internal/modules/esm/utils:337:16) [0] at ModuleLoader.moduleStrategy (node:internal/modules/esm/translators:164:18) [0] at callTranslator (node:internal/modules/esm/loader:439:14) [0] at ModuleLoader.moduleProvider (node:internal/modules/esm/loader:445:30) [0] at async ModuleJob._link (node:internal/modules/esm/module_job:106:19) [0] [0] Node.js v22.5.1 [0] Failed running 'server/index.js' 3.1 강의 시청 후 test-example-shopping-mall 브랜치에서, 작업을 시작할려고, 서버와 프로젝트를 모두 킬려고 하는데 잘 동작하지 않습니다. 이에 대한 해결방법이 있을까요?

  • javascript
  • react
  • 소프트웨어-테스트
  • vitest
김용민 댓글 2 좋아요 0 조회수 441

노션 공유 부탁드립니다.

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요 현재 강의를 듣고 있는데 노션 워크스페이스 공유가 안되어있어서 해당 메일로 공유 부탁드립니다. dohyun8032@gmail.com

  • python
  • 코딩-테스트
  • 알고리즘
김도현 댓글 2 좋아요 0 조회수 157

4.4.3 슬리피지가 들어간 백테스팅 실습 코드 질문

미해결

파이썬 주식 매매 봇으로 주식시장 자동사냥하기

안녕하세요 실습 코드에서 반복문 내 전략 구현 부분에 강의 설명과 코드 내용이 일치하지 않는 것 같아서 질문 드립니다. 종가가 3일 최저가인지 여부를 체크하는 코드에서 rolling 함수인자를 3으로 맞춰서 새로 컬럼을 추가한 뒤, 종가를 data['3d_min']과 비교해줘야하는게 맞을까요? 강의 코드는 if data['close] == data['5d_min'] 적혀 있어서 질문드립니다.

  • python
  • pandas
  • 차트분석
  • 퀀트
  • trading
Jimmy 댓글 1 좋아요 0 조회수 218

SignupModal 타입 에러에 관해서 질문드립니다!

해결됨

Next + React Query로 SNS 서비스 만들기

SignupModal 에서 에러가 하나 나오는데 관련해서 질문드립니다. S2322: Type '(formData: FormData) =&gt; Promise&lt;{ message: string; } | undefined&gt;' is not assignable to type 'NonNullable&lt;string | ((formData: FormData) =&gt; void | Promise&lt;void&gt;) | undefined&gt;'.<br/>Type '(formData: FormData) =&gt; Promise&lt;{ message: string; } | undefined&gt;' is not assignable to type '(formData: FormData) =&gt; void | Promise&lt;void&gt;'.<br/>Type 'Promise&lt;{ message: string; } | undefined&gt;' is not assignable to type 'void | Promise&lt;void&gt;'.<br/>Type 'Promise&lt;{ message: string; } | undefined&gt;' is not assignable to type 'Promise&lt;void&gt;'.<br/>Type '{ message: string; } | undefined' is not assignable to type 'void'.<br/>Type '{ message: string; }' is not assignable to type 'void'. 이런 에러가 나옵니다. formData 의 타입이 정확하지 않아서 생기는 에러 같습니다. 근데 정상적으로 실행은 됩니다. 제 꺼에선 이렇게 에러가 나오는데 제로초님 화면에서는 에러가 나오는 것 같지 않아서 어떻게 그렇게 된 것인지 궁금해서 질문 남깁니다. 감사합니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
비가싫어요 댓글 2 좋아요 0 조회수 160

섹션8: 토큰 갱신 오류

미해결

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

안녕하세요. 섹션8 진행하던 중 오류 해결에 도움이 필요해 글 남겨요.. Axios 인터셉터와 Access Token, Refresh 토큰 이용한 Access 토큰 자동 갱신 강의 내용의 코드를 강사님처럼 입력했는데 계속 오류가 납니다.. 콘솔 화면에 나타난 오류 찾아보니 TypeError: Cannot read properties of undefined (reading 'map') 오류가 serverData.dtoList 가 정의되지 않아서 발생했다고 하는데 어떻게 처리 해야 할지 모르겠어요. 참고로 강사님과 코드 내용이 같아 제 코드는 따로 첨부하지 않았어요. 필요하시면 첨부 하겠습니다.

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

10강 memo / 11강 context 하이라이트 표시 관련 문의

해결됨

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

많은 분들이 memo 기능 관련하여 문의 주신것 같은데 내용이 다 동일하네요.. 영상을 보면 변경 전/후 전부다 하이라이트가 표시가 되어서 리렌더링이 발생하는지 시각적으로 확인이 안됩니다. 문의 남기신 글에는 console.log로 확인을 하라고 하시는데.. 그럴것 같으면 강의 내용 자체가 바껴야 되는거 아닌가요?? 이 부분이랑 context 설명하는 부분도 마찬가지인데요.. context 설명할때 onUpdate, onDelete, onCreate는 useCallback을 사용하여 재생성을 방지하게 이미 설정되어있는데, 왜 memo 기능을 써야하나요?? 이 부분도 설명할때 화면상에 하이라이트가 전과 후 다 발생하는데.. 강사님 혼자 뭐 없어진거 확인하는데.. 화면상으로 전혀 확인이 안되는데.. 혼자 진행하시니 혼란스럽네요.. 확실하게 딱 표시가 나는게 아니라면 그에 대한 설명이 있어야 하지 않을까 싶습니다.

  • javascript
  • react
  • node.js
이동명 댓글 2 좋아요 0 조회수 202

pyhwpx 공식문서?

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

질문 남겨주셔서 감사합니다. 막히면 언제든 무엇이든 자주 질문 던져주세요. 수학/과학이나 알고리즘과는 달리 업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다. 다시 말씀드리지만, 질문을 자주자주 남겨주세요. 저도 최대한 빠르게 회신 드리겠습니다. 당부드릴 두 가지가 있습니다. ① 가급적 구체적으로 설명해주세요. ② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ ==================================== 안녕하세요 일코님 혹시 pyhwpx 의 클래스, 메서드 등이 정리된 별도의 문서는 없을까요? 만약 없다면 그런것들을 살펴보려면 어떻게 해야하는지 알고싶은데 다른 방법은 없을까요? 감사합니다.

  • python
  • 한컴오피스
윤병현 댓글 2 좋아요 1 조회수 437

5-2type2.ipynb 질문 (작업형2 모의문제2)

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

강의 에서 예측진행시 선형회귀 랏소 릿지의 경우 model= 하고 뒤에 해당 모델을 작성했는데 18분 22초 랜덤포레스트의 경우 regressor =RandomForestRegressor()로 정의해 놓고 밑에 학습은 model.fit으로 하고 pred도 model.fit으로 했는데 그럼 위에 있는 라쏘를 가지고 모델링을 한게 아닌가 궁금합니다. ※요약 1: 랜덤포레스트에는 모델로 안하고 왜 regressor = 으로해서 진행했는가, 요약2: model.fit으로 진행했는데, import를 랜덤포레스트로 했음에도 , 랜덤포레스트가 아닌 위에 model을 정의한 라쏘로 학습이 된것 아닌가 이렇게 궁금합니다!!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
인승 댓글 2 좋아요 1 조회수 106

npm run build 시 에러가 발생합니다.

해결됨

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

안녕하세요 강의 실습도중에 에러가 발생하였는데 원인을 찾지못해서 질문드립니다.. 1.3)실습용 백엔드 서버 세팅하기 강의에서 12:11분에 npm run seed 명령어로 시드데이터도 받아지는것을 확인했습니다. (그 이전까지의 실습도 에러없이 정상적으로 실행했습니다.) 이후에 npm run build를 실행해보니 아래와 같은 에러가 발생해서 질문드립니다. ================================= C:\study\React\onebite-books-server-main>npm run build > onebite-books-server@0.0.1 build > nest build src/book/book.service.ts:22:29 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'. 22 select: prismaExclude('Book', ['searchIndex']), ~~~~~~ src/book/book.service.ts:28:29 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'. 28 select: prismaExclude('Book', ['searchIndex']), ~~~~~~ src/book/book.service.ts:35:29 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'. 35 select: prismaExclude('Book', ['searchIndex']), ~~~~~~ src/book/book.service.ts:56:29 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'. 56 select: prismaExclude('Book', ['searchIndex']), ~~~~~~ src/book/book.service.ts:70:31 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'. 70 select: prismaExclude('Book', ['searchIndex']), ~~~~~~ src/book/book.service.ts:88:29 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'. 88 select: prismaExclude('Book', ['searchIndex']), ~~~~~~ src/util/prisma-client-exception.filter.ts:6:15 - error TS2339: Property 'PrismaClientKnownRequestError' does not exist on type 'typeof Prisma'. 6 @Catch(Prisma.PrismaClientKnownRequestError) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/util/prisma-client-exception.filter.ts:8:27 - error TS2694: Namespace '"C:/study/React/onebite-books-server-main/node_modules/.prisma/client/default".Prisma' has no exported member 'PrismaClientKnownRequestError'. 8 catch(exception: Prisma.PrismaClientKnownRequestError, host: ArgumentsHost) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Found 8 error(s).

  • react
  • typescript
  • next.js
비트올려라 댓글 3 좋아요 0 조회수 625

2유형 test_size 질문드립니다

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요 저번 달에 실기시험 보고 온 수강생입니다. 평소에는 train_test_split에서 test_size를 0.2로 했는데 시험장에서 무슨 바람이 분 건지 test_size를 0.1로 하고 왔습니다. 이것 때문에 점수가 10점이 깎일 수도 있을까요? 이외에는 랜덤포레스트 분류 모델 정석 코드 그대로 실행, 제출하고 왔습니다. 2유형만 40점 나오면 넉넉하게 합격일 것 같은데 괜히 불안해지네요..

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
arginine 댓글 2 좋아요 0 조회수 96

이번 section에서 소소한 의문점 질문 남깁니다!

해결됨

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

안녕하세요! 늘 강의 잘 듣고 있습니다 (__) 이번 section에서 소소한 의문점이 하나 남아서 질문 글 남깁니다. 먼저 강의에서 작성해주신 아래의 코드 블럭 말인데요, // mount가 됐는지 확인 하는 ref 변수 const isMount = useRef(false); // 1. 마운트 : 탄생 useEffect(() => { console.log("mount"); }, []); // 2. 업데이트 : 변화, 리렌더링 useEffect(() => { if (!isMount.current) { isMount.current = true; return; } console.log("update!"); }); isMount ref 변수가 현재 컴포넌트의 마운트 여부를 체크하는 변수로 만들어졌는데, 그렇다면 마운트 시점에서 true로 갱신해줘야하는게 아닌가 싶어서요. 기본적으로 컴포넌트가 마운트 되면 컴포넌트가 만들어졌다, 즉 변화 했다라고도 할 수 있는거니, update 로직도 같이 실행 되어야 하는게 맞지 않나 라는 의문이 들었습니다. 위 예시는 제가 이해한대로 해석하면 "컴포넌트가 마운트가 되었지만 처음 시점의 update 로직은 패스한다" 라고 생각되는 느낌이라서 살짝 애매하게 느껴집니다. 그래서 아래와 같이 // 1. 마운트 : 탄생 useEffect(() => { console.log("mount"); // mount 시점에서 실행 될 프로세스 start // mount 시점에서 실행 될 프로세스 end // 모두 마무리시 if (!isMount.current) { isMount.current = true; } }, []); // 2. 업데이트 : 변화, 리렌더링 useEffect(() => { // update 프로세스 진행 console.log("update!"); }); 마운트 시점에서 동작하는 프로세스가 마무리 된 후 isMount를 갱신하고, 그 다음 update 시점은 이미 마운트가 되어야지만 동작하는거니 별도의 mount 체크 필요없이 update 프로세스를 작성하면 되지 않나 싶었습니다. 물론 이렇게 되면 isMount 자체를 현 시점에서 사용 할 이유가 없으니 애매해지긴 하겠지만요.. 글 재주가 없어서 질문이 좀 난해해서 죄송합니다 ㅠㅠ 강사님께서는 이에 대해 어떻게 생각하시는지 질문 드립니다!

  • react
흔들거북이 댓글 1 좋아요 0 조회수 237

10.3강 memo(Header) 리렌더링 질문

미해결

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

안녕하세요. 컴포넌트 최적화 하는 부분에서 질문있습니다. 10.3강에서 대략 5분 40초쯤에 Header 컴포넌트에 memo 기능을 사용해서 최적화 한 뒤에, 체크박스를 클릭하면서 헤더 컴포넌트가 리렌더링이 일어났는지에 대해 확인하는 부분이 있습니다. 질문사항은 memo 기능을 통해 최적화를 하던 안하던 개발자 도구에서 Header 컴포넌트가 항상 리렌더링이 일어나는것 같은데 어떻게된걸까요? 헤더부분이 계속 노란색으로 뜨면 리렌더링이 일어났다는걸로 보이는데 강의 영상에서도 다른 컴포넌트와 동일하게 노란색으로 변경됩니다. 강의에서 TodoItem을 커스텀한 부분은 강의대로 적용됐습니다.(이부분은 리렌더링이 발생하지 않습니다.)

  • javascript
  • react
  • node.js
wonjeong Lee 댓글 3 좋아요 0 조회수 187

인기 태그

인프런 TOP Writers

주간 인기글