묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Code Sandbox 문의
안녕하세요 선생님, 오늘 처음으로 수강듣게되었네요. 이 단계에서부터 질문을 드리게 될줄 몰랏는데, codesandbox 에서 실행을하려니, installing dependencies 가 계속 진행되면서 retrying package fetch 가 console 에서 지속 반복되네요ㅠ 이걸 해결할 방법이 있을까요? 없다면, 앞으로 수업은 어떻게 듣는게 좋을까요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
버전이 너무 다릅니다...
이거 버전이 너무 달라서 따라가기 어렵습니다ㅜ최신버전으로 다시 만들어 주세요ㅜ
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
400에러질문
판교님 400에러 관련해 다음 강의 진행이 안되어 도움을 찾고자 글 올리게 되었습니다. /post에 get으로 빈 [] 을 가지고 오는 것은 되는데 다음 부분인 /post에 post하여 게시물 생성하는 것은 안되네요 ㅠ
-
해결됨타입스크립트 입문 - 기초부터 실전까지
밑줄 안생길때 해결법
질문은 아니지만 도움될까해서 올려요 코드에 밑줄 안쳐지시는분들은 먼저 아래에 질문/답변 글에 나와있는 설정 다 따라 하신 후에 상단에 let todoItems 옆에 노란 글씨로 eslint is disabled since its execution has not been approved or denied yet .. 어쩌고 뜨는 곳 그 밑에 줄에 조그만 파란 전구 눌러서 무슨 창 나오면 allow 누르면 생깁니다. 참고하세요
-
미해결함수형 프로그래밍과 JavaScript ES6+
go, pipe, curry 함수의 유래?에 대해서 궁금합니다.
안녕하십니까! 강의 유익하게 잘 듣고 있습니다. 다름이 아니라, 강의를 들으면서 그냥 궁금한 점이 생겨서 글을 올려봅니다. 개념을 배울 때마다 조금이나마 더 깊게 이해해보려고 MDN 문서 등을 참조해서 더 많은 내용들을 공부하고 있습니다. 그런데 go, pipe, curry 같은 개념들은 map이나 filter, reduce 등의 메소드와는 달리 어떤 특정 문서에 나오지 않고, 아티클이나 블로그 같은 곳에서 명시되어 있는 것 밖에 찾지 못했습니다. 그래서 뭔가 이런 프로그래밍 방법들이 혹시 어디에서 어떻게 나타나게 되었는지, 실제 전세계적으로 통용되는 워딩인지 궁금해서 글을 남겨봅니다. 좋은 강의를 토대로 더욱 성장하는 개발자가 되도록 노력하겠습니다! 새해복 많이 받으시기 바랍니다:)!!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
강사님 질문입니다.
for 문을 배열의 1번째 부터 시작하고 바로 앞사람하고 비교해서 크면 추가해도 맞는건가요? 예를 들면 이런 코드입니다.
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
source-map?
안녕하세요, 파일 절대경로 @관련해 에러 코드가 나와 질문드려요! 추가적으로 설정해 줘야 하는 부분이 있는 것 같아 구글링 해 보았는데 잘 안나오더라구요 ㅠ우선 스크린샷 올리도록 하겠습니다, 급한건 아니니 넘어가도록 할게요.
-
미해결웹게임을 만들며 배우는 인터렉티브웹! JAVASCRIPT
캐릭터가 점프하면서 앞으로 나아가게 만들고있습니다
점프하면 앞으로 나가게는 만들었는데 방향이 left인 상태에서 점프를 up하면 right을 향한채로 뒤로 점프하게 됩니다. 계속 생각해보다가 도무지 모르겠어서 질문드립니다..! up에서 기본으로 방향이 right으로 향하는거 같은데 어떻게 해결해야할까요 if (key.keyDown["right"] && key.keyDown["up"]) { this.el.classList.add("jump_run"); this.el.classList.remove("run"); this.el.classList.remove("jump"); this.el.classList.remove("flip"); this.direction = "right"; this.moveY = this.moveY - this.jump; this.moveX = this.moveX + this.speed; setTimeout(() => { this.el.classList.remove("jump_run"); this.el.classList.add("run"); }, 300); } else if (key.keyDown["left"] && key.keyDown["up"]) { this.el.classList.add("jump_run_back"); this.el.classList.add("flip"); this.el.classList.remove("run"); this.el.classList.remove("jump"); this.direction = "left"; this.moveY = this.moveY - this.jump; this.moveX = this.moveX - this.speed; setTimeout(() => { this.el.classList.remove("jump_run_back"); }, 300); ////// 이하 CSS .hero_box .hero.flip { transform: rotateY(180deg); } .hero_box .hero.jump { animation: hero_jump 0.5s 1; } .hero_box .hero.jump_run { animation: hero_jump_run 0.5s 1; } .hero_box .hero.jump_run_back { background-size: 1498px 182px; animation: hero_jump_run_back 0.5s 1; } @keyframes hero_jump_run_back { 0% { transform: translate(0, 0); } 50% { transform: translate(-25px, -150px); } 100% { transform: translate(-40px, 0); } } @keyframes hero_jump_run_back_flip { 0% { transform: rotateY(180deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(180deg); } }
-
미해결[하루 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 하면 덮어씌워진다고 하셔서, 혹시나 제코드가 날아갈까봐 시도해보지는 못했어요. 제가 경로를 잘못타고 들어간건가요? 확인부탁드립니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 이해를 잘 못하겠습니다.
안녕하세요. 문제에서는 알파벳 이외의 문자들은 다 무시한다고 돼 있는데, 여기에서 말하는 문자엔 숫자가 포함된 건가요? 정규표현식부분이 조금 헷갈려서요. 전 처음에 ,:;이 세 가지만 제외하면 되는 줄 알았거든요.
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
도커로 서비스 시작하기 강의에서
docker-compose up -d --build 후마이그레이션 하는 과정에서 makemigrations 적용이 되지 않아서 질문 올려드립니다. 문제가 뭔지 열심히 찾아봐도 도통 뭑가 문제인지 모르겠습니다github 주소는 여기있습니다
-
해결됨모던 자바스크립트 딥다이브 스터디
코어 자바스크립트 예제 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); }
-
해결됨모던 자바스크립트 딥다이브 스터디
안녕하세요.
안녕하세요! 강의 정말 잘 보고 있습니다! 덕분에 두꺼운 책이 쓱쓱 넘어가고 있어요! 단톡방이라고 언급을 하시는거 같은데 혹시 어떤 단톡방인가요? 혹시 저도 들어갈 수 있을까요?