묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
axios로 네트워크 통신하기 수업에서 막혔어요
axios로 네트워크 통신하기 수업에서 막혔습니다 결론부터 정리하면 typeerror 가 뜨고 있습니다 61,62번 줄이 에러라고 뜨는대 그 줄에 작성한 코드는 이거입니다 .catch(function (error) { 가 61번줄 console.error이 62번 줄입니다. index.html:32 는 products.length; 작성된 줄입니다. 이외에 코드도 수업보면서 틀린부분을 확인했는대 없었습니다. 잘따라가다가 처음으로 막혔습니다 문제가 될만한 부분은 저 사진 3개중에 있을거같은대 어디가 문제가 되는건지 모르겠어요 목업서버도 하라고 나온거처럼 그대로 작성해놨습니다;
-
미해결
유니티 vscode 빨간줄이 제대로 뜨지 않습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 유니티로 c#강의를 듣고 공부하는 학생입니다. 다름이 아니라 c#익스텐션을 제대로 설치했음에도 불구하고 계속 자동완성이 제대로 안뜨거나, 빨간줄이 제대로 작동을 하지 않습니다. c#익스텐션도 제대로 깔았고 Debug는 D를 치건 De를 치건 아예 자동완성될 기미가 없고 ㅍvoid의 철자를 틀려도 아무런 표시(빨간 줄 ) 이 나타나지 않고.. 왠만하면 그냥 하려했는데 사소한 오타때문에 오랜시간을 잡아먹어서 최대한 빨리해결하고 싶습니다. 전부 다지우고 다깔아도 계속이런데 어떻게 하면 좋을까요? 가르쳐주시면 정말로 감사하겠습니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
[Chapter 5] 투자전략20. 그레이엄의 마지막선물 업그레이드(188p)
선생님이 올려주신 위에 코드 (위)와 제가 짠 코드 (아래)의 길이가 다른데 이유가 왜인지 모르겠습니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
윈도우에서 nodemon 실행 안되시는 분
VScode 에서 터미널은 기본값이 powershell 로 되어 있습니다. 이 터미널을 cmd 로 바꿔주시면 정상적으로 작동합니다. 아마 powershell 에서 경로나 권한 이슈가 있는 모양입니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
vertex의 z축 좌표가 1을 넘으면 화면에서 사라지네요
z축의 좌표를 1이상 설정하면 해당 vertex와 mesh의 일부가 화면에서 사라집니다. 혹시 그 이유가 무엇때문인가요??
-
미해결애플 웹사이트 인터랙션 클론!
강의에서 잠깐 나오는 desc 메시지 와 다르게 캔버스가 잠깐 보입니다..
현제 제가 section-1에서 2로 넘어갈때 위 처럼 캔버스와 main텍스트가 번쩍 하고 보입니다. 둘다 opacity를 줘도 해결되지 않고 자바스크립트 문제인 것 같은데 어디가 문제인지 도저히 모르겠습니다.. 아래에 제 자바스크립트 코드입니다. (() => { let yoffset = 0;//현재 스크롤된 높이 let prevScrollHeight = 0; // 이전 씬의 총 높이 let currentScene = 0;//현재 활성화된 씬 const sceneInfo=[ //0 { type: 'sticky', scrollHeight: 0, heightNum: 5, objs: { container : document.querySelector('#scroll-section-0'), messageA: document.querySelector('#scroll-section-0 .main-message.a'), messageB: document.querySelector('#scroll-section-0 .main-message.b'), messageC: document.querySelector('#scroll-section-0 .main-message.c'), messageD: document.querySelector('#scroll-section-0 .main-message.d'), canvas: document.querySelector('#video-canvas-0'), context: document.querySelector('#video-canvas-0').getContext('2d'), videoImage: [] }, //모든 애니메이션 정보를 담음 values:{ //이미지의 갯수 videoImageCount : 300, imageSequence: [0,299], //message A messageA_opacity_in : [0,1,{ start : 0.1, end: 0.2 }], messageA_opacity_out : [1,0,{ start : 0.25, end: 0.3 }], messageA_translate_in: [20,0, { start: 0.1,end: 0.2 }], messageA_translate_out: [0,-20, { start: 0.25,end: 0.3 }], //message B messageB_opacity_in : [0,1,{ start : 0.3, end: 0.4 }], messageB_opacity_out : [1,0,{ start : 0.45, end: 0.5 }], messageB_translate_in: [20,0, { start: 0.3,end: 0.4 }], messageB_translate_out: [0,-20, { start: 0.45,end: 0.5 }], //message C messageC_opacity_in : [0,1,{ start : 0.5, end: 0.6 }], messageC_opacity_out : [1,0,{ start : 0.65, end: 0.7 }], messageC_translate_in: [20,0, { start: 0.5,end: 0.6 }], messageC_translate_out: [0,-20, { start: 0.65,end: 0.7 }], //message D messageD_opacity_in : [0,1,{ start : 0.7, end: 0.8 }], messageD_opacity_out : [1,0,{ start : 0.85, end: 0.9 }], messageD_translate_in: [20,0, { start: 0.7,end: 0.8 }], messageD_translate_out: [0,-20, { start: 0.85,end: 0.9 }], //canvas_Opacity canvas_opacity : [1,0,{ start:0.9, end: 1 }], } }, //1 { type: 'normal', scrollHeight: 0, objs: { container : document.querySelector('#scroll-section-1'), } }, //2 { type: 'sticky', scrollHeight: 0, heightNum: 5, objs: { container : document.querySelector('#scroll-section-2'), messageA: document.querySelector('#scroll-section-2 .main-message.a'), messageB: document.querySelector('#scroll-section-2 .desc-message.b'), messageC: document.querySelector('#scroll-section-2 .desc-message.c'), pinB: document.querySelector('#scroll-section-2 .b .pin'), pinC: document.querySelector('#scroll-section-2 .c .pin'), canvas: document.querySelector('#video-canvas-1'), context: document.querySelector('#video-canvas-1').getContext('2d'), videoImage: [] }, values: { //이미지의 갯수 videoImageCount : 960, imageSequence: [0,959], //messageA messageA_opacity_in: [0,1,{ start: 0.25, end: 0.3 }], messageA_opacity_out: [1,0,{ start: 0.4, end: 0.45 }], messageA_translate_in: [20,0,{ start: 0.15, end: 0.2 }], messageA_translate_out: [0,-20,{ start: 0.4, end: 0.45 }], //messageB messageB_opacity_in: [0,1,{ start: 0.6, end: 0.65 }], messageB_opacity_out: [1,0,{ start: 0.68, end: 0.73 }], messageB_translate_in: [30,0,{ start: 0.6, end: 0.65 }], messageB_translate_out: [0,-20,{ start: 0.68, end: 0.73 }], //messageC messageC_opacity_in: [0,1,{ start: 0.87, end: 0.92 }], messageC_opacity_out: [1,0,{ start: 0.95, end: 1 }], messageC_translate_in: [30,0,{ start: 0.87, end: 0.92 }], messageC_translate_out: [0,-20,{ start: 0.95, end: 1 }], //pin pinB_scaleY: [0.5, 1, { start: 0.6, end: 0.65 }], pinC_scaleY: [0.5, 1, { start: 0.87, end: 0.92 }], //canvas_Opacity canvas_opacity_in: [0, 1, { start: 0, end: 0.1 }], canvas_opacity_out: [1, 0, { start: 0.95, end: 1 }], }, }, //3 { type: 'sticky', scrollHeight: 0, heightNum: 5, objs: { container : document.querySelector('#scroll-section-3'), } }, ] function setCanvasImages(){ let imgElem; let imgElem2; for(let i =0; i < sceneInfo[0].values.videoImageCount; i++){ //이미지 객체 새성 imgElem = new Image; imgElem.src = `./video/001/IMG_${6726 + i}.JPG`; sceneInfo[0].objs.videoImage.push(imgElem); } for(let i =0; i < sceneInfo[2].values.videoImageCount; i++){ //이미지 객체 새성 imgElem2 = new Image; imgElem2.src = `./video/002/IMG_${7027 + i}.JPG`; sceneInfo[2].objs.videoImage.push(imgElem2); } } setCanvasImages(); function setLayout(){ const heightRatio = window.innerHeight / 1080; //각 스크롤 섹션의 높이 세팅 for(let i =0; i < sceneInfo.length; i++){ if( sceneInfo[i].type === 'sticky' ){ sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; }else{ sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.offsetHeight; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } let totalScrollHeight = 0; yoffset = window.pageYOffset; for(let i =0; i < sceneInfo.length; i++){ totalScrollHeight += sceneInfo[i].scrollHeight; if( totalScrollHeight >= yoffset ){ currentScene = i; break; } } document.querySelector('body').id = `show-scene-${currentScene}` sceneInfo[0].objs.canvas.style.transform = `translate3d(-50%,-50%,0) scale(${heightRatio})`; sceneInfo[2].objs.canvas.style.transform = `translate3d(-50%,-50%,0) scale(${heightRatio})`; } //values = 값 변화의 시작과 끝, 현재 씬의 높이 비율 currentYoffset = 현재 씬의 스크롤한 높이 //scrollRatio = 현재 씬의 스크롤 비율 function calcValues(values,currnetYoffset){ let rv; const scrollHeight = sceneInfo[currentScene].scrollHeight; let scrollRatio = currnetYoffset / scrollHeight; //start와 end의 원소가 있는 배열의 적용 if( values.length === 3 ){ const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if( currnetYoffset >= partScrollStart && currnetYoffset <= partScrollEnd ){ rv = (currnetYoffset - partScrollStart) / partScrollHeight * (values[1] - values[0]) + values[0]; }else if( currnetYoffset < partScrollStart ){ rv = values[0]; }else if(currnetYoffset > partScrollEnd){ rv = values[1]; } }else{ rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; } function playAnimation(){ const values = sceneInfo[currentScene].values; const objs = sceneInfo[currentScene].objs; const currnetYoffset = yoffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currnetYoffset / scrollHeight; if( currnetYoffset < 0 ) return; switch (currentScene){ case 0: let sequence = parseInt(calcValues(values.imageSequence,currnetYoffset)); objs.context.drawImage(objs.videoImage[sequence],0,0); objs.canvas.style.opacity = calcValues(values.canvas_opacity,currnetYoffset); if( scrollRatio <= 0.22 ){ objs.messageA.style.opacity = calcValues(values.messageA_opacity_in,currnetYoffset); objs.messageA.style.transform = `translateY(${calcValues(values.messageA_translate_in,currnetYoffset)}%)`; }else{ objs.messageA.style.opacity = calcValues(values.messageA_opacity_out,currnetYoffset); objs.messageA.style.transform = `translateY(${calcValues(values.messageA_translate_out,currnetYoffset)}%)`; } if( scrollRatio <= 0.42 ){ objs.messageB.style.opacity = calcValues(values.messageB_opacity_in,currnetYoffset); objs.messageB.style.transform = `translateY(${calcValues(values.messageB_translate_in,currnetYoffset)}%)`; }else{ objs.messageB.style.opacity = calcValues(values.messageB_opacity_out,currnetYoffset); objs.messageB.style.transform = `translateY(${calcValues(values.messageB_translate_out,currnetYoffset)}%)`; } if( scrollRatio <= 0.62 ){ objs.messageC.style.opacity = calcValues(values.messageC_opacity_in,currnetYoffset); objs.messageC.style.transform = `translateY(${calcValues(values.messageC_translate_in,currnetYoffset)}%)`; }else{ objs.messageC.style.opacity = calcValues(values.messageC_opacity_out,currnetYoffset); objs.messageC.style.transform = `translateY(${calcValues(values.messageC_translate_out,currnetYoffset)}%)`; } if( scrollRatio <= 0.82 ){ objs.messageD.style.opacity = calcValues(values.messageD_opacity_in,currnetYoffset); objs.messageD.style.transform = `translateY(${calcValues(values.messageD_translate_in,currnetYoffset)}%)`; }else{ objs.messageD.style.opacity = calcValues(values.messageD_opacity_out,currnetYoffset); objs.messageD.style.transform = `translateY(${calcValues(values.messageD_translate_out,currnetYoffset)}%)`; } break; case 1: break; case 2: let sequence2 = parseInt(calcValues(values.imageSequence,currnetYoffset)); objs.context.drawImage(objs.videoImage[sequence2],0,0); if (scrollRatio <= 0.5) { // in objs.canvas.style.opacity = calcValues(values.canvas_opacity_in, currnetYoffset); } else { // out objs.canvas.style.opacity = calcValues(values.canvas_opacity_out, currnetYoffset); } if( scrollRatio <= 0.32 ){ objs.messageA.style.opacity = calcValues(values.messageA_opacity_in,currnetYoffset); objs.messageA.style.transform = `translateY(${calcValues(values.messageA_translate_in,currnetYoffset)}%)`; }else{ objs.messageA.style.opacity = calcValues(values.messageA_opacity_out,currnetYoffset); objs.messageA.style.transform = `translateY(${calcValues(values.messageA_translate_out,currnetYoffset)}%)`; } if( scrollRatio <= 0.67 ){ objs.messageB.style.opacity = calcValues(values.messageB_opacity_in,currnetYoffset); objs.messageB.style.transform = `translateY(${calcValues(values.messageB_translate_in,currnetYoffset)}%)`; }else{ objs.messageB.style.opacity = calcValues(values.messageB_opacity_out,currnetYoffset); objs.messageB.style.transform = `translateY(${calcValues(values.messageB_translate_out,currnetYoffset)}%)`; } if( scrollRatio <= 0.93 ){ objs.messageC.style.opacity = calcValues(values.messageC_opacity_in,currnetYoffset); objs.messageC.style.transform = `translateY(${calcValues(values.messageC_translate_in,currnetYoffset)}%)`; }else{ objs.messageC.style.opacity = calcValues(values.messageC_opacity_out,currnetYoffset); objs.messageC.style.transform = `translateY(${calcValues(values.messageC_translate_out,currnetYoffset)}%)`; } break; case 3: break; } } function scrollLoop(){ prevScrollHeight = 0; for(let i=0; i < currentScene; i++){ prevScrollHeight += sceneInfo[i].scrollHeight; } if( yoffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight){ currentScene++; document.querySelector('body').id = `show-scene-${currentScene}` } if( yoffset < prevScrollHeight ){ if( currentScene === 0 ) return; currentScene--; document.querySelector('body').id = `show-scene-${currentScene}` } } //윈도우의 창 사이즈 변경시 다시 높이를 세팅함 window.addEventListener('scroll',() => { yoffset = window.pageYOffset; scrollLoop(); playAnimation(); }); window.addEventListener('resize',setLayout); window.addEventListener('load', () => { setLayout(); sceneInfo[0].objs.context.drawImage(sceneInfo[0].objs.videoImage[0],0,0); }); })()
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
Git 요청드립니다 !
인프런 아이디 : iamwooda96@mail.com 인프런 이메일: iamwooda96@gmail.com 깃헙 아이디: iamwooda7@gmail.com 깃헙 Username : woodayoung
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
집행검 클릭시 호출이 안되는 상황
맨 마지막에 집행검 눌렀을 때 호출이 되어야 하는데 안되는 상황인데, 코드는 정확하게 썼는데 무엇이 안되는지 오류도 안뜨니까 못찾겠습니다... 중단점 찍어봤는데 코드는 F11 누르니 이리저리 잘 타고 다니던데.. 결국 못찾았습니다. rookiss@naver.com 으로 파일 보냈습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
프레임에 대한 질문
실행되는 순서를 따라가다 보니 햇갈리는 부분이 있어 질문드립니다. UI_Inven 클래스에서 Init()함수부분을 보시면 UI_Inven_Item의 frefab을 생성하고 UI_Inven_Item클래스를 붙여준 후 SetInfo()를 하는 부분이 있는데 저는 처음에 UI_Inven_Item 인스턴스가 되면 Start()가 실행되어 SetInfo()가 씹히고 실행되는 줄 알았는데 도큐먼트를 살펴보니 Start는 첫 번째 프레임이 업데이트 직전에 실행된다고 적혀있어서 위 내용이 한프레임 안으로 일어나서 정상적으로 실행 되구나라고 생각 하려고했는데 혹시나 몰라서 Debug를 찍어보니 UI_Inven의 for문이 모두 돌아서 나온후 UI_Inven_Item의 start가 차례되로 실행 되더라고요. 그럼.. 한 프레임은 UI_Inven 클래스에서 Init()이 모두 완료되었을 때가 한 프레임 인가요? 저는 프레임이 세미콜론이 끝나는 부분이 프레임이 넘어가는 걸로 생각 하고있어서 저의 생각이 틀린것 같아 바로 잡고싶네요 이번 경험으로 유니티 실행순서에 관해 공부해보게 됬네요
-
미해결15일간의 빅데이터 파일럿 프로젝트
하둡에 파일을 입력하는 과정에서 오류가 발생합니다
다음과 같이 접속에 실패했다고 나오는데 해결방법이 있을까요? 안전모드에서 벗어나려고 해도 자꾸 저 에러메세지가 뜹니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
질문있습니다. 프로젝트이름과 yml의 spring application name
질문있습니다!프로젝트의 생성이름과 yml파일의 'spring:application:name:~~'의 ~~부분의 이름이 동일해야하나요??
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
서브쿼리로 문제를 풀고 싶습니다.
다만 아래의 서브 쿼리는 에러를 발생합니다. 붉은 줄은 4라인이나 실제 에러는 5라인이 발생시킵니다. 제가 원하는 것은 "group by에서 날짜별로 묶음 select의 서브 쿼리에서 status가 complete이 아닌 ID의 갯수를 셈" 입니다. 어떻게 수정하면 좋을까요
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
SELECT에서 만든 field, SELECT에서 재사용하기
안녕하세요, SELECT에서 만든 field, SELECT에서 재사용할 수 있나요? 강의 마지막 부분에 언급하신게 굳이 서브쿼리로 묶을 필요 없다고 하셨습니다만, 서브 쿼리로 묶지 않으면 아래에서 활용이 불가능하던군요. cancel_count를 참조할 수 없다는 에러가 뜨네요. 서브 쿼리를 쓰지 않고 이 문제를 풀 수 있나요?
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
몽고 db는 뭔가 post를 해야 테이블이 생기는게 맞나요?
질문1 post 테이블에 뭔가 post맨을 통해 포스트 요청을 날리니면 데이터 구조가 만들어지고 데이터가 저장 됩니다. 그전에는 테이블 구조가 안만들어지는게 맞나요? 별개의 명령어를 날려서 만드는 방법이 따로 있는건 아닌가요? 질문2 몽고 디비를 여러명이 같이 써도 되는지 궁금합니다 .env에 몽고 디비 접속정보가 있는데 여러사람이 통째로 깃허브에서 다운받아서 그대로 같은 주소의 몽고 디비를 참조 해도 되는지 궁금합니다. 동료 개발자들에게 공유해준다거나 했을때 그럼 과금이 된다거나 보안이 털린다거나 문제가 생길수 있나요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
LIKE 연산자가 숫자에도 사용 가능한가요?
연습하다가 혹시나 해서 해봤는데, 숫자에서도 사용이 가능하더라고요 이 경우엔 어떻게 처리가 되는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다운받은 솔루션 파일 경로 관련 질문드려요
oop text_rpg3에 있는 파일을 다운받아 보려고 하는데 이런 문제가 생깁니다. 꼭 경로와 똑같이 파일을 만들어줘야 하는 건가요?
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
cubemx에서 설정관련
강의에서 cubemx에서 타이머1/2/3/4 등 설정한 후 어떤 타이머 옆에는 체크표시가 되어 있어 ok인데 어떤 타이머 옆에는 삼각형안에 ! 표시(ng)가 되어 있는 것은 내부적으로 충돌이 되었을 때 발생하는 것으로 알고 있습니다. 강의 동영상 cubemx에서도 동일한 문제가 나타나고 있는데 괜찬은가요 ChrisP님?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
Cannot use import statement outside a module
안녕하세요. 첨부 이미지와 같은 오류가 발생해서 tsconfig.json의 "module": "esnext" 부분을 "module": "commonJs" 로 수정하니 webpack이 정상적으로 동작합니다. module을 esnext에서 commonJS로 바꾸게 되면 문제가 있을까요?
-
미해결3dsmax 초급부터 전문가까지 - 한방에 끝내는 3dsmax 강좌
0:50부분에 Diffuse 버튼이 안보여요ㅠㅠ
제가 쓰는게 2022버전이라서 그런지 Blinn Basic Parameters 칸도 안보이고 Diffuse도 없는데 2022버전에는 어떤거로 하는건지 알 수 있을까요?ㅠㅠ
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
Maven에서 webapp 이 없는데 어떻게 해야할까요?...ㅠㅠ
Maven, tomcat, JAVA를 모두 확인했는데 마빈에서 저게없네요..ㅠㅠ