코드 관련 질문은 아래와 같이 '코드블럭' 기능을 이용해주세요! + 오류 메세지도 함께 올려주시면 좋아요 🙂 const express = require('express'); const path = require('path'); const app = express(); const PORT = 3000; app.use(express.static(path.join(__dirname, '..'))); app.get('*splat', (req, res) => { res.sendFile(path.join(__dirname, '..', 'index.html')); }); app.listen(PORT, () => { console.log(`START SERVER`); }); 서버키고 localhost:3000에 접속하면 저는 사이트에 이미지가 안나와요 예제를 잘못따라친건가 싶어서 노트 예제 복붙하고 했는데도 안보이네요 콘솔탭 보니까 Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec. 라고 나오는데 해결법 아시나요? ⚠ 답변은 평일 오전 10시에 순차적으로 작성해드립니다. ⚠ '질문 해결'은 답변 작성일 기준 1일 이후에 적용됩니다.
목소리가 시원 시원하셔서 강의가 잘들어옵니다. 다름이 아니라 document.querySelector('div.content'); 이렇게 프로그래밍 하면 만약에 같은 페이지에 새로운 div content 클래스가 추 후에 또 생성되면 생각하지 않았던 동작이 일어 날수 있지 않나요 ? id 값은 유일하니까 id 값을줘서 dom 컨트롤 하는 방식이 좋나요 ?
🚨질문 작성법 및 안내사항 질문 작성법 섹션 4. Promise 객체 안녕하세요. 수강 중에 계속 헷갈려서 적어봤는데, 이게 맞나요? Promise가 resolve, reject를 콜백 함수로 사용. setTimeout에서 resolve(value+10)으로 호출. resolve는 Promise의 state를 성공? 으로 바꾸고 resolve= value+10 으로 변환 workA는 Promise를 반환 ...(객체?) .then을 통해 promise의 resolve 프로퍼티 반환? 반환된 값을 바로 매개변수 사용?(???) (resA) => {내용}; 을 콜백 함수로 이용. workA(10).then((resA) => {내용}); Promise는 미리 정의된 객체고 new Promise로 promise에 생성? 한 거죠?
npm i express 로 express 를 설치 후 강의와 같이 코드를 작성했지만 .. app.get('/*', (req, res) => {...}); 에서 오류가 발생합니다. TypeError : Missing parameter name at 2: https://git.new /pathToRegexpError 가 발생합니다. 구글에서 검색하여 보니 Express v5에서 '/*' 형식은 맞지 않는 것으로 보입니다. 따라서 아래와 같이 코드를 정규식으로 변환하니 제대로 실행 되었습니다. app.get(/^\/(.*)/, (req, res) => { res.sendFile(path.join(__dirname, '..', 'index.html')); }); 혹시 정규식 말고 다른 수정 방법이 있는지 알고 싶습니다. ⚠ 답변은 평일 오전 10시에 순차적으로 작성해드립니다. ⚠ '질문 해결'은 답변 작성일 기준 1일 이후에 적용됩니다.
template 변수를 빈 배열 리터럴 초기화한 후 배열에 push() 메서드를 사용하여 생성된 이미지 요소를 삽입하는 것이 맞다 봅니다. 나중에 출력 시 join() 메서드로 문자열 출력하는 것이 좋겠네요... 🙂 const API_URL = 'https://animal-api-two.vercel.app/'; const $content = document.querySelector('div.content'); let template = []; const getData = async () => { let res = await fetch(API_URL); try { if (res) { let data = await res.json(); data.photos.forEach((elm) => { template.push(`<img src="${elm.url}" alt="${elm.name}" />`); }); $content.innerHTML = template.join(' '); } } catch (err) { console.log(err); } }; getData(); ⚠ 답변은 평일 오전 10시에 순차적으로 작성해드립니다. ⚠ '질문 해결'은 답변 작성일 기준 1일 이후에 적용됩니다.
let $animalInfo = document.querySelector("div.animal-info"); let ageElement = document.querySelector("div#age"); console.log($animalInfo); console.log(ageElement); 다음과 같은 예제 코드를 실행했을 때, 이렇게 출력이 되는데요. 강의에서는 다음과 같이 태그와 함께 출력되는데 제 크롬 브라우저에서는 왜 다르게 나오는지 궁금합니다!
const changePage = page => { history.pushState({page}, `Title`, "/${page}" } 안녕하세요. 위 예제에서 pushState의 두번째 인자에 title이라고 해주셨는데 mdn을 보니 ununsed 로 되어있어서요. 영상을 봐도 title이 변경되진 않더라구요. 여기 수정이 필요할 것 같습니다. 감사합니다.
리액트로 작성된 textarea(controlled, uncontrolled 모두 포함) 의 경우에 개발자 도구에서 body 태그를 보면 무한깜빡거리는 현상이 있는데.. 이건 렌더링이 계속 발생하는거 아닌가요? textarea 에 포커스만 가더라도 body 에 무한깜빡현상이 발생하는데 왜 그런걸까요? 이전값과 현재값을 비교하기도 해보고 useEffext를 사용하기도 해보고 했는데 해당 현상이 사라지지 않는것 같아요..
현직 개발자입니다. 생각이 많아져서 질문드립니다. SSR(타임리프, JSP), CSR(Vue3) 을 프로젝트 경험하면서.. 이런저런 생각이 드는데요. 1.CSR은 SEO문제 해결이 가능한가요? 2.CSR은 컴포넌트 재사용이 장점이나 화면복잡도가 높아질 경우 코드 복잡도가 높아진다고 생각되는데 어떻게 생각하시는지요? 3.SSR이 화면 깜빡임이 있다고 하는데, 실은 비동기 통신하면 화면 깜빡임은 제어 가능합니다. html자체를 바꿔서 렌더링 하는게 아닌 화면 하나당 html하나로 렌더링하는거죠.(메뉴이동시에만 html이동하니 메뉴이동시 초기화면은 깜빡임은 있음) 강의 내용에 있는 Tab은 한화면에 구성하면 깜빡일 일도 없고, 내부 공통 기능들은 공통JS로 빼고 틀은 같이 쓰고, 공통부분은 템플릿관련 JS로 처리하면 크게 다른부분을 모르겠습니다. 화면 내에서는 전부 비동기 통신 Ajax로 처리하면 깜빡임은 없더라구요. 4.CSR은 SPA기반이라 초기화면이 모바일쪽이 더 심플해서 나을거 같다라는 생각이 듭니다. 대형 포털을 CSR기반으로 하면 복잡도도 높아지고, 제 경험엔 초기화면 또는 복잡한 화면들이 많이 느려지더라구요. 어떻게 생각하시는지요? SSR, CSR이 어떤 상황에 적용되는게 나을지에 대한 의문이 항상 있습니다. 그냥 강의듣다가 개인적인 질문 드려봅니다. cf. 강의 내용은 아주 잘 듣고 있습니다.^^
AccordionItem에 작성하신 코드를 그대로 따라쳤다고 생각했습니다. 닫힌 상태에서 문자열은 찾아지는데 자동으로 아코디언이 열리진 않습니다ㅠ 추가적으로 css코드를 넣어야할까요? 알려주신 링크를 들어가서 봤는데 setOpen을 useEffect 맨 위에 넣는걸 보고 새로운 상태를 넣어야하는건가 했습니다.
🚨 질문 작성법 및 안내사항 질문 작성법 - 몇 섹션의 어떠한 강의에 대한 질문인지 작성해주세요. (ex. 섹션2 조건문에 대한 질문) - 질문은 최대한 구체적으로 작성해주세요. - 비슷한 질문이 올라와있는지 확인해주세요. - 코드가 포함된 질문은 아래와 같이 코드블록을 사용해주세요. body { margin: 0 auto; width: 100%; font-family: 'Hi Melody'; background-image: url("https://source.unsplash.com/user/hanjw3288/likes"); background-repeat: no-repeat; background-attachment: fixed; background-position: center; background-size: cover; /* color: white; */ /* overflow: hidden; */ } 강사님 안녕하세요! 마지막 프로젝트 적용하기 전에 background-image 적용할때 unsplash가 적용이 안되는데 어떻게 해결해야 할까요..? 저 url 타고 들어가면 404페이지가 뜹니다..
🚨 질문 작성법 및 안내사항 질문 작성법 - 몇 섹션의 어떠한 강의에 대한 질문인지 작성해주세요. (ex. 섹션2 조건문에 대한 질문) - 질문은 최대한 구체적으로 작성해주세요. - 비슷한 질문이 올라와있는지 확인해주세요. - 코드가 포함된 질문은 아래와 같이 코드블록을 사용해주세요. if (quoteItem) { //localstorage에 quote가 있다면 let { createDate, quoteData } = JSON.parse(quoteItem); if (createDate === `${month}-${date}`) { quoteElement.textContent = `"${quoteData}"`; } else { getQuote(); } } else { //localstorage에 quote가 없다면 getQuote(); } 안녕하세요 강사님! api 활용해서 명언 설정하기 강의를 듣는 중에 마지막 로컬스토리지에 조건문을 하고 나서 명언이 나오고 그다음 새로고침을 하면 undefined가 출력이 되는데 어느쪽이 문제 일까요..? 혹시 오타가 있나해서 강의 대본에 코드를 복붙해도 결과가 똑같아서 질문드립니다! 안내사항 - 질문에 대한 답변은 보통 주말, 공휴일을 제외한 평일 오전 시간 에 답변해드립니다.
강사님 안녕하세요. 항상 강의 잘 보고 있습니다 🙂 완강하고 다시 보다가, scrollSpy 바닐라버전에서 궁금한 점이 있어서 질문 남깁니다! 네비게이션의 버튼을 클릭 했을때, 버튼의 부모인 li의 index 값을 찾기 위해 사용했던 e.composedPath() 대신 closest('li') 메서드 를 사용하는 것은 어떤지 궁금해서요! 퍼블리셔로 일하면서, 클릭한 타겟의 가까운 부모를 찾을때 자주 사용했던 메서드인데, e.composedPath()를 사용한 다른이유(강의에서 설명한 이유 외에)가 있으신지 궁금합니다!