묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
repo 접근 권한
삭제된 글입니다
-
미해결[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
OpenCV강의를 듣고 있습니다.
노트북 웹캠을 이용해서 OpenCV로 필기체 숫자 인식 프로그램을 파이참을 실행 했는데요 위와 같이 웹캠 카메라가 회색으로 여러개가 겹쳐서 인식되면서 오류가 발생하여 '프로그램 닫기' 창이 뜹니다. 그냥 OpenCV 웹캠 동작 프로그램을 해도 같은 증상이네요. 무엇보다도 곰캠을 이용하여 노트북 웹캠을 사용하면은 잘 나옵니다. 혹시 저 말고도 이런 오류가 뜨는 사람이 없을까요?? 있다면 해결을 어떻게 하셨을 까요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
mock 서버생성안됌
No Mock server calls yet To call the mock server, follow these steps: 1. Add examples responses to each request that the mock server will return.Learn what examples are and how to use them 2. Send a request to the following mock server URL, followed by the request path: https://4c1170af-c0a8-481d-bac9-b4a0f190b250.mock.pstmn.io Copy Mock URLmock 서버가 생성이 안되는 것 같은데 어떻게해야할까요?
-
미해결초보를 위한 도커 안내서
docker 이해
docker에 대해서 구체적으로 아직 감이 오지 않아서 질문드립니다. macOS 노트북에서 docker로 nodejs를 다운로드 한다고 했을때, nodejs를 다운하기 전에 os 이미지를 다운받는 게 맞나요? 1. nodejs를 설치할 Os 이미지 pull2. nodejs 설치그리고 이미 hub에 올려진 nodejs 이미지는 어떤 os에서 설치된건지 어떻게 알 수 있는건가요?
-
미해결홍정모의 따라하며 배우는 C++
extern 관련 질문이 있습니다
extern 은 다른 소스파일의 변수를 공유한다는 의미로 사용한다고 알고 있습니다. (a.cpp와 b.cpp 소스 파일이 있을 때, a.cpp에는 int num=123; , b.cpp에는 extern int num; 와 같은 식으로) 그런데 강의 34:00 에 보면 test.cpp에서 extern int a=123;로 초기화를 한 후 main.cpp에서 extern int a; 를 작성하시던데 두 cpp 파일에서 변수 a에 모두 extern을 사용하는 이유를 알고싶습니다.
-
미해결화이트해커가 되기 위한 8가지 웹 해킹 기술
화면 크기조절
강의화면처럼 꽉찬 화면이아니라 화면크기를 늘려도 가상머신화면은 작은 상태 그래로 입니다 어떻게 하면 자유롭게 크기가 딱 맞제 조절될까요?
-
해결됨유니티와 C#으로 배우는 카타나제로스타일 게임만들기 (기본편)
강의 질문드립니다.
jumpdust_wall 이펙트 부분을 진행중인데 이전 강의까지 jumpdust를 만든적이 없는데 강의에서 계속 jumpdust에 대해서 언급합니다. 어떻게 된건가요? 먼지효과내기2에서 벽설치로 넘어갈때 갑자기 jumpdust가 생깁니다. + 임시 해결 + 일단 jumpdust_wall 이미지를 90도 회전시켜서 jumpdust 이미지로 사용했고 jumpdust 스크립트는 landdust와 동일하게 작성해서 jumpdust 프리팹에 추가시켰습니다. player 스크립트에 추가된 내용은 강의 내용을 일시정지 해가면서 수정했습니다
-
미해결애플 웹사이트 인터랙션 클론!
add.js파일 적용 후 pin 오류
안녕하세요 선생님 강의 잘 듣고 있습니다 ㅎㅎ 다름이 아니라 main_add.js 파일 적용 후 pin부분때문에 Uncaught TypeError: Cannot read property 'style' of null 오류가 뜹니다... css파일과 html파일도 찾아보고 있는데 혼자서 해결해 보려고 했지만 시간만가고 해결책이 없는거 같아 질문드립니다 ㅎㅎ 사진은 오류가 나는 제 페이지입니다 ㅠ js코드 (() => { //이거슨 즉시 호출 함수 즉, (function(){ }()); 익명함수를 한번싼고 호출한거랑 같음. 이렇게하는 이유는 전역변수를 피하려고 let yOffset = 0; // window.pageYoffset 대신 쓸 변수 let prevScrollHeight = 0; //현재 스크롤 위치(yOffeset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; //현재 활성화된 (눈 앞에 보고있는) 씬(scroll-section) let enterNewScene = false; //새로운 scene이 시작되는 순간 true const sceneInfo = [ { //0 type: 'sticky', heighNum: 5, //브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight: 0, objs:{ // html DOM 객체 요소들 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 }], //{}안의 값은 애니메이션이 재생되는 구간 소수점인 이유는 비율로 했기때문에, 전체 스크롤에서 10% ~ 20%만 애니메이션으로 쓰겠다 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', //type normal에서는 height를 기본 default로 잡기때문에 필요가 없다 //heighNum: 5, //브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight: 0, objs:{ container: document.querySelector('#scroll-section-1') } }, { //2 type: 'sticky', heighNum: 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', heighNum: 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].heighNum * window.innerHeight; sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; // ``는 ''가 아니라 ~와 같이 있는것인데, 백틱이라고 한다 }else if(sceneInfo[i].type === 'normal'){ sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.offsetHeight; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}`; } yOffset = window.pageYOffset; let totalScrollHeight = 0; for(let i =0; i < sceneInfo.length; i++){ totalScrollHeight += sceneInfo[i].scrollHeight; //각 씬에 scrollHeight를 더해준다 if(totalScrollHeight >= yOffset){ //totalScrollHeight에 들어가는 값이랑 현재 스크롤위치값이랑 비교해서 현재 스크롤위치가 total보다 커지면 현재 위치를 currentScene으로 세팅하고 for문을 빠져나옴 currentScene = i; break; } } document.body.setAttribute('id', `show-scene-${currentScene}`); } function calcValues(values, currentYOffset){ //여기서 values는 opacity 0, 1 넣은 그 배열 , offset은 현재씬에서 얼마나 스크롤 됐는지 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; // yOffset(전체에서 현재 스크롤값) / 현재 씬의 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(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)`; } 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: // break; !!!case1은 2번째 섹션인데 그거슨 normal이라서 뺏음 case 2: 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)})`; } //translateY를 translate3d로 바꿨는데 translate3d(x값, y값, z값)이다. 이것을 쓴 이유는 브라우저 업데이트에 따라 달라질 수 있는데 //transform속성중 3d가 붙은 애들은 하드웨어 가속이 보장이 된다 즉, 퍼포먼스가 좋다. 그래서 애플에서도 3d이동이 아니더라도 3d를 쓴다 break; case 3: 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}`); //currentScene을 바뀔때만 설정한것 } if(yOffset < prevScrollHeight){ enterNewScene = true; if(currentScene === 0) return; //브라우저 바운스 효과로 인해 마이너스가 되는 것을 방지 (주로 모바일에서) currentScene--; document.body.setAttribute('id', `show-scene-${currentScene}`); //currentScene을 바뀔대만 설정한것 } if(enterNewScene) return; playAnimation(); } window.addEventListener('resize', setLayout); window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop(); }); //window.addEventListener('DOMContentLoad', setLayout); //DOMContent와 load의 차이는 load는 웹페이지의 이미지, 리소스들이 싹다 로딩이 되고 나서 실행 window.addEventListener('load', setLayout); //DOMC는 html객체들, DOM구조만 로드가 끝나면 바로 실행한다 이미지 같은것들이 로딩 안되더라도.. window.addEventListener('resize', setLayout); })(); html코드 <!DOCTYPE html> <html lang="en"> <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"> <title>AirMug Pro</title> <link rel="stylesheet" href="css/default.css"> <link rel="stylesheet" href="css/main.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 class="global-nav-item" href="#">About</a> <a class="global-nav-item" href="#">Ideas</a> <a class="global-nav-item" href="#">Shop</a> <a class="global-nav-item" href="#">Contact</a> </div> </nav> <nav class="local-nav"> <div class="local-nav-links"> <a href="#" class="product-name">AirMug Pro</a> <a href="#" class="">개요</a> <a href="#" class="">제품사양</a> <a href="#" class="">구입하기</a> </div> </nav> <section class="scroll-section" id="scroll-section-0"> <h1>AirMug Pro</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. Officia, commodi! Perspiciatis ex sapiente nihil architecto, sequi non impedit odit eos at magni dolorum aliquid quis nemo autem illo provident ipsa, corrupti recusandae asperiores aspernatur dignissimos! Aut iste neque iusto quaerat architecto quam ullam suscipit culpa, accusantium nesciunt porro adipisci cum magnam corrupti quia. Commodi iste ipsum, molestiae animi velit soluta error exercitationem id natus, architecto alias dolorem porro quia repellendus! Voluptatibus animi enim natus, id laboriosam nihil ducimus odio vel officiis commodi facere exercitationem aut laudantium quos repellendus molestiae doloremque modi ullam beatae quae ratione architecto iure maxime quam? Obcaecati impedit laborum nam optio sit, temporibus harum, expedita nihil incidunt officia tempora, iusto odio reprehenderit? Asperiores, ipsum ullam voluptatibus, totam veritatis odit, tempora molestiae impedit animi error hic molestias? Totam corrupti fuga rem minima cumque accusamus dolore modi explicabo corporis eos dicta exercitationem enim eius eum dolores laboriosam fugit nobis, aspernatur id ipsum maiores labore architecto consequuntur consectetur! Quaerat nisi officiis autem quod in ut officia. Error doloremque consequuntur ullam ipsa doloribus beatae deleniti culpa, cupiditate, perspiciatis ea odio voluptates repudiandae numquam facilis quae, dolorem consequatur provident impedit accusamus nesciunt placeat magnam! Sapiente quod aperiam eaque tempore omnis autem tenetur eum dicta totam quibusdam aliquam, vero, unde doloribus sint exercitationem dolore dolorum illo! Deleniti, recusandae voluptatibus? Ducimus ex atque doloribus soluta? Rem porro velit praesentium nesciunt, alias veniam amet perspiciatis natus veritatis, nisi vel culpa repudiandae impedit! Animi molestiae ipsam natus! Tempora consequatur quod aut impedit, dolores odio asperiores in! Quidem quisquam necessitatibus illo dolorem nihil reiciendis eum repudiandae ratione facere. Enim nemo tenetur rem, eos, veniam, incidunt beatae sapiente inventore necessitatibus illum aliquid aliquam provident ipsam! Magni id inventore debitis at odio dicta architecto quos dolorem ea dolores, nulla numquam ipsam voluptates delectus similique obcaecati ducimus. Expedita, impedit? Dolorum corporis in officiis deserunt ipsa dolores, distinctio similique nihil placeat illo ut reiciendis, ea libero, earum nesciunt omnis ratione id? Nostrum optio fugit voluptate reprehenderit eos voluptatum quaerat, molestias itaque accusantium enim dolores distinctio odit vel esse cum eaque voluptas vitae asperiores provident doloremque ipsa fuga cumque! Commodi sint odio recusandae, temporibus accusantium quis magni accusamus porro ducimus nam numquam harum placeat eveniet? Voluptatum officia ad provident expedita, amet nam ratione praesentium possimus! Sint ipsum vitae ipsam hic, nisi earum minima dicta minus. Mollitia similique nulla exercitationem consequatur praesentium quibusdam maxime velit quo iusto, saepe deserunt distinctio voluptas itaque veniam asperiores voluptatem! Hic, ratione, laudantium, suscipit optio nemo laboriosam sint ullam impedit repudiandae cumque amet. Repellendus ut sint ipsa! Exercitationem, dolorum libero pariatur repudiandae iusto eum minima tenetur dolore placeat nulla! Ut deleniti veritatis voluptate, quia quidem incidunt numquam nulla, tenetur at optio nostrum temporibus beatae eveniet, facilis animi maxime rem doloremque expedita minus porro architecto modi sapiente quisquam. Ipsa illo unde numquam tempore ipsum at delectus! Quam alias beatae tempora atque, ratione incidunt accusamus placeat saepe voluptatem? Blanditiis, obcaecati, exercitationem odit consequuntur rerum facilis debitis quasi hic modi doloremque id, dolore doloribus illo atque mollitia. Tenetur nostrum harum ab? </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> <div class="pin"></div> <div class="sticky-elem desc-message c"> <p> 디자인 앤 퀄리티 오브 스웨덴,<br>메이드 인 차이나 </p> </div> <div class="pin"></div> </section> <section class="scroll-section" id="scroll-section-3"> <p class="mid-message"> <strong>Retina 머그</strong><br> 아이디어를 광활하게 펼칠<br> 아름답고 부드러운 음료 공간 </p> <p class="canvas-caption"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore sit expedita at quibusdam ducimus illo nostrum atque porro totam veniam, omnis quaerat alias? Facilis quod obcaecati harum deserunt eos quas, repudiandae et odit nisi assumenda officiis beatae necessitatibus odio, voluptatem at blanditiis veniam ducimus eum aliquid tempore? Commodi dolores ut eaque illum vel dolor ducimus dolore distinctio repudiandae quisquam expedita libero nisi tempore consequuntur minima, sed saepe. Totam mollitia eaque corporis obcaecati dicta, modi nihil impedit soluta aperiam consequatur, necessitatibus voluptate ad! Sequi, assumenda molestiae exercitationem at ut fugit sapiente saepe cupiditate perferendis nulla nisi nesciunt ullam accusamus mollitia numquam doloremque? Praesentium assumenda architecto quae cupiditate recusandae, velit, ex nemo debitis sapiente neque aliquam delectus? Quam expedita nesciunt perferendis, vero officia ratione velit? Necessitatibus animi nobis quos fuga natus dolorum voluptatum, aliquid nemo quaerat perferendis explicabo repudiandae, reprehenderit ex delectus adipisci perspiciatis? Eum animi praesentium tempora exercitationem blanditiis, officia vitae voluptate sed. Fugit, maiores cumque! Nam reiciendis impedit corporis eaque, numquam ipsa dignissimos ex fugit. Ullam, reprehenderit incidunt praesentium voluptas qui tenetur exercitationem, officiis reiciendis consequuntur impedit explicabo aspernatur inventore! Quis exercitationem vel et voluptatum, sapiente dolore debitis doloribus, quas blanditiis neque vitae laboriosam deleniti! Dolore impedit facere repellat praesentium? </p> </section> <footer class="footer"> 2021, Made by ZZANGZZONG </footer> </div> </body> <script src="js/main.js"></script> </html>
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
autocomplete-python traceback output 알람창 제거 문의
안녕하세요. print와 같이 p만 입력하면 자꾸 저 빨간색 알람창이 뜹니다. 해결 방법좀 부탁드립니다.
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
folium
스타벅스 : 이디야 : 이런식으로 줄바꿈을 통해 타이틀을 나타내고 싶은데 어덯게 해야하나요? 그냥 \n으로는 한칸 띄어지는 것밖에 안되서요
-
3DS MAX 입문강좌 (입문부터 자동차 예제까지)
강의따라 만들어 border 누르면 저 삼각형 모양이 나와요
삭제된 글입니다
-
미해결아무것도 모르고 시작하는 C#
텍스트박스에 한계값을 주는법
앞자리 뒷자리 자르는 숫자 한계값을 텍스트박스에 줄려고 리브 이벤트를 사용해 보았습니다 근데 아무것도 안적고 그냥 다른칸으로 이동하니 에러가 나더군요 그래서 트라이 캐치문을 쓰니 되긴한데 다른방법이 또 있을까요 정석이라고 할만한? private void textBox2_Leave(object sender, EventArgs e) { try { if (Convert.ToInt32(textBox2.Text) > 2) { textBox2.Text = "2"; } } catch { } }
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
결측치관련질문입니다.
안녕하세요. 현재 강의를 듣고 있는 수강생입니다. 궁금한 점이 있어 글을 올립니다. '소재지도로명주소'의 null값이 '소재지지번주소'로 대체하여서 null 값이 '0'인 것 까지는 이해가 가는데 79번 라인에서 '소재지지번주소' 또한 null값이 제거된 이유가 궁금합니다. '소재지지번주소' null값도 제거하려면 다른 대체컬럼이 필요한 것이 아닌가요??
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
리소스 식별 URI 설계 시, 단수 복수
PPT 내용에 보면 회원 목록을 조회할 때는 복수로 조회하는 게 맞지만, 단일 회원 조회, 등록, 수정 삭제는 단수를 써주는게 덜 헷갈리지 않을까요? 다 복수로 쓰는 이유가 있나요?
-
미해결R로 배우는 통계
Mac 같은 경우
저는 mac을 쓰고 있는데 rtools가 따로 없는 거 같은데...이게 정상인가요...?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Error: No default engine was specified and no extension was provided 질문 드립니다.
제로초님 강의 너무 잘보고 있습니다. front는 전부 react로 back은 express로 하는 프로젝트를 작업중인데 view는 전부 react로 처리하고 있습니다. 현재 DB까지 다 연결했는데 종종 Error: No default engine was specified and no extension was provided 이 에러가 발생하는데 express에서 view를 담당하는 html이 없어서 그런 것 같습니다만 모든 뷰는 react에서 처리하고 싶어서 해결방법이 없을 까요???
-
미해결코로나맵 개발자와 함께하는 지도서비스 만들기 2
cluster 생성 질문
개발자님 몽고 DB cluster 를 생성하기 위해서 로그인을 하면 강의와 같은 화면이 뜨는 것이 아니라 아래와 같은 화면이 뜹니다. cluster 생성하기 위해서 이것저것 시도해보았지만 잘 안되어서 질문 올립니다. 감사합니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
해당 API가 CORS걸었는지..
Access to XMLHttpRequest at 'https://api.hnpwa.com/v0//news/1.json' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 하..슬프네요..;;
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
https, http 차이 질문입니다.
예제를 따라가다가 엠엘비파크 링크의 경우 실행이 되지 않는 것을 발견했는데 https를 http로 바꾸었을 때만 실행이 됐습니다. 이런 문제는 왜 발생하는 것인가요...?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
id="body" 태그가 안나옵니다.ㅜㅜ
7분쯤에 하신 것 처럼 <body>안에 <div>태그를 id 설정해서 3개 넣었습니다. 그 중에서 id가 body인 tag는 height:100%를 넣어줘도 생략돼서 나오더라구요... (id=header 이후 바로 id=footer div가 나옵니다) 제가 body의 크기를 따로 설정하지 않아서 내부에 있는 자식태그들의 크기의 합이 body의 크기가 된건가 싶은데, 선생님께서 하시는 걸 보면 따로 body의 크기를 설정 안해도 구현이 잘 되시더라구요 ㅠ 왜그런건가요?