묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
컴포넌트 리랜더
리액트를 이용하는 이유가 virtual dom으로 dom트리를 변경하였을 때의 성능 향상 이점이 있어서 사용한다고 하셨는데 여러 컴포넌트를 만들고 하나의 컴포넌트의 자식으로 넣고 리랜더하면 성능향상은 그렇게 없지 않나요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
useEffect 비동기 관련 질문
비동기가 되기 때문에 콘솔로그를 쓰면 안된다에대한 질문입니다. 위(setCount 내부)에는 count + value를 했고아래 콘솔로그는 count로 예시를 보여주셨습니다.궁금한건아래 콘솔로그에도 +value를 달면 렌더링 결과는 똑같이 나오는거 아닌가요?물론 실질적인 값은 동일하지 않더라도 이렇게 되면 렌더링 되는 결과는 같은거 아닌가요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
node.js 설치시 에러
node.js 설치 명령어를 실행하면 odesource.gpg: command not foundbash: /: Is a directorydeb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro mainbash: /: Is a directoryE: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (Component)E: The list of sources could not be read.E: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (Component)E: The list of sources could not be read. 이렇게 뜨면서 설치가 되지 않는 것 같습니다. root@ip-172-31-34-207:/home/ubuntu# node -vCommand 'node' not found, but can be installed with:apt install nodejs
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
MODULE_NOT_FOUND 오류
code: 'MODULE_NOT_FOUND', requireStack: [ 'C:\\Users\\CompanyWebsite\\backend\\index.js' ] } Node.js v22.17.0 [nodemon] app crashed - waiting for file changes before starting... app.use("/api/auth", userRoute); 라우트 구성 후 thunder client로 apt 테스트 시 발생하는 오류입니다.
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
그랩님, 해결되지 않은 에러 메시지 [꼭] 답변 부탁 드립니다.
그랩 선생님, 좋은 강의 만들어 주셔서 잘 듣고 있습니다.그런데 아무리 해도 에러가 나는 것을 해결하지 못하고 있어 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 에러 처리위 해결책의 코멘트와 답변 대로 수정해 보아도 에러가 해결 되지 않았습니다.어떻게 해결 해야 하는지요? 빠른 답변 부탁 드립니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
context를 사용하니 Editor 컴포넌트 최적화가 풀리는 이유
안녕하세요. 강의 잘 듣고 있습니다.context 를 사용하기 전 코드에서 export default memo(Editor);Editor 컴포넌트에도 memo 를 사용해서 TodoItem의 수정/삭제로 인해 계속 리렌더링되는 것을 막는 최적화를 했었는데요. context를 사용하고 나니까 Editor 컴포넌트의 최적화가 풀리는 이유가 궁금합니다.useCallback과 useMemo를 사용해서 함수를 App 컴포넌트가 마운트 될 때 한번만 생성하고 3개의 함수를 묶은 객체도 다시 생성되지 않도록 만들었는데, Editor 컴포넌트는 컨텍스트에서 onCreate 함수만 받아서 사용하고 있는데, 왜 리렌더링이 발생하나요?챗지피티에 질문을 했더니,"props가 없는 상태에서 useContext만 쓰고 있으면 memo는 props 비교를 하지 못해서 무조건 리렌더링 발생한다" 라고 하는데맞는 말인가요?맞는 말이라면 설명 좀 부탁드립니다.ㅠㅠ
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
이미지 파일의 경로 설정에 대한 질문입니다.
src 폴더 안에 pages폴더와 assets폴더가 있는데 왜 경로를 ../../assets 이렇게 잡아야 하는 거죠? .. 을 두 번 쓰면 두 번 위로 올라가는 거니까 src 폴더 밖에서 assets 폴더를 찾겠다는 거 아닌가요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
vite 리액트 설치에 대해 질문있습니다.
안녕하세요 리액트 설치 에러에 대해 질문이 있습니다. 원래 vite로 리액트를 설치해서 잘 사용하고 있었는데 어제 새로운 프로젝트를 할려고 vite로 리액트를 설치했고 npm i 명령어로 node_modules를 받은 후 npm run dev로 실행을 하니 이미지처럼 오류가 계속 나더라구요. 그래서 저 에러에 대해 이것저것 찾아보니 node버전 문제라고 나오는데 현재 버전은 v20.11.1 인데 뭐가 문제인건지 모르겠습니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
props 에 불이 안켜지죠...?
불이 왜 안켜지는거죠...?
-
해결됨프론트엔드 빌드 시스템 완벽 가이드 - Part.1: 모듈 시스템
캐싱 단계 질문
안녕하세요. 좋은 강의 감사합니다.캐싱 관련해서 이해가 잘 안 되는 부분이 있어 질문드립니다.강의에서는 modules[moduleId][0].call의 첫 번째 인자로 module.exports를 넘겨주는 것이 캐싱과 관련 있다고 설명해주셨는데요.제가 코드를 보기엔 module.exports가 thisArg로 전달되긴 하지만, 실질적인 캐싱은 함수 내부에서 세 번째 인자인 module 객체를 직접 수정하면서 (module.exports = { add };) 이뤄지는 것으로 보입니다.즉, thisArg로 전달된 module.exports는 실제로 의미 있는 쓰임새가 없고, 캐싱은 module.exports를 직접 설정함으로써 발생하는 것 아닌가 싶은데, 혹시 제가 잘못 이해한 걸까요?
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
배포 후 모바일에서 접속하면 게시판 게시글이 안보이는 문제
안녕하세요. 먼저 강의 잘 들었습니다. 다름이 아니라 배포 후 웹으로는 업무게시판의 게시글이 잘 보이는데 모바일로 접속 시에는 게시글이 없는 것으로 나옵니다.웹(개발자 도구로 모바일 디바이스 버전으로 봐도 잘 보입니다) 모바일 이유가 뭔지 궁금합니다~
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
수정하기 구현 중 작성완료 버튼을 누르면 아무 리스트도 뜨지 않습니다.
제목 그대로 수정하기 기능 구현 중 작성완료 버튼을 누르면 리스트에 나와야 하는데 위의 그림처럼 빈 리스트가 나옵니다. 계속 강의와 코드를 번갈아가면서 보는데 오류를 잡기 쉽지 않습니다. 아래는 실습했던 소스코드입니다. https://github.com/PARKSUNJUNG/section12 무엇이 문제일까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
React.memo 컴포넌트 렌더링 최적화 미션 day16 질문
안녕하세요. 강사님.react day 16 미션 contactEditor onChange 이벤트 발생 관련 렌더링 질문이 있습니다.아래와 같이 ContactList에도 React.memo 내장함수를 적용했음에도 불구하고 contactEditor에서 텍스트를 입력하면 같이 렌더링 되는 이유를 모르겠습니다.const ContactList = ({contacts, onDelete}) => { return ( <div className="ContactList"> <div className="title">Contact List</div> {contacts.map((contact) => { return <ContactItem key={contact.id} contact={contact} onDelete={onDelete}/>; })} </div> ) } export default memo(ContactList);const ContactItem = ({contact, onDelete}) => { const onDeleteButtion = () => { onDelete(contact.id); } return ( <div className="ContactItem"> <div className="name">{contact.name}</div> <div className="email">{contact.email}</div> <button onClick={onDeleteButtion} name="remove" >🗑️ Remove</button> </div> ) } export default memo(ContactItem);
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
깃허브 소스는 어떻게 받을 수 있나요?
깃허브 소스는 어떻게 받을 수 있을까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
List컴포넌트에서 필터링 하는 것과 App 컴포넌트에서 필터링하는 것의 차이
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)제목을 구체적으로 작성해 주세요✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다.⛔️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다.깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요더 빠른 답변이 가능합니다! 안녕하세요. 강사님! 8.5) Read - 투두리스트 렌더링하기 강의에서 질문이 있습니다. 검색어로 필터링하는 기능이 List.jsx에 되어있는데요, 이 부분 관련해서 질문이 있습니다. 필터링이 App.jsx에서 필터링 하는 것과 어떤 차이가 있나요??어떤 이유에서 List.jsx에서 필터링하는지도 궁금합니다. (원본 데이터를 건들지않기 위함(?)일까요?)그리고 어떤 컴포넌트에서 필터링 하더라도 리렌더링이 발생하는건가요?감사합니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
section 8-2 css 선언 문의
안녕하세요. 강사님.section 8-2 투두리스트 프로젝트 UI 구현하기에서css 스타일에 대해서 질문이 있습니다..List > input 과같이 중간에 > 연산이 있는 경우와 없는 경우의 차이는 무엇인가요?미션 day15 ContactEditor css 스타일에서.input_wrapper className이 이미 적용되어 있는데 아래와 같이 부모 속성인 .ContactEditor를 명시할 필요가 있는지도 궁금합니다..ContactEditor .input_wrapper
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈 실습하기 질문드립니다.
실습 중에 댓글 작성하려고 하는데 오류가 발생해서 오류 로그를 보다가 sqlMessage 로 "Unknown column 'commenter' in 'field list'", 라는 문구를 봤습니다. 따로 commenter 라는 필드를 만드신건 못본거같은데 제가 강의를 흘려 들은건지 잘 모르겠습니다. 근데 이상한건, 맨 처음에 실행하고 댓글을 작성할땐 댓글이 작성이 되고, MySQL 에 들어가서 comment 테이블을 확인해보면 댓글이 들어가긴 했습니다.근데 두번째 댓글 작성시도부터 오류가 발생했습니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
안녕하세요. 수업 중 막히는 것이 있어서 질문 글 올립니다.수업을 다 따라가고 연결테스트를 하려고 했는데,이렇게 에러가 생겼습니다.분명히 config폴더가 있고 그안에 config.json 파일이 존재하는데 없다고 하길래, 일단 npx sequelize init 을 했더니 이번에는 config 파일이 이미 존재한다는 소리를 하길래 --force 를 하긴했습니다.그런 다음에 다시 실행하니까,이렇게 오류메시지가 생겼어요.강의에는 models 폴더에 user라는 파일을 만들라는 건 듣도보도 못했는데, 뭐가 잘못된건지 잘 모르겠습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Select 태그의 옵션 값중에 선택전에 보여지는 첫 번째 옵션값을 디폴트로 가져오는 방법
안녕하세요. 강사님.5.8) State로 사용자 입력 관리하기1에서 Select태그를 선택하지 않은 상태에서 onSubmit 이벤트 핸들러 호출시 웹 페이지에 보여지는 첫 번째 옵션 값을 디폴트 값으로 가져오는 방법이 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
10-01 Entity TypeOrmModule.forRoot 에 entities
@Module({ imports: [ BoardsModule, // // ProductModule, // UsersModule, ConfigModule.forRoot(), // GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), TypeOrmModule.forRoot({ type: process.env.DATABASE_TYPE as 'mysql', host: process.env.DATABASE_HOST, port: Number(process.env.DATABASE_PORT), username: process.env.DATABASE_USERNAME, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_DATABASE, entities: [__dirname + '/apis/**/*.entity.*'], synchronize: true, logging: true, }), ], }) export class AppModule {} entity 파일들에서 각 entity 파일에 import 할때 절대경로로 입력하면, 오류가나는데 해결방법을 모르겠습니다.상대경로로 작성시 문제가 해결되었는데 이유를 모르겠습니다.