묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결언리얼 엔진4 (Unreal Engine) 3D 횡스크롤 게임 만들기
tolerance 가 있습니다
안녕하세요 선생님! 자주 질문을 올리게 되네요. 일단, 애니메이션을 뛰어넘고 이번 강의를 듣는데요, 막판에 결과가 이상하길래, 보아하니 버전이 다른탓에..(제가 잘못 했죠..) Normalize 함수에 tolerance라는 값이 있었습니다. 이걸 1.0으로 그냥 넣어봤더니 선생님이랑 같은 결과가 나왔습니다. 일단 된 것도 기쁘지만, 왜 그런지를 이해할 수 없어서요! tolerance는 뭐할 때 어떻게 쓰는 값인지 알 수가 있을까요? 설명에는 Minimum squared vector length 라는데..이해하기 어렵습니다 ㅠㅠ
-
미해결WEB2 - JavaScript
태그 색에 관하여..
저는 <script>를 입력 후 Enter를 치면 태그색이 회색으로 변하고 줄도 자동으로 안 맞춰집니다..
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
best_score_값과 pred값이 다른 이유
안녕하세요, 구글코랩에서 GridsearchCV를 실행하다가 궁금한 점이 생겨 질문합니다. grid_dtree.best_score_ 를 출력하면 정확도가0.975가 나오고 pred=grid_dtree.predict(X_test)에서 pred를 출력하면 0.9667이 나옵니다. refit=True옵션이 최고성능을 내는 파라미터로 재학습하는 것이니 grid_dtree를 테스트 데이터셋으로 학습 및 예측한 pred와 best_score_ 속성 값은 동일해야 하는 것 아닌지 궁금합니다. 두 값이 다른 이유는 K폴드를 실행하는 과정에서 학습데이터셋과 테스트데이터셋의 구간이 강의에서 나온 구간과는 약간 상이해서 그런듯합니다. 이것도 맞는지 알려주시면 감사하겠습니다!
-
미해결애플 웹사이트 인터랙션 클론!
강사님 질문있습니다.
const calcValues = (values, currentYoffset) calcValues 함수에 values 값이 제대로 들어가지 않습니다. calcValues 함수 속에서 console.log(values, "작동") 을 기입해도 undefined라고 등장하고, 당연히 해당 함수를 돌릴때, 계속 아래와 같은 에러가 등장합니다. Uncaught TypeError: Cannot read property 'length' of undefined --- 여기서 등장하는 length는 if (values.length === 3) { 이부분이라고 생각해주시면 감사하겠습니다. 아래 복사한 제 코드문입니다. 무엇이 잘못일까요...? (() => { let yOffset = 0; // window.pageYOffset 대신 사용할 변수 let prevScrollHeight = 0; // 현재 스크롤 위치(yOffset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; // 현재 활성화된(눈 앞에 보고있는) 씬(scroll-section) let enterNewScene = false; const sceneInfo = [ { // 0 type: "sticky", heightNum: 5, // 모든 디스플레이 높이의 5배로 지정해준다. scrollHeight: null, 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" ) }, values: { messageA_Opacity_in: [0, 1, { start: 0.1, end: 0.2 }], messageB_Opacity_in: [0, 1, { start: 0.3, end: 0.4 }], messageC_Opacity_in: [0, 1, { start: 0.5, end: 0.6 }], messageD_Opacity_in: [0, 1, { start: 0.7, end: 0.8 }], messageA_Opacity_out: [1, 0, { start: 0.25, end: 0.3 }], messageB_Opacity_out: [1, 0, { start: 0.45, end: 0.5 }], messageC_Opacity_out: [1, 0, { start: 0.65, end: 0.7 }], messageD_Opacity_out: [1, 0, { start: 0.85, end: 0.9 }], messageA_translateY_in: [20, 0, { start: 0.1, end: 0.2 }], messageB_translateY_in: [20, 0, { start: 0.3, end: 0.4 }], messageC_translateY_in: [20, 0, { start: 0.5, end: 0.6 }], messageD_translateY_in: [20, 0, { start: 0.7, end: 0.8 }], messageA_translateY_out: [0, -20, { start: 0.25, end: 0.3 }], messageB_translateY_out: [0, -20, { start: 0.45, end: 0.5 }], messageC_translateY_out: [0, -20, { start: 0.65, end: 0.7 }], messageD_translateY_out: [0, -20, { start: 0.85, end: 0.9 }] } }, { // 1 type: "normal", // heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-1") } }, { // 2 type: "sticky", heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-2") } }, { // 3 type: "sticky", heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-3") } } ]; ///////////////////////////////////////////////// const setLayout = () => { // 각 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { if (sceneInfo[i].type === "sticky") { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * innerHeight; } else { sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.style.offsetHeight; } sceneInfo[ i ].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } totalScrollHeight = 0; yOffset = window.pageYOffset; for (let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break; } } document.body.setAttribute("id", `show-scene-${currentScene}`); }; ///////////////////////////////////////////////// const calcValues = (values, currentYoffset) => { let rv; let scrollHeight = sceneInfo[currentScene].scrollHeight; let scrollRatio = currentYoffset / scrollHeight; console.log(currentYoffset); if (values.length === 3) { let partScrollStart = values[2].start * scrollHeight; let partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if ( currentYoffset >= partScrollStart && currentYoffset <= partScrollEnd ) { rv = ((currentYoffset - partScrollStart) / partScrollHeight) * (values[1] - values[0]) + values[0]; } else if (currentYoffset < partScrollStart) { rv = values[0]; } else if (currentYoffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; }; const playAnimation = () => { const Values = sceneInfo[currentScene].values; const objs = sceneInfo[currentScene].objs; const currentYoffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYoffset / scrollHeight; switch (currentScene) { case 0: console.log("0번입니다.", 0); if (scrollRatio <= 0.24) { objs.messageA.style.opacity = calcValues( Values.messageA_Opacity_in, currentYoffset ); objs.messageA.style.transform = `translateY( ${calcValues( Values.messageA_TranslateY_in, currentYoffset )}% )`; } else { objs.messageA.style.opacity = calcValues( Values.messageA_Opacity_out, currentYoffset ); objs.messageA.style.transform = `translateY( ${calcValues( Values.messageA_TranslateY_out, currentYoffset )}%)`; } break; case 1: console.log("1번입니다.", 0); break; case 2: console.log("2번입니다.", 0); break; case 3: console.log("3번입니다.", 0); break; } }; const scrollLoop = () => { enterNewScene = false; prevScrollHeight = 0; for (let i = 0; i < currentScene; i++) { prevScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight) { enterNewScene = true; currentScene++; document.body.setAttribute("id", `show-scene-${currentScene}`); } if (yOffset < prevScrollHeight) { enterNewScene = true; if (currentScene === 0) return; currentScene--; document.body.setAttribute("id", `show-scene-${currentScene}`); } if (enterNewScene) return; playAnimation(); }; window.addEventListener("scroll", () => { yOffset = window.pageYOffset; console.log(yOffset); scrollLoop(); }); window.addEventListener("load", setLayout); window.addEventListener("resize", setLayout); })();
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
프로젝트 생성 후, 메인 실행하고 끄면 에러가 발생합니다.
이니셜라이저로 만들어서 압축풀고 annotation processor체크하고 메인 실행하면 잘됩니다. 화이트라벨 페이지도 뜨구요. 그런데 종료하면 이런 에러가 뜨네요... 계속 프로젝트 만드는 건 문제 없지만 프로그램 종료마다 이게 뜨니 불안합니다. 혹시 이게 뭔지 아시는 분 계신가요? ㅠㅠ
-
미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
테스트 환경 개선 질문
안녕하세요 강사님 계속 잘 따라하다가 테스트환경개선하기부분에서 막혔습니다. 패키지 파일에서 NODE_ENV=test 추가해주고 index.js에 변경한 부분 process를 이용해서 반영해 보았는데 계속 test 실행시 NODE_ENV가 인식이 안되거나 내부및외부 명령어가 아니라고 뜨는데요... 답변주시면 감사하겠습니다.
-
미해결애플 웹사이트 인터랙션 클론!
requestanimationframe 질문
안녕하세요 강사님 두가지 질문이 있는데요 첫번째로는 function loop{... requestanimationframe(loop) } 일때 loop이 계속 돌고있는데 이건 그러면 loop함수가 없어지지 않고 계속 생성되고 있는건가요?? 답변주시면 감사하겠습니다. 그리고 두번째로는 위의 addEventListener함수에서 rafId = requestAnimationFramp(loop) 을 쓰지 않고 그냥 loop을 쓰면 되지 않나요? rafId는 loop안에서만 사용되어도 상관없다고 생각이 돼서요. 답변주시면 감사하겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
class 안에서 자신을 재사용? 하는 경우
class TreeNode<T> { public T Data { get; set; } public List<TreeNode<T>> Children { get; set; } = new List<TreeNode<T>>(); } 이 부분에서 현재 정의하는 클래스 내부에 자신을 다시 사용하는 것이 왜 가능한 것인가요?(TreeNode 클래스의 정의 내부에 TreeNode가 사용되는 것) 이전부터 이렇게 사용하시길래 그냥 지나가려다가 궁금해서 질문드립니다.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
StreamBuilder dispose 문의.
안녕하세요 강사님. search_page.dart(StatefulWidget) 파일내용중 문의 드립니다. StreamBuilder 에 대해서 dispose 할 필요는 없나요? 필요하다면 어떻게 처리하는지 문의 드립니다. 감사합니다.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
StreamBuilder dispose 문의.
안녕하세요 강사님. root_page.dart(StatelessWidget) 파일내용중 문의 드립니다. StreamBuilder 에 대해서 dispose 할 필요는 없나요? 필요하다면 어떻게 처리하는지 문의 드립니다. 감사합니다
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
git 허가 부탁드립니다~
git 허가 부탁드립니다~!!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
조합만들기처럼 res 리스트를 만들어서
안녕하세요 저는 sum을 인자로 두지않고, 조합만들기처럼 res 리스트를 만들어서 진행했습니다. import sys sys.stdin = open("input.txt", 'r') def dfs(L, s): global cnt if L==k and sum(res) % m ==0: cnt+=1 else: for i in range(s, n): res[L] = num[i] dfs(L+1, i+1) if __name__ == "__main__": n, k = map(int, input().split()) num = list(map(int, input().split())) m = int(input()) cnt = 0 res = [0]*(k) dfs(0,0) print(cnt) 10. 조합만들기에서 총합 개념만 조금 더해서 만든 코든데 계속 IndexError: list assignment index out of range가 납니다.. 왜 그런지 모르겠어요..
-
미해결플렉스(Flex) 반응형 웹사이트 포트폴리오(The World's Best Cities)
완성본을 보고 있습니다.
아직 1회차로 정주행 하고 있습니다. 완성본으로 모바일반응형으로 화면 전환하여 트리거를 클릭하여 .active를 넣어준 후 다시 클릭해 빼준 후, 다시 웹화면으로 돌아오면, .gnb와 .sns가 사라져 있습니다. 새로고침하면 다시나오는데, 일시적인게 아니고 계속그렇습니다. 제 생각에는 $('.trigger').click(function(){ $(this).toggleClass('active') $('.gnb, .sns').toggle() }) 여기에서 단순히 $('.gnb, .sns').toggle() 이렇게만 하면 .gnb와 .sns 라는 클래스가 아예 들어갔다 사라졌다를 하기 때문에, 웹화면에도 영향을 미치는 것으로 판단됩니다. 물론 이 파트를 플렉스 관련하여 배우는 거라 이 부분이 그렇게 중요하지 않고 넘길 수 있는 부분이지만, 조금 더 확실히 하고 싶었습니다. 다음 영상에서 이부분에 대해 언급을 해주셨으면 이 질문을 삭제하겠습니다. 괜한 또 오지랖인것 같아서. 그래서 선생님께서 그동안 가르쳐주신걸 기초로 했을 때, CSS 의 반응형 즉 미디어쿼리 파트에 .gnb.active, .sns.active { display: block; } 이 부분을 추가하고, 제이쿼리를 $('.trigger').click(function(){ $(this).toggleClass('active') $('.gnb, .sns').toggleClass('active') }) 이렇게 수정해 보니 잘 작동되었습니다. 이 방법도 괜찮은가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
DDL문 생성시 주석 관련 질문입니다.
엔티티 정보를 토대로 DDL문이 만들어 지는데 컬럼 주석은 만들어지지 않습니다. 컬럼주석 생성시 DB에 종속되지 않고 해주는 어노테이션이나 기능이 있나요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
low level code에 관해 질문드립니다.
안녕하세요. 선생님 현재 대학원 진학을 앞둔 학생입니다. 선생님 강의를 통해 다향한 Object detection에 내용을 배울 수 있어 감사드립니다. 다만, 저의 학습 목표가 기존 모델의 구조를 변형 혹은 추가를 하려고 하다 보니 제한점이 생겨 질문드립니다. 강의 실습에 API를 사용하셨는데 혹시 API가 아닌 low level의 code를 참고할 수 있는 site가 있을까요? API의 경우 기존 code에 접근하기가 오히려 어렵게 느껴져서요... 좋은 강의 정말 감사합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
7:37초에 findIndex 대신 find 써준 이유가
draft를 써서 굳이 불변성 유지를 신경써줄 필요가 없어졌기 때문에 Index를 찾을 필요없이 그냥 바로 find를써서 v.id === action.data.postId인 객체를 찾아준건가여??
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
13분 40초 부근에 long 타입의 변수는 id계열에 사용한다고 하셨는데
id계열이 무엇인지 알 수 있을까요?
-
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
해외 지수 크롤링건입니다
삭제된 글입니다
-
미해결실전 리액트 프로그래밍
성능 이슈 관련해서 문의드려요
강사님 안녕하세요. 강사님 강의가 좋아서 몇 번을 돌려보고 있는 지 모르겠습니다. 좀 더 실무에 활용할 수 있는 리액트 두번째 강의도 만들어 주시면 안될지요? ㅎㅎ 오늘은 강의에서 적용하셨던 Antd 의 다양한 요소를 함께 적용해 보고 있는데요.Antd 의 Form 에 다양한 요소들(Input, Select, Radio 등) 을 담아서 양식 등록하는 화면을 만들어 보고 있습니다. 만약 Form 안에 많은 항목들이 담긴 양식을 하나 개발한다고 가정해보겠습니다.양식의 모든 요소들은 Redux 를 사용하여, 강의님이 설명해주신 dispatch(SetValue(...)) 와 useSelector 를 사용하여 연동을 시키구요.. 이럴 경우, form 의 한 가지 요소만 값이 변경해도 양식 전체의 가상돔이 리렌더링이 발생할 듯 한데요..혹시 양식의 요소가 많아질 경우, 양식을 하나의 컴포넌트가 아닌 여러개의 컴포넌트로 분리시키는 것이 중요할 지 궁금합니다.(한번에 저장되는 양식이라 할지라도) 쪼갠 컴포넌트들이 재활용 가능성이 전혀 없는 Component 라 할지라도 성능을 고려하여 state 의 변화에 따른 렌더링의 범위를 줄이기 위해 하나의 양식 컴포넌트를 여러 개로 쪼개야만 하는 것인지.. 이런 부분들이 공부하면서 어려운 점이네요..조언을 부탁드리겠습니다.
-
미해결QGIS 기초와 Python의 만남
food_layer.invalid()를 사용했는데 왜 저런 빨간 글씨가 나올까요?
(사진)