묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
윈도우에서 Node js를 설치하고 싶어요
윈도우 말고는 익숙치 않아윈도우에서 node js를 설치하고 싶어요그런데 윈도우에서 원활하게 사용하고 싶으면 먼저 Powershell 에서 WSL2를 먼저 설치하고 node js를 사용하라는데 이렇게 하면 우분트나 맥처럼 원활하게 사용 가능한가요?
-
해결됨"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
addToFile function에서 path를 사용해 새로운 파일을 생성
let previousContent = ""; const addToFile = async (path, content) => { if (previousContent === content) return; // 중복 실행 방지를 위한 거름망 if(!(await fileExist(path))) return; // file이 존재하는지 않하는 지 체크 try { await appendFile(path, content); previousContent = content; console.log(`✅ ${content} is successfully appended to ${path}`); } catch (error) { if (error.code === "ENOENT") { console.log(`⚠️ ${path} does not exist`); } console.error(`❌ 에러 발생: ${error.message}`); } };catch error 부분에서 에러 코드로 ENOENT를 사용해서 path가 존재하지 않는 경우를 잡아내는 코드를 작성했지만, 실제로 실행했을 때 appendFile 자체가 이미 새로운 파일을 생성해내는데 성공하였기 때문에 error로 연결되지 않았습니다.중복 콘텐츠 방지를 위한 if 밑에 또 다른 if로 fileExist를 사용해서 early return을 하는 이런 방식으로 처리를 하는 게 맞을까요? 아니면 제가 놓친 다른 catch error 가 있는 걸까요?
-
해결됨"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
[46강] EventEmitter를 활용한 10가지 패턴 중 플러그인 아키텍처
사례 2번 예시에서 Plugin 클래스도 EventEmitter를 상속받는 이유가 궁금합니다. Application의 인스턴스를 주입받아 해당 인스턴스를 내부에서 활용하고 있는데 Plugin 클래스 자체도 EventEmitter를 상속받는 이유가 궁금합니다.
-
해결됨"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
강의가 누락된것 같습니다.
안녕하세요. 섹션2를 마치고 섹션3로 넘어왔는데"node.js 설치와 첫코드 실행"관련강의가 누락된것 같습니다. 확인부탁드립니다.
-
미해결"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
용어 발음법이 계속 바뀌는 것 같은데 이런 부분들 개선이 가능할까요...?
안녕하세요. 강의 잘 듣고 있습니다. libuv 발음이 '립유브이' '엘아이비유브이' '리버브' 등 발음법이 계속 바뀌네요. 다른 질문에서 답변으로 AI로 만든 강의 아니다라고 하셨고 직접 녹음한거라고 하셨는데 직접 하신거라면 조금 아쉬운 것 같습니다. 강의 내용도 흥미롭고 좋은 주제를 다루는 것 같아서 배울게 많아 정말 좋은데 이런 부분들이 조금 강의의 퀄리티를 떨어뜨리는 것 같아서 보완해주시면 좋을 것 같습니다. 강의는 정말 잘 듣고 있는 만큼 보완되었으면 하는 마음에 조심스레 글 남깁니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌3)
counter01.html은 어디있을까요?
안녕하세요01.counter함수를 듣고있는데요자료를 다운받았는데 counter01.html은 어디있을까요? index.html밖에없어서요.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
존재하지 않는 일기 url입력 시 alert이 두 번 떠요
안녕하세요아래와 같이 코드를 작성하고 실행했는데 존재하지 않는 id 로 이동 (예: /edit/111)하면 alert이 한번 뜨게되고 [확인]을누르면url 은 홈으로 이동되고 동일한 alert이 또 한번 더 뜨게됩니다. import Header from '../components/Header'; import Editor from '../components/Editor'; import Button from '../components/Button'; import { useParams, useNavigate } from 'react-router-dom'; import { useContext, useEffect, useState } from 'react'; import { DiaryStateContext, DiaryDispatchContext } from '../App'; const Edit = () => { const params = useParams(); const nav = useNavigate(); const { onDelete, onUpdate } = useContext(DiaryDispatchContext); const data = useContext(DiaryStateContext); const [curDiaryItem, setCurDiaryItem] = useState(); /* const getCurrentDiaryItem = () => { const currentDiaryItem = data.find((item) => String(item.id) === String(params.id)); if(!currentDiaryItem){ window.alert("존재하지 않는 일기입니다."); // 마운트 되기 전에 동작하기 때문에 제대로 동작을 안함. nav("/", { replace: true }); } return currentDiaryItem; } */ // 따라서 useEffect로 설정해줘야함 useEffect(()=>{ const currentDiaryItem = data.find((item) => String(item.id) === String(params.id)); if(!currentDiaryItem){ window.alert("존재하지 않는 일기입니다."); nav("/", { replace: true }); } setCurDiaryItem(currentDiaryItem); }, [params.id]) const onSubmit = (input) => { onUpdate(params.id, input.createdDate.getTime(), input.emotionId, input.content); nav("/", { replace: true }); }; const onClickDelete = () =>{ if(window.confirm("일기를 삭제할까요? 다시 복구되지 않아요!")){ onDelete(params.id); // 이벤트 함수 안에 있기 때문에 마운트 이후 수행됨. nav("/", { replace: true }); } } return ( <div> <Header title={"일기 수정하기"} leftChild={<Button text={"< 뒤로가기"} onClick={() => nav(-1)} />} rightChild={<Button text={"삭제하기"} type={"NEGATIVE"} onClick={onClickDelete}/>} /> <Editor initData={curDiaryItem} onSubmit={(input) => { onSubmit(input); }} /> </div> ) } export default Edit;
-
해결됨치킨값으로 배우는 JS 고급
useState 직접 구현 부분에서 질문이 있습니다.
setCount가 전역변수에 없으면 setCount is not defined; 오류가 발생합니다.Codex가 Counter()는 문자열을 반환하고 setCount는 Counter의 지역변수라서 브라우저가 setCount를 전역에서 찾기 때문에 나타나는 오류라고 합니다. <--이부분이 어렵습니다.아래처럼 변경하거나 addEventListener의 콜백으로 구현하라고 하네요.const states = []; let cursor = 0; let setCount; function useState(initialValue) { const index = cursor; cursor++; if (states[index] === undefined) { states[index] = initialValue; } const setState = (newValue) => { states[index] = newValue; cursor = 0; render(); }; return [states[index], setState]; } function Counter() { const [count, _setCount] = useState(0); setCount = _setCount; return `<button onClick="setCount(${count + 1})">${count}</button>`; } function render() { const root = document.querySelector("#root"); cursor = 0; root.innerHTML = Counter(); } render();
-
해결됨치킨값으로 배우는 JS 고급
학습을 하고 블로그에 정리를 해도 괜찮을까요?
블로그에 공부한것들을 간단하게 정리를 해도 괜찮을까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
교재(3쇄)와 강의 내용 문의
안녕하세요.2025년 1월 발행된 3쇄 교재를 갖고 있는데, 현재 강의내용과 좀 다른 부분들이 있더라고요.마지막 감정 일기장 프로젝트도 코드가 교재와 강의가 바뀐 부분이 있던데, 이 경우 강의 내용을 기준 삼아 학습하는 것이 좋을까요?
-
미해결아무도 알려주지 않는 WebRTC를 사용한 P2P통신
섹션2번 부분 강의 화면이 잘 못된것 같아서 문의합니다.
섹션2부분 webRTC 웹페이지만 나오고 있네요.강의하시는 자료가 화면에 안나오고 있는것 같아서 확인부탁드립니다.
-
해결됨"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
call stack 표현이 잘못표현된것이 아닌가요?
5. [실전 훈련] 사고 실험: 상태 누적 시각화 추적하기예시에서[Step 2] setTimeout과 Promise 등록등을 보면 Call Stack이 비어있음 이라고 표현하셨는데, main 호출후 -> 동기코드 완료될때까지. Call Stack은 엄밀히 비어있는 상태가 아니지 않나요?즉 console.log("D") 가 출력되기 전까지는콜 스택이 비워지는 상태가 발생할수 없지 않나요? 혹시 제가 잘못 알고 있을수도 있으니조심히 여쭙습니다.
-
미해결누구든지 하는 리액트: 초심자를 위한 react 핵심 강좌
React 와 Virtual DOM 의 이야기 영상 실행이 안됩니다.
-
미해결2시간만에 먹는 생성형 AI 활용 완성 챌린지 1기
일반 강의와 차이점?
안녕하세요? 혹시 일반 강의하고 차이점이 궁금해서 그러는데 질문드려도 될까요? 혹시 챌린지 기간 중에만 볼 수 있는 강의인가요?
-
미해결생활코딩 - 자바스크립트(JavaScript) 기본
!= 연산자의 역할
안녕하세요. AI 퀴즈 중에 '!= 연산자의 역할은 무엇일까요?'란 퀴즈가 나왔습니다. 거기서 보기가 A== 연산의 반대 결과를 반환한다.B값만 다르면 true를 반환한다.등등 인데, A가 정답이고 B는 오답이라고 하더군요. B도 정답이지 않나 싶어 질문 드립니다.
-
미해결나혼자 하는 코딩독학서, 코딩-레벨-업(입문-봄)
중요하진 않지만 설명하신부분에서 안된부분..
6:54 에서 설명하신부분이 안되신body에서 Pretendard-Black 으로 안바꾸고Pretendard-Regular로 되어있어서900 설정이 안되신거 같습니다중요한부분은 아니지만 안되신 원인이 있는것 같아서요
-
미해결핵심만 골라배우는 JavaScript
강의 듣는 순서가 어떻게 되나요?
로드맵 수강중인데요. js 듣고 리액트 듣는데 타입스크립트 얘기가 많이나와서 타입스크립트 먼저 듣고 리액트 듣는건가 싶어서 여쭤봅니다
-
해결됨이벤트부터 SPA까지, 상호작용 웹의 필수 엔진 - [DOM 완전 정복 Part 2]
stopPropagation()에 대해서 질문 있습니다.
안녕하세요?강의를 듣다가 궁금한 것이 있어서 글을 남깁니다.섹션 5에서 stopPropagation() 설명이 나올때 상위로 전파 차단이 라고 설명을 주셨는데,강의를 모두 듣고 보면 상위로 전파 차단 뿐만이 아니라 즉 캡쳐링 뿐만 아니라 버블링도 차단 해주는 걸로 이해가 되고 있습니다.혹시 상위로 전파 차단이란 것이 캡쳐링이 아닌 다른 의미로 쓰인건지 궁금합니다.상위로 전파 차단이 혹사 다른 의미로 쓰였다면 그 의미에 대해서 알 수 있을까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
12.13) 하단 여백 스타일링 관련 질문 드립니다.
QnA를 살펴보다가 아래 질문글을 보게 되었는데요,min-height: 100vh를 넣으면 display: flex 없이도 전체 화면을 꽉 채우게 설정이 돼서 사실 display: flex가 없어도 되는 상황이었어요. 이 부분은 제가 강의에 수정해두도록 하겠습니다위의 내용으로 답변해주셨더라구요! 저는 지금 #root에 min-height: 100vh가 있는 상황인데도 불구하고.Editor > section { margin-bottom: 40px; }을 추가하면 하단 여백이 생겨서 강의 내용대로 body에 display: flex; 를 추가해야 의도한 대로 보이는데,그 전에는 어떤 부분이 달라서 min-height: 100vh만으로도 스타일링이 가능했던건지 궁금합니다..!혹시 강의가 수정된 부분이 있다면 어떤 부분인지 알 수 있을까요?
-
미해결React 마스터 클래스: Part 3 - 실무 핵심 라이브러리 정복 (TypeScript, Zustand, React Hook Form, TanStack Query)
27강 Context내 RSC 사용 관련 문의
강의 잘 듣고있습니다. 한 가지 궁금한 점이 있어 질문드립니다."App.tsx를 Provider로 감싸는 순간 그 아래 모든 컴포넌트가 서버 컴포넌트로서의 최적화 기회를 잃는다"는 부분이 잘 이해되지 않습니다.제가 알기로는 Provider를 children prop으로 받는 composition pattern으로 작성하면, Provider 자체는 Client Component여도 그 안에 들어가는 children은 Server Component로 유지될 수 있는 것으로 알고 있습니다. Next.js App Router의 RootLayout에서 <Providers>{children}</Providers> 형태로 쓰는 패턴이 그 예시라고 알고 있고요.이 경우에도 RSC 최적화 기회를 잃는다고 보시는 건지, 아니면 제가 놓치고 있는 다른 맥락이 있는지 궁금합니다.