묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
판다님!! 제발 도와주세요ㅠㅠㅠ replit에서 만들고 있는데 img 파일이 안 불러와집니다. 어떻게 하면 좋을까요
안녕하세요 노트북 용량 때문에 아톰을 깔지 않고 repl.it에서 html파일을 만들어서 실행하고 있는데요... 가르쳐주신 것과 똑같이 코드를 적어봤는데 화면에 Hello world외에 아무것도 뜨지 않습니다.ㅠㅠ 혹시 왜 그런지 알 수 있을까요?
-
미해결Vue.js 시작하기 - Age of Vue.js
vue-router 등록 조건(전역-컴포넌트만 등록 가능하다)?
안녕하세요, 강사님 vue-router 옵션 내부적으로 component를 등록할 때, 지역 컴포넌트로 등록된 컴포넌트는 라우팅 되지 않는 걸 확인하였습니다. 해당 사진은 공식문서를 캡쳐한 이미지인데요, this.appHeader 가 아니더라도 단순히 지역 컴포넌트가 선언된 위치를 찾아내서 연결만 시켜주면 되지 않을까 하는 생각이 있었는데 잘 안되더라구요, 그냥 전역 컴포넌트나 싱글파일 컴포넌트 체계에서 라우팅 가능하다 정도로만 이해하면 될까요? 원하는 답변을 얻지 못해 질문합니다! routes: [ { path: '/header', component: this.appHeader, }, ], new Vue({ el: '#app', router, components: { appHeader: { template: '<header>app header</header>', }, }, }); 참고한 질문
-
해결됨Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 브랜치 경로 문의
안녕하세요! 좋은 수업 늘 감사히 잘듣고 있습니다. 궁금한 점이 있어서 문의드립니다. 저는 지금 Todo App - 프로젝트 구현에서 깃헙 브랜치 안내 해주시는 부분 강의 듣고 있습니다. 깃 권한도 승인받았고, 강의해주신 경로대로 진행했는데 수업내용 올려주신 자료가 없더라구요. (TodoFooter.vue, TodoHeader.vue, TodoInput.vue, TodoList.vue) 저는 위 4가지 파일이 없고 HelloWorld.vue 파일만 있더라구요.. 터미널에 git checkout todo-app/components-implementation 하면 덮어씌워진다고 하셔서, 혹시나 제코드가 날아갈까봐 시도해보지는 못했어요. 제가 경로를 잘못타고 들어간건가요? 확인부탁드립니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 이해를 잘 못하겠습니다.
안녕하세요. 문제에서는 알파벳 이외의 문자들은 다 무시한다고 돼 있는데, 여기에서 말하는 문자엔 숫자가 포함된 건가요? 정규표현식부분이 조금 헷갈려서요. 전 처음에 ,:;이 세 가지만 제외하면 되는 줄 알았거든요.
-
해결됨모던 자바스크립트 딥다이브 스터디
코어 자바스크립트 예제 5-14 질문
안녕하세요. 모던 자바스크립트를 읽다가 책이 빠르게 굵직한 부분을 훑고 싶어 강사님의 저서 '코어 자바스크립트'를 읽던 중 질문이 생겨 질문드립니다. 먼저 강의에 관련된 질문이 아닌 점 죄송합니다. 클로저, 135쪽, 예제 5-14, 부분 적용 함수 구현(1) const partial = function () { // 01 const originalPartialArgs = arguments; // 02 const func = originalPartialArgs[0]; if (typeof func !== "function") { throw new Error("It's not a function."); } return function () { // 07 console.log(arguments); const partialArgs = Array.prototype.slice.call(originalPartialArgs, 1); const restArgs = Array.prototype.slice.call(arguments); // 09 return func.apply(this, partialArgs.concat(restArgs)); }; }; 1. 9번째 줄의 arguments는 7번째 줄에서 return되는 익명함수의 렉시컬 환경에서 새로 생성된 argument이기 때문에 partial함수의 렉시컬 환경의 arguments(2번째 줄)과 다르다. 2. 7번째 줄에서 익명함수 선언 시 9번째 줄의 arguments는 익명함수의 렉시컬 환경에 수집되어 빈 객체 상태로 익명함수가 return된다.(실행 컨텍스트가 활성화 된느 시점이 아닌 선언 시점에 정보가 수집된다.) 3. 후에 21번째 줄에서 익명함수를 할당받은 addPartial 함수가 22번째 줄에서 호출 될때 7번째 줄의 arguments가 arguments object [6,7,8,9,10]로 재할당 된다. 4. 8번째 줄의 originalPartialArgs가 클로저를 이용한 것이다. 처음에 7번째 줄의 익명함수 속 arguments가 상위 스코프의 arguments(2번째 줄)을 참조한다고 생각했고 결과가 달라 고민한 결과 위와 같이 결론을 내렸습니다. 제가 잘 이해한 것인지 확인받고싶어 질문 드렸습니다. 다시한번 강의와 무관한 질문 드려 죄송합니다.
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
미들웨어 관련 질문입니다.
조현영님 강좌를 보던 중 express와 미들웨어 관련된 강좌를 보고 express를 사용해 서버를 만들던 도중에 막히는 부분이 있어서 질문해봅니다. (단순 에러 해결 질문은 아닙니다.) const axios = require("axios"); const express = require("express"); const path = require("path"); const morgan = require("morgan"); const app = express(); const hostName = "127.0.0.1"; const port = process.env.PORT || 5147; require("./productServer1"); app.use(morgan("dev")); function getInfoWithAxios(key) { if (key === "1") { res.sendFile(path.join(__dirname, "./productOne.html")); } else if (key === "2") { res.sendFile(path.join(__dirname, "./productTwo.html")); } else { res.sendFile(path.join(__dirname, "./productThree.html")); } } app.set("func", getInfoWithAxios()); app.get("/", (req, res) => { res.sendFile(path.join(__dirname, "./expressAPI.html")); }); app.use("/product/:addr", (req, res, next) => { console.log(`you connect on ${req.params.addr}}`); next(); }); app.get("/product", (req, res) => { res.write("<h1>Here is product information</h1>"); res.send(); }); app.get("/product/product1", async (req, res) => { try { const result = await axios.get("http://127.0.0.1:3257"); const productID = String(result.data[0].id); app.get("func"); console.log("Request Type:", req.method); } catch (err) { console.error(err); } }); app.get("/product/product2", async (req, res) => { try { const result = await axios.get("http://127.0.0.1:3257"); const productID = String(result.data[1].id); app.get("func"); console.log("Request Type:", req.method); } catch (err) { console.error(err); } }); app.get("/product/product3", async (req, res) => { try { const result = await axios.get("http://127.0.0.1:3257"); const productID = String(result.data[2].id); app.get("func"); console.log("Request Type:", req.method); } catch (err) { console.error(err); } }); app.use((err, req, res, next) => { console.error(err); res.status(401).send(err.message); }); app.listen(port, () => { console.log(`server is running at http://${hostName}:${port}`); }); 위에 코드를 실행시키면 우선 코드 본문의 내용이 실행됨과 동시에 require()로 productServer1이라는 express를 사용한 상품 데이터 서버가 실행됩니다. (localhost를 사용하고 상품 데이터 서버 포트는 3257)입니다. /product/product(1~3)으로 get메서드를 보내면 같이 실행되는 상품 데이터 서버에서 id값을 받아오고 id값을 getInfoWithAxios(key)함수에 넣어서 html페이지를 id값에 맞게 상품별로 분기하게 됩니다. 이떄 문제는 getInfoWithAxios()함수에 res객체가 없어서 id에 맞게 html페이지를 분기 할 수가 없다는 것입니다. 미들웨어로 처리를 하고 싶지만 방법을 모르겠어서 질문해봅니다. 그리고 app.get() 함수에 있는 각각의 productID를 어떻게 하면 매개변수로 대입 할 수 있는지도 궁금합니다. 요약하자면 함수를 미들웨어로 만들려면 어떻게 작성해야 하고 만든 함수를 접근할때 매개변수는 어떻게 대입할수 있을까요? 조현영님의 이해를 돕기 위해서 전체 프로젝트에 대한 깃 주소를 남겨드리겠습니다. https://github.com/shere1765/node_server/tree/main/small_project 전체 프로젝트에 있는 expressAPI는 문제없이 잘 실행될겁니다. 하지만 제가 원하는 코드는 아닙니다. 그 밖에 문제점이 있다면 피드백 부탁드립니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
(res.push(a),res).length;
(res.push(a),res).length; 이부분은 어떻게 평가되는건가요..?? 같은 질문하신분의 답변을 봐도 이해가 안됩니다 ㅠ.
-
미해결실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발
바닐라
처음 설계하는게 어렵지 기능구현은 쉬운 것 같은데 스케폴딩 하는 부분에서 머리 터질 것 같네요. 그래도 바닐라 자바스크립트 부분은 신경써야 하겠죠?
-
해결됨함수형 프로그래밍과 JavaScript ES6+
infinity
`for(const i of infinity(1)) log(i)`를 하게되면 무한히 값이 생성되서 브라우저가 멈춰버리는데요. odds안에 저렇게 무한히 생성되는 아이를 for문에 조건문으로 적어주었을때 이미 값은 내부적으로 다 만들어져있는 상태인가요?
-
해결됨몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]
저도 loop함수만 실행하면 오류가떠요!
안녕하세요! 저도 스크립트에서 loop(); 만 실행하면 스크롤 하게되면 강아지있는 사진이 붕 뜨는데 뭐가 문제일까요ㅠㅠ 혹시 코드 봐주실수 있나요!! let x = 0; let y = 0; let mx = 0; let my = 0; let speed = 0.03; let scrollTop = 0; let parallax_0, parallax_1, parallax_2, parallax_3, parallax_4, parallax_5, parallax_6; window.onload = function () { progressBar = document.getElementsByClassName("progressBar")[0]; parallax_0 = document.getElementById("parallax_0"); parallax_1 = document.getElementById("parallax_1"); parallax_2 = document.getElementById("parallax_2"); parallax_3 = document.getElementById("parallax_3"); parallax_4 = document.getElementById("parallax_4"); parallax_5 = document.getElementById("parallax_5"); parallax_6 = document.getElementById("parallax_6"); window.addEventListener('resize', stageResize, false); window.addEventListener('mousemove', mouseMove, false); window.addEventListener('scroll', scrollFunc, false); stageResize(); loop(); } function scrollFunc(e) { scrollTop = document.documentElement.scrollTop; let per = Math.ceil(scrollTop / (_documentHum - _windowHNum) * 100); progressBar.style.width = per + '%'; parallax_0.style.transform = "translate3d(0px," + scrollTop * .03 + "px, 0px)"; parallax_1.style.transform = "translate3d(0px," + -scrollTop * .03 + "px, 0px)"; parallax_2.style.transform = "translate3d(0px," + -scrollTop * .12 + "px, 0px)"; parallax_3.style.transform = "translate3d(0px," + -scrollTop * .16 + "px, 0px)"; parallax_4.style.transform = "translate3d(0px," + -scrollTop * .22 + "px, 0px)"; parallax_5.style.transform = "translate3d(0px," + -scrollTop * .25 + "px, 0px)"; } function stageResize(){ _documentHum = document.body.offsetHeight; _windowHNum = window.outerHeight; } function loop(){ mx += (x - mx) * speed; my += (y - my) * speed; parallax_4.style.transform = "translate3d(" + mx / 140 + "px ," + -scrollTop * 22 + "px, 0px)"; parallax_5.style.transform = "scale(1.1) translate(" + mx / 50 + "px," + -scrollTop * 25 + "px)"; parallax_6.style.transform = "scale(1.2) translate(" + -mx / 20 + "px," + -my / 20 + "px)"; window.requestAnimationFrame(loop); } function mouseMove(e){ x = (e.clientX - window.innerWidth / 2); y = (e.clientY - window.innerHeight / 2); }
-
해결됨모던 자바스크립트 딥다이브 스터디
안녕하세요.
안녕하세요! 강의 정말 잘 보고 있습니다! 덕분에 두꺼운 책이 쓱쓱 넘어가고 있어요! 단톡방이라고 언급을 하시는거 같은데 혹시 어떤 단톡방인가요? 혹시 저도 들어갈 수 있을까요?
-
해결됨타입스크립트 입문 - 기초부터 실전까지
인터페이스 함수 파라미터
안녕하세요, 기효님 함수의 인터페이스를 정의 후 아래와 같이 파라미터를 하나만 적어보았는데 에러를 발생시키진 않더라고요. 정작 sum을 사용할 때는 파라미터를 하나만 넘기지 못하게 에러가 발생합니다. 왜 파라미터의 개수에 대해서는 에러 표시를 내지 않는가요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
여러분 Math.min 써도 된다고 합니다~!
.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
(21.12.01기준)포스트맨 Send버튼을 눌러도 응답이 없는 경우
Send버튼을 눌러도 아무 응답이 없는 경우 우측상단 저의 경우 "No Environment"로 되어있는 부분을 클릭하셔서 자신이 작성한 목업서버 이름을 클릭하시고 다시 Send를 누르시면 작성하신 응답 받을 수 있습니다.
-
해결됨코어 자바스크립트
실행 컨텍스트 안의 VariableEnvironment 를 존재 이유가 궁금합니다.
안녕하세요, 선생님 강의 잘 듣고 있습니다! 감사합니다~VariableEnvironment는 LexicalEnvrionment의 초기 정보만 담고 있고 이후에는 LexicalEnvrionment를 주로 활용하게 된다고 하셨는데요. 그렇다면 VariableEnvironment가 사용되는 경우는 어떤 경우일지 궁금해서 질문 남깁니다. 감사합니다.
-
미해결
2명의 클라이언트가 접속했을 때 카운트 시작하는 시스템을 만들고 싶은데 어떤 코드를 사용해야 할까요?
일부분만 발췌해서 가져왔습니다. 2명의 클라이언트가 접속했을 때 index.js에서 접속자 수를 받아오고, html 내 script에서 카운트 실행 코드를 작성했는데 2명 이상이 접속해야 카운트가 실행되는 코드는 어떻게 작성해야 하는지 모르겠네요. 어떤 방법이 있을까요 ?? //index.js io.sockets.on("connection",(socket)=>{ const req=socket.request; const ip=req.headers['x-forwarded-for']||req.connection.remoteAddress; console.log("새로운 클라이언트 접속",ip,socket.id, req.ip); user_count++; io.emit('users.count',user_count); //client.html <script> let socket=io(); socket.on('users.count', function(number) { document.getElementById('users-count').innerHTML=number; let user_count = document.getElementById('users-count').value; if(number==2){ var count=10; var counter=setInterval(function(){ if(count<=0){ clearInterval(counter); document.getElementById("timer").innerHTML="Finished"; } else { document.getElementById("timer").innerHTML=count+"초 남았습니다"; } count-=1; },1000); } }); </script>
-
해결됨모던 자바스크립트(javascript) 개발을 위한 ES6 강좌
타입 관련 궁금한 점이 있습니다.
안녕하세요 toString.call()을 이용하여 타입을 확인할 수 있다고 했는데, 언제 사용하나요 ?? typeof()와 비교했을 때, 차이점이 무엇인가요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
npm start가 안됩니다 꼭 좀 확인해주세요ㅜㅜ
creat-react-app은 다 설치가 되었는데 npm start가 안됩니다ㅜ cmd에서도 터미널에서도 안되는데 어떻게 해야 좋을까요? react를 겨우 설치하고 나니 또 이런 문제가 생겨서 너무 마음이 속상합니다ㅡㅜㅜ
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
24:53 spacebar 예외처리
addTodo 함수 내부에 if문 예외처리 시 연속된 space bar를 누르면 추가가 되는 부분이 있습니다, js로직으로 어떻게 예외처리가 가능할 지 답변 가능할까요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
4:56 새로운 객체를 반환
판교님, 질문있습니다. data는 function()에 다시 새 객체를 반환하는데, methods는 바로 객체를 열어서 addTodo: ... 로 작성하는 이유를 알 수 있을까요?