묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
에러가 나오고 포트번호 변경해도 똑같습니다...
(node:12096) Warning: Accessing non-existent property 'MongoError' of module exports inside circular dependency (Use `node --trace-warnings ...` to show where the warning was created) Example app listening at http://localhost:7000 MongoParseError: URI does not have hostname, domain name and tld at parseSrvConnectionString (C:\Users\mario\Documents\boiler-plate\node_modules\mongodb\lib\core\uri_parser.js:50:21) at parseConnectionString (C:\Users\mario\Documents\boiler-plate\node_modules\mongodb\lib\core\uri_parser.js:594:12) at connect (C:\Users\mario\Documents\boiler-plate\node_modules\mongodb\lib\operations\connect.js:284:3) at C:\Users\mario\Documents\boiler-plate\node_modules\mongodb\lib\mongo_client.js:225:5 at maybePromise (C:\Users\mario\Documents\boiler-plate\node_modules\mongodb\lib\utils.js:681:3) at MongoClient.connect (C:\Users\mario\Documents\boiler-plate\node_modules\mongodb\lib\mongo_client.js:221:10) at C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\connection.js:833:12 at new Promise (<anonymous>) at NativeConnection.Connection.openUri (C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\connection.js:830:19) at C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\index.js:345:10 at C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5 at new Promise (<anonymous>) at promiseOrCallback (C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10) at Mongoose._promiseOrCallback (C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\index.js:1135:10) at Mongoose.connect (C:\Users\mario\Documents\boiler-plate\node_modules\mongoose\lib\index.js:344:20) at Object.<anonymous> (C:\Users\mario\Documents\boiler-plate\index.js:7:10) 이런 에러가 발생하는데 어떤분이 ip주소 경로를 설정하시는거 올린거보고 따라했는데도 이런 에러가 계속 반복됩니다.... 해결해서 다음강의로 진행하고싶습니다 ㅠㅠㅠ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
routes폴더
혹시 routes같은 폴더를 안만들고 app.js,package.json이 위치한 폴더에 바로 index.js와 user.js를 만들면 실행이 안되는데 안되는게 맞는건가요?
-
미해결애플 웹사이트 인터랙션 클론!
선생님 안녕하세요 코드 적용 후 에러가 발생하고 있습니다 ㅠㅠ
벌써 두시간 째 원인 파악 하고 있는데 도저히 찾을 수가 없네요 선생님 도와 주세요 breakpoint 찍어봐도 제가 실력이 부족해서 지금까지 잘 해 왔는데 갑자기 이러니까 너무 슬프네요 살려주세요! 코드 첨부해드리겠습니다. (() => { let yOffset = 0; // window.pageYOffset 대신 쓸 수 있음 let prevScrollHeight = 0; // 현재 스크롤 위치 yOffset 보다 이전에 위차한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; // 현재 활성화된 씬 let enterNewScene = false; // 새로운 Scene이 시작되는 순간 true 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, // 노멀에서는 필요 없음 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-1'), content: document.querySelector('#scroll-section-1 .description') } }, { // 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') }, values: { } } ]; 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.offsetHeigh; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } 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 / scrollHeight; if (values.length === 3) { // start ~ end 사이에 애니메이션 실행 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 { 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; switch (currentScene) { case 0: if (scrollRatio <= 0.22) { //in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(${calcValues(values.messageA_tranlateY_in, currentYOffset)}%)`; } else { //out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(${calcValues(values.messageA_tranlateY_out, currentYOffset)}%)`; } // 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)`; // } // if (scrollRatio <= 0.82) { // // in // objs.messageD.style.opacity = calcValues(values.messageD_opacity_in, currentYOffset); // objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_in, currentYOffset)}%, 0)`; // } else { // // out // objs.messageD.style.opacity = calcValues(values.messageD_opacity_out, currentYOffset); // objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_out, currentYOffset)}%, 0)`; // } break; case 1: // console.log('1 play'); break; case 2: // // console.log('2 play'); // if (scrollRatio <= 0.32) { // // 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.67) { // // in // objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; // objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); // objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; // } else { // // out // objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; // objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); // objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; // } // if (scrollRatio <= 0.93) { // // in // objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; // objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); // objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; // } else { // // out // objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; // objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); // objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; // } 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 (currentScene) return; playAnimation(); } window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop(); }); window.addEventListener('load', setLayout); window.addEventListener('resize', setLayout); })(); // HTML <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>AirMug Pro</title> <!-- RESET CSS / STYLE CSS --> <link rel="stylesheet" href="css/default.css"> <link rel="stylesheet" href="css/blank.css"> <!-- 구글 폰트 --> <link rel="preconnect" href="https://fonts.gstatic.com"> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;900&display=swap" rel="stylesheet"> </head> <body> <div class="container"> <nav class="global-nav"> <div class="global-nav-links"> <a href="#none" class="global-nav-item">Rooms</a> <a href="#none" class="global-nav-item">Ideas</a> <a href="#none" class="global-nav-item">Stores</a> <a href="#none" class="global-nav-item">Contact</a> </div> </nav> <nav class="local-nav"> <div class="local-nav-links"> <a href="#none" class="product-name">AirMug Pro</a> <a href="#none">개요</a> <a href="#none">제품사양</a> <a href="#none">구입하기</a> </div> </nav> <section class="scroll-section" id="scroll-section-0"> <h1>AirMugPro</h1> <div class="sticky-elem main-message a"> <p>온전히 빠져들게 하는<br>최고급 세라믹</p> </div> <div class="sticky-elem main-message b"> <p>주변 맛을 느끼게 해주는<br> 주면 맛 허용 모드</p> </div> <div class="sticky-elem main-message c"> <p>온종일 편안한<br>맞춤형 손잡이</p> </div> <div class="sticky-elem main-message d"> <p>새롭게 입가를<br>찾아온 매혹</p> </div> </section> <section class="scroll-section" id="scroll-section-1"> <p class="description"> <strong>보통 스크롤 영역</strong> Lorem ipsum dolor, sit amet consectetur adipisicing elit. Necessitatibus expedita, aliquam odio iste quasi fugit doloribus vero ab quaerat sunt, corrupti voluptatum officiis vitae nemo? Nostrum, doloremque eveniet. Vero, dicta facere optio sapiente assumenda ad cupiditate magnam repellendus sunt itaque nostrum beatae saepe esse ab sed ipsam ipsum consequatur, modi nam, veniam aliquid voluptas. Corporis ipsum praesentium non commodi veritatis, ad nobis? Recusandae sunt neque, ad odio illo non tempore impedit, tenetur itaque ipsum voluptatem! Asperiores deleniti fuga laboriosam quasi beatae nisi mollitia, quos modi incidunt temporibus assumenda in earum fugit et cumque sunt explicabo sit dignissimos quam ex ea aliquid qui alias veniam. Expedita repudiandae exercitationem eum. Eius distinctio aut quisquam expedita consequuntur eligendi quos excepturi maxime veritatis esse, porro, aliquam quod officiis natus vitae autem accusantium in perferendis? Sequi, odit doloremque fugiat repellat temporibus animi facere inventore dolorum, iusto pariatur similique consequatur culpa neque eligendi ab sapiente, facilis eum nostrum hic aperiam ad accusantium. Porro a non minima accusantium fugit mollitia ipsum dolorem molestias quod repellendus qui quibusdam deleniti quia officia ea, vero deserunt accusamus tempore, iure molestiae animi praesentium consequuntur totam rerum? Ex quod optio impedit. Unde quis eligendi optio voluptates ipsam est pariatur obcaecati debitis maxime! </p> </section> <section class="scroll-section" id="scroll-section-2"> <div class="sticky-elem main-message a"> <p> <small>편안한 촉감</small> 입과 하나 되다 </p> </div> <div class="sticky-elem desc-message b"> <p> 편안한 목넘김을 완성하는 디테일한 여러 구성 요소들, 우리는 이를 하나하나 새롭게 살피고 재구성하는 과정을 거쳐 새로운 수준의 머그, AirMug Pro를 만들었습니다. 입에 뭔가 댔다는 감각은 어느새 사라지고 오롯이 당신과 음료만 남게 되죠 </p> <div class="pin"></div> </div> <div class="sticky-elem desc-message c"> <p> 디자인 앤 퀄리티 오브 스웨덴,<br>메이드 인 차이나 </p> <div class="pin"></div> </div> </section> <section class="scroll-section" id="scroll-section-3"> <p class="mid-message"> <strong>Retina 머그</strong><br> 아이디어를 광활하게 펼칠<br> 아름답고 부드러운 음료 공간. </p> <div class="canvas-caption"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum provident aspernatur veniam sed assumenda, repellendus, necessitatibus et ipsa laudantium dignissimos blanditiis expedita id debitis, pariatur rerum iure nisi magni repellat quaerat totam explicabo veritatis similique praesentium. Dignissimos dolores expedita totam pariatur quis quae similique labore voluptates delectus ipsa veniam facere, officiis repellendus ipsam ab molestiae voluptas modi facilis eaque excepturi voluptatem fugit sed sapiente. Unde esse nostrum eos. Laboriosam eligendi repellat commodi ad, dolore accusantium similique eum beatae aspernatur. Nihil ex officia, quae ullam magnam quasi ea saepe corporis molestias magni maxime ab repudiandae praesentium, numquam amet porro minima eveniet, asperiores voluptates quam nemo hic deserunt. Ipsa praesentium, omnis similique fugiat voluptates animi explicabo illum mollitia sed magni? Quisquam aperiam laborum nostrum consequuntur dolor quidem minima amet pariatur repellendus aut eius, modi accusamus quasi. Quaerat nisi dolores maiores, animi optio quidem obcaecati quisquam, rerum maxime corrupti natus vitae voluptatibus totam! Provident suscipit, adipisci sed nisi illum minus non eius. Nisi perferendis vitae accusamus ipsa voluptatum sint necessitatibus asperiores quae fuga exercitationem? Quos odio saepe optio labore, officia modi perferendis doloribus provident nisi ratione repellat architecto atque aliquam neque consequatur eaque cupiditate? Rerum beatae obcaecati necessitatibus ipsa accusamus dolor nobis saepe. </p> </div> </section> <footer> <div class="footer"> 2021 김기운 </div> </footer> </div> <script src="js/blank.js"></script> </body> </html>
-
미해결누구나 할 수 있는 안드로이드 앱 개발 - 2 (Kotlin)
itemClick != null 에 대하여
<1-3. 콘텐츠 앱 - itemClick, WebView 강의> 09:30) if(itemClick != null) 로 묶어주는데, itemClick 이 null이 아닌 경우에 실행한다. 라는 의미가 무엇인가요? 답변 부탁드려용, 감사합니당.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 선생님 다음 강의인 dx12 x 게임수학 에 관하여 && 쉐이더에 관하여 질문 드리겠습니다.
그래픽스 프로그래밍 즉, 쉐이더라는 것은 어렴풋이 감은 오겠는데, 정확히 우리가 무엇을 하는 것인지 여쭙습니다. 선생님 께서는 클라이언트 프로그래머 + 서버 프로그래머 지망생들을 위한 강의를 하시는데 질문 1 ) TA라는 직군이 있잖습니까? 그래픽스는 언리얼로 따지면 텍스쳐 이미지를 통해서 머터리얼을 만드는 작업이라고 보면 될텐데, 왜 굳이 TA라는 직군이 있는데도 불구하고 우리가 이것마져도 알아야 하는지 궁금합니다. 언리얼 컨텐츠 플머 라고 한다면 우리는 그래픽스 지식을 가지고 무엇을 하게 되는 건가요? 때에 따라서 머터리얼 제작하는 것으로 투입이 되나요? 질문 2) 구글을 뒤지다가 유니티는 쉐이더 코드를 코딩으로 할 수 있는 걸로 알고 있습니다. 블로그도 있고, 그런데 언리얼은 어디에도 쉐이더 코드를 만지는 곳이 없습니다. 머터리얼로 그냥 선 잇고 조합해서 만지는 것 밖에 없습니다 왜 유니티는 비쥬얼 스튜디오로 쉐이더 코드를 손 볼 때가 있고 언리얼은 아예 막혀있는지 그래서 머터리얼로 작업을 해야하는지 궁금합니다. 질문 3) 그래픽스 지식이 최적화와 관련이 있나요? 관련이 있다면 이 다음 수업에서도 다루어 주시나요?? 최적화최적화 그러는데 언리얼 최적화를 검색하면 뭐 툴을 이용해서 값 조절하고 그러는 것밖에없는데 언리얼 엔진 유튜브 에서 강연하는 것도 있기는 한데 그것도 언리얼 툴을 통해서 어느 부분이 성능을 더 잡아먹는지 확인하는 것 같은데 프로파일링인가? 아무튼 그래픽스 -> 최적화가 관련이 있다면 이 부분도 다루어 주시는 지 궁극적인 질문) TA라는 직군이 있는데 클라가 그래픽스 지식을 익혀서 어디서 써먹는지 궁금합니다.
-
해결됨우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
데코레이터 미사용 샘플 문의 - 결과가 2개씩 나옵니다.
강사님 질문 있습니다. 아래처럼 코드를 사용해서 실행하니 결과가 2개씩 나오는데, 이유가 무엇인가요? # 데코레이터 실습 import time def perf_clock(func): def perf_clocked(*args): # 함수 시작 시간 st = time.perf_counter() result = func(*args) # 함수 종료 시간 계산 et = time.perf_counter() - st # 실행 함수명 name = func.__name__ # 함수 매개변수 arg_str = ', '.join(repr(arg) for arg in args) # 결과 출력 print('[%0.5fs] %s(%s) -> %r' % (et, name, arg_str, result)) return result return perf_clocked @perf_clock def time_func(seconds): time.sleep(seconds) @perf_clock def sum_func(*numbers): return sum(numbers) # 데코레이터 미사용 none_deco1 = perf_clock(time_func) none_deco2 = perf_clock(sum_func) # print(none_deco1, none_deco1.__code__.co_freevars) # print(none_deco2, none_deco2.__code__.co_freevars) print() print('-' * 40, 'Called None Decorator -> time_func') none_deco1(1.5) print() print('-' * 40, 'Called None Decorator -> sum_func') none_deco2(100, 150, 250, 300, 350) 결과는 아래와 같습니다. (env_craw) D:\workspace\Python>python decolate.py ---------------------------------------- Called None Decorator -> time_func [1.51387s] time_func(1.5) -> None [1.51407s] perf_clocked(1.5) -> None ---------------------------------------- Called None Decorator -> sum_func [0.00001s] sum_func(100, 150, 250, 300, 350) -> 1150 [0.00014s] perf_clocked(100, 150, 250, 300, 350) -> 1150
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
자꾸 이런 에러가 나는데 왜 이런걸까요..;;;
(사진)
-
미해결누구나 할 수 있는 안드로이드 앱 개발 - 2 (Kotlin)
Interface 생성 이유
<1-3. 콘텐츠 앱 - itemClick, WebView 강의> 안녕하세용, 우와 RecyclerView에 Click 추가하는 부분이 어렵네용 (문법 파악이 아직 덜되어서 더 그런듯합니당. ㅠ) 07:21) ItemClick 이라는 interface 를 먼저 생성해주고, 그 후에 var형 변수로 선언해서 요리조리 사용하시던데 interface로 요렇게 따로 생성을 하고 시작하는 이유가 있나요? interface 에 대해서 구글링해보아도 요것의 용도를 잘 이해하지 못하겠어서요! ㅠ_ㅠ
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열의 이름이 포인터로 변환되는 조건?
강의에서 "배열의 이름은 배열의 시작 주소값을 가지는 TYPE*형 포인터로 쉽게 변환 가능"이라고 하셨는데요! 이건 C++에서 배열이름에 []가 붙지 않은채로 배열 이름만 덩그러니 놓여있을 때만 컴파일러가 포인터로 변환해준다는 말씀이신가요??? 특정 상황에서는 변환되지 않을 수도 있나요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
cross_val_score() 에서 scoring 인자값이 없는데
선생님~ 코드3번째 줄에서 cross_val_score() 에서 scoring 인자값이 없는데 어떻게 실행이 되는건가요..? 이전에 cross_val_score(..., scoring ='accuracy') 이렇게 scoring 인자값을 넣어주었었는데.. 여기서는 왜 넣지 않은건가요..? shift+tap 눌러서 함수 인자 설명을 봐도 scoring의 디폴트값이 None으로 되어있는데.. 어떻게 작동되는건지요..ㅠ? 그리고 오히려, GridSearchCV에서는 이전 강의에서는 GridSearchCV()를 쓸땐 인자로 scoring을 안써주셨었는데.. 이번 강의에서는 써주셨네요..! scoring 인자 값은 cross_val_score()나 GridSearchCV()에서 둘다 함수 인자로 꼭 써줘야 하는건가요~? 강의에서 빠뜨리신건지..아니면 생략도 가능한건지.. 이전강의와 달라서.. 기준이 헷갈리네요..ㅠㅠ
-
[리뉴얼] React로 NodeBird SNS 만들기
도메인 네임서버 에러가 납니다.. 원인좀 도와주실 수 있을까요 ?
삭제된 글입니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요 강사님. 저는 createQuery(OO.class)에 대해 이해를 하지 못하겠습니다ㅠ.
처음에는 이것에 대한 의문이였습니다. 왜 m.team은 Member.class로 데이터를 가져오고 저장하는 것이 아닌지, Team.class와 List<Team>인지. Member.class로 선언해도 m.age를 하면 데이터를 불러오지 못하는지. 이부분까지는 여러 실험을 통해 이해를 했습니다. (m.age를 저장하려면 Integer.class 로 해주면 되는) 가져올 데이터 타입.class로 해주면 되는.. (사실이부분도 이해하는데 엄청걸렸네요.ㅠㅠ) 이런식으로 member.getTeam을 해주면 값을 받아올 수 있고 팀A까지 값이 나오는데 (join이 이닌 select from Team으로 값을 가져옴) 했을 때 Team 정보가 없는 것은 Lazy 때문인 것 인가요? (원래 팀 정보가 없는게 궁금해서 작성한 것인데.. 쓰다보니까 혼자이해를 해버린거같네요..) 이 경우에는 Member에서 join을 통해 Team을 가져오지만 이경우에는 join이 아닌 따로 select * from Team으로 쿼리가 출력 되는데 왜 그런것인가와 실무에서 어떤 방식을 사용 하는것이 좋은지 궁금하네요.. 굳이 신경쓸 부분이 아닌가요 ?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
GridSearchCV refit에 관해서 질문합니다!
grid_dtree = GridSearchCV(dtree, ... , refit=True) 에서 refit을 True가 아닌 False로 설정한다면, 최적의 파라미터로 재학습이 되지 않기 때문에 grid_dtree.fit(X_train, y_train)했을 때 마지막 교차 검증시 사용한 파라미터로 학습이 되는 것인가요? 그럴 경우(refit=False)에 grid_dtree.best_estimator_를 통해서 최적의 파라미터를 가진 estimator를 다시 구해서 predict를 하는 것일까요? 제가 이해한 것이 맞는지 여쭤봅니다!
-
미해결[OpenCV] 파이썬 딥러닝 영상처리 프로젝트 2 - 불량사과를 찾아라!
저 역시 cv2.MultiTracker_create() 에러가 나네요...
쥬피터노트북에서 수업 진행중에 module 'cv2.cv2' has no attribute 'MultiTracker_create'error가 확인되는데... 해결이 잘 안됩니다...어떻게 해야할까요? cv2.TrackerKCF_create()는 잘 되는데 왜 Multi만 안될까요?? ? 설치도 반복해봤고, opencv-contrib-python에서 whl파일 받아서 수동으로 설치해봐도 같은...경우인데....너무 어렵네요... 왜 그럴까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 메서드 addOrderItem 질문합니다.
안녕하세요연관관계 메서드 부분에서addOrderItem 쪽이 Order.java void addOrderItem (Item item){ OrderItem orderItem = OrderItem.createOrderItem(this, item); orderItems.add(orderItem);} 이런식으로 Item을 넘겨줘서 한번에 서로서로 연결되도록 코드를 작성해도 상관없는건가요? OrderItem.java OrderItem createOrderItem(Order order, Item item){ OrderItem orderItem = new OrderItem(); orderItem.order = order; orderItem.item = item; return orderItem; }
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님~레이블인코딩할 때,
선생님 object 칼럼 레이블 인코딩하는 함수에서요~ 8번째 줄에서 le = le.fit(dataDF[feature]) 이렇게 쓰셨는데.. 그냥 le.fit(dataDF[featue])가 아닌가요~? 이전 데이터전처리 강의 중 레이블인코딩 부분에서는 객체로 따로 반환하지 않았었거든요.. fit()은 그냥 그대로 적용되는 거 아닌가요~?
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
log(변수명) 부분 헷갈리지 마세요(질문아님)
이후에도 계속 강좌를 보다 보니 코드창에 log(변수명)을 입력 후 제대로 실행이 안된다고 하시는 분들이 계신데, 강좌에서의 log(변수명)은 설명 편의성을 위해 console.log(변수명)을 임의로 축약한 형태이지 실제 작동하는 코드가 아닙니다. 실제로 코드창 또는 콘솔에 실행할때에는 console.log(변수명)으로 작성하셔야 합니다.
-
미해결홍정모의 따라하며 배우는 C++
14분 04초
void set(const position2D & pos_target{ set(pos_target.m_x, pos_target.m_y); // 1}void set(const int & x_target, const int& y_target) //2{ m_x = x_target; m_y = y_target;}1부분에서 사용된 함수가 2부분에 바디가 있고,2함수의 전방선언이 없는데어떻게 컴파일러오류없이 1부분에서 2부분의 함수를 사용할 수 있는지 의문입니다
-
미해결코로나맵 개발자와 함께하는 지도서비스 만들기 1
클릭이벤트가 왜 추가되지 않는지 모르겠습니다.
개발자님, 계속 코드를 다시 봐도 오류를 찾을 수 가 없어서 질문을 올립니다. index.ejs파일에 코드 오류가 없는거 같은데 왜 이벤트 생성이 제대로 안될까요?? <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> <title>myfirstmap</title> <link rel="stylesheet" href="/stylesheets/style.css"/> <script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=wex4n8j00f"> </script> </head> <body> <div id="navbar">myfirstmap</div> <div id="infoBox"> <div id="infoTitle">현재날짜</div> <div id="infoContent">2020.07.10</div> </div> <div id="map" style="width:100%; height:100vh;"></div> <script type="text/javascript" src="/data/data.js"></script> <script> var mapOptions = { center: new naver.maps.LatLng(37.3595704, 127.105399), zoom: 10, }; var map = new naver.maps.Map('map', mapOptions); var markerList=[]; var infowindowList=[]; for (var i in data){ var target=data[i]; var latlng=new naver.maps.LatLng(target.lat, target.lng); marker=new naver.maps.Marker({ map:map, position:latlng, icon:{ content:"<div class='marker'></div>", anchor: new naver.maps.Point(12,12) }, }); var content=`<div class='infowindow_wrap'> <div class='infowindow_title'>${target.title}</div> <div class='infowindow_content'>${target.content}</div> <div class='infowindow_date'>${target.date}</div> </div>` var infowindow=new naver.maps.InfoWindow({ cotent: content, backgroundColor:"#00ff0000", borderColor: "#00ff0000", anchorSize: new naver.maps.Size(0,0) }) markerList.push(marker); infowindowList.push(infowindow); } for(var i=0,ii=markerList.length; i<ii; i++){ naver.maps.Event.addListener(markerList[i],"click",getClickHandler(i)); } function getClickHandler(i){ return function(){ var marker=markerList[i]; var infowindow=infowindowList[i]; if(infowindow.getMap()){ infowindow.close(); }else{ infowindow.open(map,marker) } } } </script> </body> </html>
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
원인 찾았습니다.
원인을 찾으려고 이것저것 시도하니까 비밀번호에 @가 들어갈 경우 몽구스 연동하는 과정에서 문제가 발견되었습니다. 그리고 계정을 admin 디비에서 생성했을때와 직접 만든 nodejs라는 디비에서 만들었을 때 차이가 발생합니다. [상황1] 이 상황에서는 정상적으로 잘 접속합니다. use admin db.createUser({ user: 'nodejs', pwd: 'Nodejs210216&#', roles: ['root']}) [상황2] nodejs라는 디비를 만들고 계정을 생헝하면 권한 오류가 발생합니다. use nodejs db.createUser({ user: '계정명', pwd: '비밀번호', roles: ['readWrite']}) 제가 상황2처럼 하고 싶은 이유는 admin은 모든 테이블이 보이기 때문에 보안상 위험이 있어서 따로 디비를 만들고 그 디비안에 계정을 생성했는데 안되네요. 그런데 이상한건 제 로컬 피시에서는 상황1과 상황2 모두 잘됬는 데 클라우드 운영서버에서는 상황2가 안됩니다. 혹시 버전이나 뭐 그런게 있나요?