묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
[개념부터 실습까지] 추천 시스템 입문편
강의 관련 질문
삭제된 글입니다
-
미해결파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap
댓글기능중에서
안녕하세요. 댓글을 쓸때 엔터(줄바꿈)는 댓글 남겼을때 기능을 안하는데 엔터 두번을 하면 줄바꿈 한번의 기능을 하네요. post 에서처럼 {{ comment.get_markdown_content | safe}} 쓰면 되지않을까 해서 여러곳에 놓아봤는데 해결이 안되네요. 혹시 어떻게 해결할 수 있을까요?
-
미해결네트워크 공격 유형 이해와 네트워크 위협 행위 분석
강의에 사용하신 ppt 자료 복습용 으로 사용하고 싶은데 메일로 받을수 있을까요?
강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
@Valid관련 에러를 처리할때
@Valid관련 에러를 BindingResult로 받는거랑 Errors로 받는거에 대한 차이가 따로 있을까요?
-
해결됨[NLP] IMDB 영화리뷰 감정 분석을 통한 파이썬 텍스트 분석과 자연어 처리
코랩에서 PDF 파일로 어떻게 변환하는 방법에 대해서...
안녕하세요. 계속 박 강사님의 강의를 다 듣고 있는데요... 실습하는 파이썬 코드 노트를 오프라인으로 PDF 파일로 보면서 학습하려고 하는데 코랩에서 PDF 파일로 변환하는 방법을 도저히 인터넷에서 찾을 수 가 없어서요. 혹시 알고 계시거나 다른 방법이 있는지요?..
-
해결됨애플 웹사이트 인터랙션 클론!
main.js 적용내용 강좌에서 에러가 나서 문의 드려요~
(() => { let yOffset = 0; //window.pageyOffset let prevScrollHeight = 0; // 현재 스크롤 위치(yOffset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; // 현재 활성화된(눈 앞에 보고있는) 씬(scroll-section) let enterNewScene = false; //새로운 scene이 시작된 순간 const sceneInfo = [ { // 0 type:'sticky', heightNum:5,//브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight :0, 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_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_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_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,//브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight :0, objs:{ container:document.querySelector('#scroll-section-1') } }, { // 2 type:'sticky', heightNum:5,//브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight :0, objs:{ container: document.querySelector('#scroll-section-2'), messageA: document.querySelector('#scroll-section-2 .a'), messageB: document.querySelector('#scroll-section-2 .b'), messageC: document.querySelector('#scroll-section-2 .c'), pinB: document.querySelector('#scroll-section-2 .b .pin'), pinC: document.querySelector('#scroll-section-2 .c .pin'), }, values:{ messageA_translateY_in: [20, 0, { start: 0.15, end: 0.2 }], messageB_translateY_in: [30, 0, { start: 0.6, end: 0.65 }], messageC_translateY_in: [30, 0, { start: 0.87, end: 0.92 }], messageA_opacity_in: [0, 1, { start: 0.25, end: 0.3 }], messageB_opacity_in: [0, 1, { start: 0.6, end: 0.65 }], messageC_opacity_in: [0, 1, { start: 0.87, end: 0.92 }], messageA_translateY_out: [0, -20, { start: 0.4, end: 0.45 }], messageB_translateY_out: [0, -20, { start: 0.68, end: 0.73 }], messageC_translateY_out: [0, -20, { start: 0.95, end: 1 }], messageA_opacity_out: [1, 0, { start: 0.4, end: 0.45 }], messageB_opacity_out: [1, 0, { start: 0.68, end: 0.73 }], messageC_opacity_out: [1, 0, { start: 0.95, end: 1 }], pinB_scaleY: [0.5, 1, { start: 0.6, end: 0.65 }], pinC_scaleY: [0.5, 1, { start: 0.87, end: 0.92 }] } }, { // 3 type:'sticky', heightNum:5,//브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight :0, objs:{ container:document.querySelector('#scroll-section-3'), canvasCaption:document.querySelector('.canvas-caption') }, valeus:{ canvasCaption_opacity: [ 0, 1, { start: 0, end: 0 } ], canvasCaption_translateY: [ 20, 0, { start: 0, end: 0 } ] } }, ] function setLayout(){ //각 스크롤 섹션의 높이 세팅 for(let i =0 ; i<sceneInfo.length; i++){ if(sceneInfo[i].type==='sticky'){ sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; }else if(sceneInfo[i].type==='normal'){ sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.offsetHeight; } sceneInfo[i].objs.container.style.height =`${sceneInfo[i].scrollHeight}px`; } console.log(sceneInfo); yOffset = window.pageYOffset; let totalScrollHeight =0; 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}`); } function calcValues(values, currentYOffset){ let rv; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / sceneInfo[currentScene].scrollHeight; if(values.length===3){ //start const partScrollStart = values[2].start * scrollHeight; const 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{ //end rv = scrollRatio* (values[1]-values[0])+values[0]; } return rv; } function playAnimation(){ const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; // console.log(currentScene); switch (currentScene){ case 0: if(scrollRatio <= 0.22){ //in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in,currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in,currentYOffset)}%, 0)`; }else{ //out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out,currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out,currentYOffset)}%, 0)`; } if (scrollRatio <= 0.42) { // in objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.62) { // in objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; } break; case 1: // console.log('1 play'); break; case 2: // console.log('2 play'); break; case 3: // console.log('3 play'); break; } } function 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); scrollLoop(); }) // window.addEventListener('DOMContentLoaded',setLayout); window.addEventListener('load',setLayout); window.addEventListener('resize',setLayout); })() 0.62 scrollRatio 에서 에러가 나서 문의 드려요. main.js:187 Uncaught TypeError: Cannot read property 'style' of null
-
해결됨비전공자를 위한 개발자 취업 개론
안녕하세요 튜터님
안녕하세요 강의 방금 20분전에 결제 했는데 제가 생각한 강의와 다르네요.. 혹시 환불 요청 드려도 될까요??
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
jquery는 어떤 버전을 다운받아야 하나요
jquery는 어떤 버전을 다운받아야 하나요? 다른 수업에서 자바스크립트는 전체버전과 약식 버전...즉 용량이 큰것과 작은 것이 잇다고 배웟었는데...제이쿼리는 아래 그림 준 어떤것을 다운 받아야 하는지 알려주세요
-
미해결[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
import 모듈 실패
pygame 을 설치했는데도 계속 실행이 안되어서 새로운 가상환경을 만들어 설치하다 보니 기존 설치했던 파일들 까지 import 에러가 발생합니다. path때문에 ㄱ런거 같은데 방법이 있을까요?
-
스프링 기반 REST API 개발
기선님 안녕하세요. Location header와 Redirect URL이 이상하게 나와서 질문드립니다ㅠㅠㅠ
삭제된 글입니다
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
PyQt5 만들고 파이썬에서 코드작성하는데 오류가떠요
line 10, in <module> class Main(QMainWindow, Form_class):NameError: name 'Form_class' is not defined 이런오류가떠요 어떻게하죠??
-
미해결쉽게 배우는 Webpack
저도 쿠폰 부탁드립니다!
공지를 늦게 확인했네요. 지금 쿠폰 저도 받을 수 있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
User.js comparePassword 부분 오타 해결
영상속 코딩을 그대로 따라했는데 postman 으로 로그인 시도시 무한로딩상태이길래 이리저리 해보다가 if (err) return cb(err), cb(null, isMatch) 윗 부분에서 문제더군요. if (err) return cb(err); cb(null, isMatch); 이렇게 바꾸어주고 해결되었습니다. 영상속 코드 내용이 잘못된 것같긴한데 확실히 말은 못하겠네요.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
검증데이터, 테스트데이터에 대한 질문입니다.
조기 중단을 위한 eval_set에 test를 넣으면 안된다는 이야기를 들었는데, 어떤 이야기인지는 알겠습니다. 그런데 실제 실무에서는 어떤식으로 학습시키는지를 잘 모르겠습니다. 1) x_train과 x_test를 나눠 x_test를 테스트데이터로 잡고, x_train에서 일부를 때서 교차검증을 하든, 검증데이터를 따로 빼서 eval_set으로 넘겨주는 것이 맞는건가요? 2) 검증데이터로 조기 중단을 한 뒤, 테스트 데이터로 점검을 하는 방향으로 가는 것이라고 생각합니다. 그런데 Grid_Search_CV에서 나오는 최적 파라미터는 1개이고, 학습된 모델도 1개입니다. 그렇다면 테스트 데이터를 넣어서 점검을 하였을 때 비교할 것이 없는데 테스트 데이터를 따로 빼놓는 이유를 모르겠습니다. 무엇이 좋다 나쁘다를 확인하려면 비교대상이 있어야 되는 게 아닌가요? 테스트 데이터를 따로 빼놓아 편향이 이뤄지지 않게 하는 것 까진 이해했으나, 어디에 쓰기 위해, 무엇을 위해 빼놓는지를 잘 모르겠습니다. 실무에서 테스트 데이터가 무엇을 위해 사용되는지가 궁금합니다.
-
해결됨Vue.js 끝장내기 - 실무에 필요한 모든 것
API 설정 공통화 강의에서 에러가 납니다.
이 전 강의에서는 data.username 으로 접근도 되고 값 초기화 까지 되었는데 이 번 강의에서 코드를 쳤더니 409 에러가 납니다... 그리고 전에 소스로 돌려서 했더니 똑같은 에러가 나네요ㅜㅜ
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ThreadPool은 한 Main 함수당 한개인가요?
20:40 부터 ThreadPool 이라는 Static 클래스로 최소최대 스레드를 설정하지 않습니까? ThreadPool이랑 전혀 연관점이 없는 Task는 그 개수에 영향을 받고있고요? 한 프로그램이 사용하는 ThreadPool은 한개로 설정되어있는건가요? 마치 유니티 에디터의 프로젝트 세팅처럼? 또 ThreadPool의 최대 스레드 개수에 new Thread로 만들어진 스레드도 영향을 받나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
6:41 에 Start아래에 Wait 출력이 가끔 안나오는 이유가 뭔가요?
스레드를 5번만 돌리면 나오는데 500번 돌리면 안보입니다.
-
미해결직접 만드는 노션 템플릿 BEST 7선
각 페이지별로 있는 내용을 한곳에서 볼수 없을까요?
안녕하세요 강사님강의 너무 잘 봤습니다. 페이지 여러개에서 Todo list나 달력에 있는 내용을 한곳에서 볼 수 없을까요? 예를 들어 저희는 프로젝트 별로 페이지를 만들고 프로젝트 별로 Todo 리스트를 만듭니다.이렇게 해서 관리 하면 페이지 마다 들어가서 Todo 리스트를 봐야하는데이런 Todo 리스트만 모아서 볼수 있으면 좋을 것 같습니다. 강의에 나오는 내용인데 이해 못하고 다시물어보는 건가요? ^^;
-
미해결React로 NodeBird SNS 만들기
제로초님
제로초님 안녕 하세요 궁금한 것 이 있어 질문을 남깁니다. javascript 에서 const aa = [1, 2, 3, 4, 5, 6, 7, 8, 9] const bb = [1, 2, 3] 일때 두 배열의 중복 값인 [1,2,3] 만 가져 와야 될 경우 어떻게 해야 할지 해서 질문 남깁니다.
-
해결됨해커를 위한 iOS 앱 모의 해킹 전문 과정
Device Log허용 기준에 대해서
참고로 Dvia 앱의 Device Log는 예전에 iPhone4 iOS7에서 로그로 떨어지는것을 확인했습니다. iPhone5c iOS10.3.3 버전이후 부터는 확인할 수 없었습니다. Device Log에 개인정보 또는 중요정보가 남을때 취약점으로 진단하였습니다. 예전에 사용자ID와 OTP(One Time Password)가 Device Log에 출력되는것을 보고 취약점으로 잡아야 할지 고민한적이 있었습니다. ID와 OTP가 디바이스 로그에 출력될경우도 취약점인지요? 만약 취약점이라면 로그에 ID 또는 OTP의 일부만 출력될때는 취약점으로 잡아야 하는지요? 예)ki**** (마스킹 처링)