안녕하세요 🙂 질문 감사합니다. 강의에서 제공되는 프로젝트 상으로는 꼭 필요한 것은 아닙니다. 다만, this.hanldeLoadMore로 저장하는 이유는 코드의 일관성과 프로젝트의 확장성 때문인데요, 추후에 이벤트 리스너를 제거하거나, 컴포넌트 내 다른 메서드에서도 재사용할 수 있기 때문입니다. 추가적으로 바닐라 JS로 SPA를 완벽하게 구현할 필요는 없습니다. 강의에서 다루는 내용 정도만 경험해보셨다면, 바로 React나 Next 등으로 넘어가서 학습을 해보시고, 이런 라이브러리와 프레임워크들이 바닐라로 구현했던 것을 쉽게 할 수 있게 도와주는구나!를 느끼시는게 오히려 학습에 더 도움이 되실 것 같습니다 🙂
안녕하세요 crk1004님 🙂 질문 감사합니다. 본 강의는 크롬 브라우저를 사용하는 강의로, 되도록 크롬 브라우저를 사용하시는걸 권장드립니다! 강의의 내용과 같이 VSCode의 Live Server 확장 프로그램을 사용해 코드를 열어보시거나, node 설치 후 로컬 서버로 열어보시는 것을 추천드립니다. 그럼에도 문제가 발생한다면, 다시 질문 남겨주세요! 감사합니다.
안녕하세요 crk1004님 🙂 질문 감사합니다. promise.then(), 그리고 catch()와 같이 사용할 수 있는 이유는, then/catch가 Promise 객체에 달려있는 '함수 프로퍼티(메서드)'이며, 호출 결과로 새로운 프로미스를 반환하기 때문입니다. 따라서 promise.then()의 반환값이 또다른 Promise라서, 그 뒤에 바로 catch를 이어서 작성할 수 있습니다.
안녕하세요 사랑2님, 질문 감사합니다 🙂 sort 콜백의 a, b는 ‘이전/다음 요소’처럼 고정된 의미가 아니라, 정렬 과정에서 엔진이 비교 대상으로 전달하는 두 요소 입니다. 예시로 쉬운 이해를 돕기 위해 작성해 놓은 것이기는 하나, 호출 순서/비교 쌍은 구현에 따라 달라질 수 있어서 a=이전, b=다음처럼 설명하는 건 오해 소지가 있을 수 있겠네요. return 값의 의미로 이해하는 게 정확할 것 같습니다! 음수면 a를 앞에, 양수면 b를 앞에, 0이면 동일로 처리합니다.
안녕하세요 🙂 질문 감사합니다. INIT 액션은 상태를 처음 세팅하거나 외부 데이터로 상태 값을 교체할 때 사용하는 액션인데요, DAY 19 미션에서는 mockData를 useReducer의 초기값으로 바로 넣어주기 때문에, 코드 구조상 INIT은 만들어두지만 사용하지 않아도 되는 액션이라고 이해하시면 될 것 같습니다!
안녕하세요 🙂 질문 감사합니다. DOM Tree는 브라우저가 HTML 문서를 파싱해서 메모리상에 만든 '트리 형태'의 객체 구조입니다. 따라서 트리구조가 아닌 요소탭은 DOM Tree가 아닙니다. 다만 요소 탭은 DOM Tree를 시각적으로 보여주는 뷰라고 할 수 있습니다.
안녕하세요 🙂 질문 감사합니다. 배열과 객체의 구조 분해 할당 방식이 다른 이유는 자바스크립트에서 배열과 객체가 값을 구분하는 기준 자체가 다르기 때문입니다. 질문 주신 것과 같이, 배열은 인덱스 기반 접근이라 순서가 중요하며, 객체는 키 기반 접근이라 이름(키)이 중요하기 때문입니다.