묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨타입스크립트 입문 - 기초부터 실전까지
유니온 없애 보았습니다.
https://codepen.io/honux77/pen/poEPGVB 그런데 약간의 코드 중복이 발생하는데 어떻게 줄이는게 좋을지 모르겠어요. 제네릭 강의 너무 좋았습니다! 감사합니다!
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
실행이 갑자기 안됩니다. ㅠㅠ
질문을 안드리고 싶은데..ㅠㅠ 자꾸만 질문을 하게 되네요.. 죄송합니다. 실행이 잘 되던 것이 어느날 갑자기 안되기 시작합니다. 어제도 고생해서 다시 예전 버전으로 복사해서 어찌어찌 됐는데.. 오늘도 잘 되다 갑자기 또 안됩니다. 구글링을 해보니 메모리 누수 관련된거 같은데.. 어떻게 메모리를 늘려야 하는지 모르겠습니다. 에러 내용은 아래와 같습니다. react-native run-android, ios 둘다 아래의 내용이 나옵니다. Failed to construct transformer: { Error: Call retries were exceeded at ChildProcessWorker.initialize (/Users/yspark/project/react_native/GOGOING/node_modules/jest-worker/build/workers/ChildProcessWorker.js:193:21) at ChildProcessWorker.onExit (/Users/yspark/project/react_native/GOGOING/node_modules/jest-worker/build/workers/ChildProcessWorker.js:263:12) at ChildProcess.emit (events.js:189:13) at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) type: 'WorkerError' } Error: Call retries were exceeded at ChildProcessWorker.initialize (/Users/yspark/project/react_native/GOGOING/node_modules/jest-worker/build/workers/ChildProcessWorker.js:193:21) at ChildProcessWorker.onExit (/Users/yspark/project/react_native/GOGOING/node_modules/jest-worker/build/workers/ChildProcessWorker.js:263:12) at ChildProcess.emit (events.js:189:13) at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) 그리고 언제부턴가 android 폴더에 java_pid번호.hprof 파일이 생겼습니다. 분명 메모리 초과인거 같긴한데, 어떻게 메모리를 늘려야 하나요? 찾아보니 node --max-old-space-size=4096 yourfile.js 라고 되어 있는데, vs code 터미널창에서 임의의 js파일(console.log('ok')만 있는 yourfile.js를 만들어서 실행을 해보았는데 아무런 메시지 없이 실행은 된거 같은데. react-native run-ios 해도 위의 어마무시한 에러는 똑같이 뜹니다. 아, 어떻게 해야 할까요? 가르침을 주시면 정말 감사합니다. react-native 는 개발하기 너무너무 힘드네요..
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
공부방법 관련
안녕하세요 강의 잘듣고 있습니다. 머신러닝에 대한 개념이 많이 부족한지라 생각보다 시간이 걸리네요. 공부방법에 관한 질문드립니다. 혹시 코드를 하나하나 다 따라해보며 한줄한줄 다 이해하는게 나을까요 (현재 이런 방식으로 하고있습니다) 아니면 코드의 흐름 및 알고리즘 개념만 이해했으면 넘어가는게 나을까요?
-
미해결언리얼 엔진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계열이 무엇인지 알 수 있을까요?