안녕하세요. 얕은복사와 깊은복사에 대해 질문합니다. 제가 알기론 지금 예시를 든 let person1 = {firstName:'짐', lastName:'코딩'}; let person2 = {...person1}; person1.firstName = 'GYM' console.log('person1: ', person1); console.log('person2: ', person2); 이거를 깊은 복사라고 하셨는데 얕은 복사 아닌가여?? 값이 원시값이라서 참조 공유 문제가 안생기는거 아닌가요?? 깊은 복사는 모든 깊이까지 값 자체를 완전하게 복사해야되는걸로 알고 있어서 cloneDeep이나 JSON.parse(JSON.stringify(person1)) 이런식으로 써야되는걸로 알고 있거든여. const items = [...todos] 도 얕은 복사지만 새로운 배열 주소를 만들어서 리액트에서는 변화가 생겼다고 판단하고 리렌더링이 되는걸로 알고 있는데 아닌가요??
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 듣다가 궁금해진게 리퀘스트 메모이제이션이 자동으로 작동하는데 특정 요청만 끄려면 어떻게 해야 하나요? 예제 프로젝트에서 추천 도서를 랜덤으로 가져오는데 동일 컴포넌트를 여러개 호출 해보니 메모이제이션이 작동해서 모두 똑같이 나오더라고요 일반적이진 않지만 이런 랜덤성(?)있는 데이터는 메모이제이션을 적용하고 싶지 않을 수도 있을 것 같은데 이런 경우는 어떻게 하나요
CSR 방식과 관련하여 궁금한 점이 있습니다. CSR 방식에서, 서버에서 처음부터 번들링된 JavaScript 파일을 보내주지 않고, 빈 껍데기 HTML 파일을 먼저 보내는지 이유가 궁금합니다. 빈 껍데기 HTML 파일이라 Next.js에서처럼 Hydration도 이루어지지 않을 텐데, 빈 껍데기 HTML 파일을 왜 보내는지 아무리 생각해 봐도 용도를 모르겠습니다.
🚨질문 작성법 및 안내사항 질문 작성법 섹션 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에 생성? 한 거죠?
안녕하세요, 강사님! 강의 잘 보고 있습니다! 이번 강의를 들은 뒤에 다른 수강생분들의 질문도 보면서 따로 정리를 하며 문득 든 궁금점이 있어 여쭈어봅니다. 각 페이지 별로 최초 접속할 때에 사전 렌더링이 진행되는 건가요? ex.) index페이지, search 페이지(/search), book 페이지(/book) 등 각각 처음 접속할 때 사전렌더링이 진행되는지 1번이 맞다면 프리페칭과 부딪히는 게 아닌지 궁금합니다! ex.) index 페이지에 최초 접속할 때, index 페이지에서 이동할 가능성이 있는 페이지의 JS Bundle을 미리 불러오니까 처음 search 페이지로 이동한다면 사전 렌더링 방식으로 해야 되는데(1번이 맞다면), 이미 JS Bundle을 불러와 준비해두었기 때문에 CSR 방식으로 렌더링이 되지 않나요? 프리페칭이 진행되어서 index 페이지가 렌더링될 때 search 페이지의 JS Bundle이 같이 렌더링되어 CSR 방식으로 search 페이지를 요청 받았는데, 만약 search 페이지에서 미리 렌더링되지 않은 페이지로 이동하게 되면 다시 사전 렌더링 방식을 거쳐 이동하게 되는 건가요? 혹은 search 페이지로 이동할 때 CSR 방식으로 브라우저에서 바로 화면에 노출되게 하고, 내부에서 따로 브라우저-서버 사이에 렌더링되지 않았던 페이지의 JS 코드를 렌더링하는 건가요?
위 그림은 교재 195페이지 내용입니다. localhost:8080으로는 교재의 내용대로 잘 실행이 되었습니다. 그래서, 지금은 aws beanstalk에서(localhost:8080이 아니 aws 서버)에서 윗 부분을 실행 시켜볼려고 하니, 3가지에 부딪혔는데... 당장 내 서버(aws서버)의 upload폴더는 어디에서 볼 수 있으며, 어떻게 upload 폴더에 aaa.jpg를 올리며, 'localhost:8080/api/products/view/aaa.jpg 대신에 "beanstalk도메인/api/products/view/내파일이름"으로 위의 사진 처럼 실행시킬 수 있는지 위 3가지에 대해서 정중히 질문드립니다. (수정 추가) 지금 aws RDS 의 CRUD는 원활히 이루어지고 있습니다.
Loading UI & Streaming 강의 수강 중 강의 내용대로 따라 했는데 잘 안되는 부분이 있어서 질의드립니다! dashboard/page 에서의 page loading...은 정상적으로 나오는데 Card 컴포넌트 각각의 loading도 page loading 이후 한번에 로드되면서 각각의 loading이 나오지 않습니다. 혹시 어떤 문제가 있는지 알려주실 수 있으실까요? 아래에는 해당 깃허브 링크와 이미지 첨부했습니다! https://github.com/holdn2/NextJS-Inflearn-Chatgpt
안녕하세요. 강의를 듣다가 QTodo 사용하는 시점에서 문제가 발생하여 문의드립니다. gradle 빌드시점에 QTodo 클래스를 생성하는 것 까진 확인을 하였는데 search1 메소드에서 QTodo를 사용하려고 하니 클래스 인식 자체를 못하고 있습니다.(import도 안됨) 강의 내용상으로 봤을 때 build 디렉토리에서 인위적으로 복사한 것 같진 않은데 해당 클래스를 어떻게 import해서 사용해야 할지 몰라서 문의드립니다. springboot 버전은 3.3.10입니다.
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일 이후에 적용됩니다.
안녕하세요. 질문 있습니다. userAgent에 있는 값을 사용하고 싶습니다. 서버 측에서는 next/header 함수를 통해서 클라이언트 측에서는 네비게이터의 userAgent 객체를 사용하면 될 것 같은데 이 값을 사용하는 함수는 클라이언트, 서버 양쪽에서 실행됩니다. 서버인지 클라이언트인지 분기 처리 후 값을 가져오고 싶었는데 next/header를 사용하는 파일을 import 하기만 해도 클라이언트 측에서는 에러가 나더라고요. 이런 상황에서는 어떻게 해결해 나가는게 좋을까요? 감사합니다.
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일 이후에 적용됩니다.
Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)
안녕하세요 선생님! 친절한 설명과 함께 강의 잘 듣고 있습니다. 강의교안에 링크로 남겨주신 것들 Cursor AI 설정에 Docs로 추가시에 add 한 것들이 자꾸만 사라지는 오류가 있습니다. 이전 강의에서도 사라지는 오류가 있을 때 재시도 하면 괜찮다고 하셔서 여러 번 시도했는데, 자꾸만 사라지네요 ㅠㅠ 뭔가 설정상의 문제가 있을까요?