그랩 선생님, 좋은 강의 만들어 주셔서 잘 듣고 있습니다. 그런데 아무리 해도 에러가 나는 것을 해결하지 못하고 있어 2주 이상 진도를 나가지 못하고 있어 부득이하게 질문을 여러번 올리게 됩니다. 현재 [그랩마켓] React로 웹 개발하기 -2 듣고 있는데요 , 1. 그랩 선생님 소스 코드와 동일 하게 아래 작성한 index.js 소스 첨부 하는데요, 실행 하면 , 1초 동안 잠깐 판매되는 상품들 이미지 없이 전체 페이지 뜨다 바로 아래 첨부한 그림과 같이 에러가 발생 합니다. 이 에러는 어떻게 해결 할 수 있을까요? -------- 2. index.js 소스 아래에 작성 첨부 합니다. import './index.css'; import axios from "axios"; import React from 'react'; function MainPage(){ const [products, setProducts]=React.useState([]); React.useEffect( function(){ axios.get("이곳에는 제 mock 목 서버 주소를 넣었습니다/products") .then(function(result){ const products=result.data.products; setProducts(products); }).catch(function(error){ console.error("에러 발생:",error); }); },[]); return ( <div> <div id="header"> <div id="header-area"> <img src="../images/icons/logo.png" /> </div> </div> <div id="body"> <div id="banner"> <img src="../images/banners/banner1.png" /> </div> <h1>판매되는 상품들</h1> <div id="product-list"> { products.map(function(product, index){ return ( <div className="product-card"> <div> <img className="product-img" src={product.imageUrl} /> </div> <div className="product-contents"> <span className="product-name">{product.name} </span> <span className="product-price">{product.price}원 </span> <span className="product-seller"> <img className="product-avatar" src="../images/icons/avatar.png" /> <span>{product.seller}</span> </span> </div> </div> ); }) } </div> </div> <div id="footer"></div> </div> ); } export default MainPage; 그리고, 추가적으로 아래 그랩님 답변 본 뒤 다시 시도해 본 후 질문이 있어 추가적으로 글을 적습니다. 현재 postman을 실행하고요, 제 해당 목 mock 서버 주소를 입력 후 끝에 /products까지 하면요, 아래와 첨부한 사진과 같이 잘 데이터를 받아오는 것 같은데요, 위에 에러 화면이 그대로 표시되어 어떻게 해결해야 하는지 방법을 모르겠습니다. 조금 구체적으로 어떻게 해결해야 하는지 단계별로 친절한 설명 부탁 드립니다 위에는 mock 서버인 postman(포스트맨) 화면이고요, 아래는 크롬 브라우저 에러 메시지를 첨부합니다. 참고> app.js 소스 첨부합니다. import logo from './logo.svg'; import './App.css'; import MainPage from "./main/index.js" function App() { return ( <div> <MainPage /> </div> ); } export default App; 또한 만약 그랩님께서 제 소스를 보시고 수정하여 에러가 해결된 완성된 index.js 소스가 있다면요, 최종 완성 된 수십 줄의 소스 코드 를 아래 답변 댓글에 길더라도 다 첨부해주시면 완성된 소스 코드를 그대로 복사하여 vs code에 붙여 넣기 하고 싶은데요 , 아래 답변 글에 남겨주시면 감사하겠습니다. ------------------------------------------------------------------------------------------------- 그리고, 아래 글에 나와 있는 답변데로, TypeError: Cannot read properties of undefined (reading ‘map’) 해결 방법 서버 데이터 문제로 인한 map 함수 에러 고치기 React 데이터 바인딩과 undefined 에러 처리 위 해결책의 코멘트와 답변 대로 수정해 보아도 에러가 해결 되지 않았습니다. 어떻게 해결 해야 하는지요? 빠른 답변 부탁 드립니다.
안녕하세요. 강의 잘 듣고 있습니다. context 를 사용하기 전 코드에서 export default memo(Editor); Editor 컴포넌트에도 memo 를 사용해서 TodoItem 의 수정/삭제로 인해 계속 리렌더링되는 것을 막는 최적화를 했었는데요. context를 사용하고 나니까 Editor 컴포넌트의 최적화가 풀리는 이유가 궁금합니다. useCallback 과 useMemo 를 사용해서 함수를 App 컴포넌트가 마운트 될 때 한번만 생성하고 3개의 함수를 묶은 객체도 다시 생성되지 않도록 만들었는데, Editor 컴포넌트는 컨텍스트에서 onCreate 함수만 받아서 사용하고 있는데, 왜 리렌더링이 발생하나요? 챗지피티에 질문을 했더니, " props 가 없는 상태에서 useContext 만 쓰고 있으면 memo 는 props 비교를 하지 못해서 무조건 리렌더링 발생한다" 라고 하는데 맞는 말인가요? 맞는 말이라면 설명 좀 부탁드립니다.ㅠㅠ
안녕하세요 리액트 설치 에러에 대해 질문이 있습니다. 원래 vite로 리액트를 설치해서 잘 사용하고 있었는데 어제 새로운 프로젝트를 할려고 vite로 리액트를 설치했고 npm i 명령어로 node_modules를 받은 후 npm run dev로 실행을 하니 이미지처럼 오류가 계속 나더라구요. 그래서 저 에러에 대해 이것저것 찾아보니 node버전 문제라고 나오는데 현재 버전은 v20.11.1 인데 뭐가 문제인건지 모르겠습니다.
선생님 안녕하세요 무료강의 들으면서 말도 안 되는 구성에 말도 안 되는 가격으로 또 처음 출시시 할인까지 해주셔서 너무 감사합니다. 이전 풀스텍 강의 바로 결제했고, 다른거 하면서 무료강의부터 듣고 학습중인데 이번에 나온 리액트 강의도 당연 구매해서 학습할 예정인데, 이 전에강의는 수강기간이 무제한으로 나와있던데 지금 리액트 포함 강의는 36개월만 들을수 있는건가요? 물론 몇회독을 할수있는 시간이긴한데, 전에 강의랑 비교해서 이 강의는 수강기간이 무제한이 아니라 문의글 남겨봅니다. 항상 감사합니다.
안녕하세요 강사님, 강의 잘 듣고 있습니다. 개발 병행하면서 강의 수강 중인데, 끝까지 다 듣지 못한 점 미리 양해드립니다. LangGraph 공식 문서를 보면, Graph의 상태 스키마를 정의할 때 Pydantic의 BaseModel 보다 TypedDict 나 dataclass 를 사용하는 걸 더 권장하는 것처럼 보입니다. 강사님께서도 강의에서 주로 TypedDict 를 쓰시는 걸 확인했습니다. 그런데 개발을 하다 보니, TypedDict 는 런타임 유효성 검사나 구조화 파싱 기능이 없어서 LLM 응답이 해당 스키마에 맞게 출력되었는지 보장할 수 없는 점 이 불편하게 느껴졌습니다. 예를 들어, PydanticOutputParser(pydantic_object=MyModel) 처럼 출력 형식을 강제할 수 있는 기능은 TypedDict 에는 없어서, 결국 출력 파싱이 명확하지 않거나 "```json ... ```" 처럼 마크다운이 붙는 문제도 자주 발생합니다. 물론 TypedDict 는 속도 면에서 이점이 있고 LangGraph state로는 잘 어울린다는 것도 알고 있지만, 이런 이유 때문에 결국 스키마를 TypedDict 와 Pydantic 두 번 정의해야 하는 상황 이 종종 생깁니다. 그래서 질문드리고 싶은 건 다음과 같습니다: 하나의 스키마 정의만으로 상태 관리와 LLM 출력 파싱까지 모두 깔끔하게 처리하는 더 좋은 방법은 없을까요? 혹은 실무에서는 이런 문제를 보통 어떻게 해결하고 계신지도 궁금합니다. 감사합니다!
안녕하세요. 강사님, n8n을 self-hosted로 설치하여 잘 사용하고 있는데요, 버전 업그레이드 과정에 문제가 있어 문의 드립니다. 현재 버전이 1.95.3 이고, docker로 설치를 했습니다. 그런데, 상위 버전으로 업그레이드를 하려고 docker 이미지를 변경했는데, 아래와 같은 에러가 발생하고 더 n8n이 실행되지 않습니다. 2025-06-24T08:48:17.495Z | error | Last session crashed 2025-06-24T08:48:27.501Z | info | Initializing n8n process 2025-06-24T08:48:27.623Z | debug | Lazy-loading nodes and credentials from n8n-nodes-base {"nodes":481,"credentials":384} 2025-06-24T08:48:27.634Z | debug | Lazy-loading nodes and credentials from @n8n/n8n-nodes-langchain {"nodes":93,"credentials":21} 상위 어떠한 버전으로 시도해도 동일한 에러가 납니다. 구글링을 해보면 n8n/n8n-nodes-langchain 노드 때문이라고 하는데, 해결이 안되네요 ㅠㅠ 혹시 동일한 경험이 있으신지, 조언 좀 부탁드립니다~!
어떤 강의에 대한 질문인지 자세하게 알려주시면 답변을 드리는데 도움이 됩니다. 스크린샷 윈도우키 + 쉬프트키 + S(윈도우) 을 자세히 첨부하시면 답변 드리는데 많은 도움이 됩니다. 동영상 재생 관련 같은 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요. n8n 강의 구매하고, 셀프호스팅을 하기 위해 n100 미니pc도 구매했습니다. 구매 전 질문에도 질의했던 내용을 한 번 더 확인하고 docker desktop을 설치하려고 합니다. 안내해주신대로 windows 11 pro로 업그레이드했는데, docker desktop의 권장 설치가 wsl2 라고 나옵니다. 각종 LLM에 질의를 해도 성능, 안정성 등 공통적으로 wsl2로 설치하라고 안내합니다. 그럼에도 강사님께서 하는 방식을 따라 가려면 hyper-v로 docker 를 설치하는 것을 권장하시나요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
안녕하세요 코팩님 강의 정말 유용하게 듣고 있습니다 강의를 완강하고 난뒤 코드를 분석하고 있는 중 이상하다고 느낀 부분이 있어 질문드립니다 @Post('login/email') @IsPublic() @UseGuards(BasicTokenGuard) postLoginEmail( @Headers('authorization') rawToken: string, ) { // email:password -> base64 // asdkljoijzxlxck;vjaosi;dfjawe;lkrj -> email:password const token = this.authService.extractTokenFromHeader(rawToken, false); const credentials = this.authService.decodeBasicToken(token); return this.authService.loginWithEmail(credentials); } 이 부분에서 이미 Guards(BasicTokenGuard)가 사용자를 식별하고 심지어 인증까지 맡아 요청 부분에 user 정보까지 넣어둡니다. 그러면 이미 BasicTokenGuard가 로그인의 역할을 다 했는데 왜 한번 더 검증하는지 궁금해서 질문 남깁니다. 단순히 Guards의 예제를 위해서인지, 아니면 다른 이유가 있는지 설명해 주시면 정말 감사하겠습니다
안녕하세요. 좋은 강의 감사합니다. 캐싱 관련해서 이해가 잘 안 되는 부분이 있어 질문드립니다. 강의에서는 modules[moduleId][0].call 의 첫 번째 인자로 module.exports 를 넘겨주는 것이 캐싱과 관련 있다고 설명해주셨는데요. 제가 코드를 보기엔 module.exports 가 thisArg 로 전달되긴 하지만, 실질적인 캐싱은 함수 내부에서 세 번째 인자인 module 객체를 직접 수정하면서 ( module.exports = { add }; ) 이뤄지는 것으로 보입니다. 즉, thisArg 로 전달된 module.exports 는 실제로 의미 있는 쓰임새가 없고, 캐싱은 module.exports 를 직접 설정함으로써 발생하는 것 아닌가 싶은데, 혹시 제가 잘못 이해한 걸까요?