묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
11.3) Context 분리하기 강의에서 질문이에요.
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 계층 구조 화면에서 TodoStateContext.Provider 컴포넌트와 TodoDispatchContext.Provider는 동등한 위치에 있는 것인가요? 아니면 화살표대로 TodoStateContext.Provider 컴포넌트의 자식 컴포넌트가 TodoDispatchContext.Provider 컴포넌트 인건가요?
-
미해결기획자님 이 정도 웹 개발은 배워보면 어떨까요? [이론+실습]
HomePage.vue에 작성한 내용이 화면엔 보이지 않습니다.
질문은 자세하게 적어주실 수록 좋습니다. 어느 부분을 수강중이신지 -> bmi 계산기 프로그램 완성하기 내가 어떻게 했는데, 어떤 결과가 나오기를 기대했는데, 다른 결과가 나왔는지 -> 노션의 코드들을 다 복사해서 붙여넣기 했는데 homepage 영역이 안나옵니다작성하신 코드 및 오류 스크린샷 을 함께 첨부해주시면 좋아요!
-
미해결기획자님 이 정도 웹 개발은 배워보면 어떨까요? [이론+실습]
VUE CLI 설치 프로젝트 생성이 안됩니다
Vue CLI v5.0.8✨ Creating project in /Users/yeji/Desktop/2-17__/myfirestvuewapp.⚙ Installing CLI plugins. This might take a while...npm error code EACCESnpm error syscall opennpm error path /Users/yeji/.npm/_cacache/tmp/e7f990dfnpm error errno EACCESnpm errornpm error Your cache folder contains root-owned files, due to a bug innpm error previous versions of npm which has since been addressed.npm errornpm error To permanently fix this problem, please run:npm error sudo chown -R 501:20 "/Users/yeji/.npm"npm error Log files were not written due to an error writing to the directory: /Users/yeji/.npm/_logsnpm error You can rerun the command with --loglevel=verbose to see the logs in your terminalERROR Error: command failed: npm install --loglevel error --legacy-peer-depsError: command failed: npm install --loglevel error --legacy-peer-depsat ChildProcess.<anonymous> (/usr/local/lib/node_modules/@vue/cli/lib/util/executeCommand.js:138:16)at ChildProcess.emit (node:events:518:28)at maybeClose (node:internal/child_process:1104:16)at ChildProcess._handle.onexit (node:internal/child_process:304:5)yeji@gim-yejiui-MacBookPro 2-17__ % sudo npm i -g @vue/cli;2A
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
emit() broadcast.emit() 질문있습니다
두 함수의 차이는 해당 메시지를 발행하는 client 를 포함하고 않하고로 알고 있습니다. 그럴때 socket.emit('user_conneted', username);다음 코드를 통해서도 상대방에게 보여진다고 생각했는데 실제로는 메시지 발행 client 의 console에만 나오는 것을 확인했습니다. 왜 상대방쪽의 console에서는 메시지가 보이지 않는지 궁금합니다
-
미해결[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
삭제하기 질문 드립니다.
const onClickDelete = () => { if (window.confirm("일기를 정말 삭제할까요? 다시 복구되지 않아요!")) { onDelete(params.id); nav("/", { replace: true }); } }; useDiary.jsx 커스텀 훅 작업하고 나서,삭제하기 하면 '존재하지 않는 일기입니다' alert이 발생합니다. data가 변화가 되어서 그런거 같은데.. 어떻게 해결하면 좋을까요? 삭제 후, 리렌더링 되면서 nav("/") 되기 전에, const curDiaryItem = useDiary(params.id); 커스텀훅에서 체크가 되는거 같은데, 뭘 확인을 해봐야할까요?ㅎ const useDiary = (id) => { const nav = useNavigate(); const data = useContext(DiaryStateContext); const [curDiaryItem, setCurDiaryItem] = useState(); useEffect(() => { const currentDiaryItem = data.find( (item) => String(item.id) === String(id) ); if (!currentDiaryItem) { window.alert("존재하지 않는 일기입니다."); nav("/", { replace: true }); } setCurDiaryItem(currentDiaryItem); }, [id, data]); return curDiaryItem; }; 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
리눅스 노드 설치시 패키지
build-essential이면 충분한가요?libvips-devopenssl-dev / libssl-dev 위 두개는 필요없나요?
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
터미널에서 node.js 를 실행했을 경우에 터미널에 나타나지 않아요.
해당 사진과 같이 index.js 가 실행되지 않습니다. node 버전을 확인 했을 경우에는 v22.11.0 로 정상적으로 설치된 것으로 나오는데... 어떤 부분이 문제일까요? 강의시간 5분 28초 입니다.
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
jsx와 js를 구분해서 사용하는 이유
섹션 13강의 중 "폰트, 이미지, 레이아웃 설정하기" 강의를 보면,이미지 가져오는 것을 컴포넌트화 하는 부분이 나옵니다.util폴더 아래에 get-emotion- image라는 파일을 만드는 부분인데,해당 파일을 jsx가 아닌 js로 만드는 이유가 궁금합니다.제가 해당 파일을 jsx로 해도 정상 작동이 되던데, 리액트에서 js로 하신 이유가 뭘까요?문의드립니다.
-
미해결[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mydocker
mongoose.connect("mongodb://my-database:27017/mydocker").then(()=> console.log("db접속성공")).catch((err)=>console.log("db접속실패",err))저는 이 부분이 터미널에 db접속이나 db접속 실패가 터미널창에 안 떠요. 터미널창에 왜 안뜰까요??우분투라서 sudo docker-compose build sudo docker-compose up 하면 선생님은 db접속유무가 뜨는데 저는 터미널창에 안 떠요그리고 mydocker이부분은 docker-compass에 들어가면 선생님은 databases에 admin config local 에네랑 같이 있던데 강의에서 언제 생성을 했었나요?
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
이전강좌 수강요청
안녕하세요. 리액트 강좌를 아주 잘듣고 있는 학생입니다.죄송하지만 이전 강좌를 다시 볼수 없을까요? 글내용을 수정하는 부분이 막혀서요 ㅠㅠ
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(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;
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
localhost 에서 연결을 거부했습니다.
프록시 설정하고 concurrently 설정후 npm run dev 를 하였는데 연결을 거부했습니다 뜹니다. ㅜㅜ
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
자막 오류 관련
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.5.3 JSX로 UI 표현하기 편 수강 중, 강의 초반부에 자막 오류가 있는 것 같아 문의 드립니다. 감사합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
포스트맨에서 true가 안떠요
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
isLoading 관련 질문
안녕하세요 선생님. 강의 너무 잘 듣고 있습니다 !!스토리지 강의 끝 부분 듣다가 질문이 생겨 글 남깁니다. if (isLoading) { return <div>데이터 로딩중입니다...</div>; }위와 같이 작성된 if문은 isLoading이 false가 될 때까지 기다려주나요?if문이 실행되었을 당시에 isLoading이 true여서 데이터로딩중이라는 페이지를 반환한 후에도 여전히 로딩이 끝나지 않았다면,아래 컴포넌트들을 렌더링하는 리턴문을 실행하였을 때 에러가 발생하지는 않나요? 벌써 강의 막바지네요. 선생님의 좋은 강의 덕분에 여기까지 올 수 있었던 것 같습니다.감사합니다 :) 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
왜 안되나요
-
미해결[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
section 12 폴더를 만드는 부분이 강의에 나와있지 않아요
section 12 폴더 내의 파일 구성은 어떻게 해야 하나요?
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
원시타입 vs 객체타입 부분 질문있습니다.
안녕하세요 원시타입과 객체타입 강의를 보다가 궁금한점이 생겨 질문을 드립니다. let p1 = 1;let p2 = p1;p2 = 2;이렇게 1에서 2로 재할당을 하면 메모리상에는 원래 1이 있었는데 새로운 메모리에 2가 추가가 되면서 해당 공간을 가리키는데 메모리 공간에 저장되어 있던 1은 수정되지 않는다...라고 이해하고 있습니다. 그럼 여기서 1은 수정만 되지 않을 뿐 없어지지 않고 그대로 1이 저장이 되어있는건가요? 그리고 객체타입에서는 값을 변경하면 원본이 바로 변경되므로 안전하게 ... 스프레드로 값을 복사해서 사용한다라는 설명이 맞나요?
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Async와 await에 대해 질문있습니다.
안녕하세요 강의 너무 잘 보고 있습니다. 강의를 듣다가 Async와 await에 대해 질문이 있습니다.api요청과 같이 시간이 걸리는 작업은 비동기로 이루어지기 때문에 다른 작업이 먼저 이루어지고 그다음 데이터가 불러오면 그 작업을 해야되므로 비동기로 만들어 주기 위해 async를 붙인다 까지는 이해가 되는데 await은 비동기 작업까지 다 처리되고 결과값을 얻기 위해 사용이 되는건가요? 마지막으로 async는 함수 앞에 작성이 되는데 await은 어디에 작성이 되는것인지 궁금합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
몽고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 }