안녕하세요. 강의 내용이 좋아서 재밌게 잘 보고 있습니다. 피상적으로 virtual dom을 접했을때는 virtual dom과 dom을 비교하는 글들위주로 보다보니 dom은 전체를 렌더링해서 느리고 virtual dom은 일부만 조작해서 성능이 향상된다는 인식이 있었는데요. 강의를 듣다보니 virtual dom의 기능이 이런 방향과 다른결이라고 느꼈습니다. 강의에서 이해한 내용과 찾아본 지식을 종합해서 virtual dom에 대한 나름대로의 정리를 해보았는데요. 제대로 인식한 것이 맞는지 피드백이 가능할까요? dom의 렌더링과 virtual dom의 렌더링은 서로 다른 시점이고 다른 책임을 가지고 있다. virtual dom은 dom렌더링을 낚아채서 빠르게 최적화하는게 아니고 dom렌더링은 브라우저가 항상 진행하는것이다. virtual dom은 빠른호출이 아니라 개발편의성 관점으로 보아야한다. 전체 트리에서 변경된부분을 찾기 때문에 하드코딩된 것과 비교해 호출속도에 있어서 오히려 오버헤드가 있을수있다. 기존의 상태가 변경될때, 필요한 요소를 일일히 찾아서 innerHTML로 업데이트하는 과정을 virtual dom을 통해 추상화하여 제공하는것이다. 필요한부분만 업데이트하는것이 중요한것은 17.1 innerHTML and its inefficiency에서 말씀하신대로 상태유실가능성 방지를 위한것이다.
안녕하세요, 제로초님. 프론트엔드 문서화 관련하여 질문을 드릴 게 있습니다. 저희 회사에서 단기간에 규모가 큰 프로젝트를 진행하다보니 AI의 도움을 빌려 만들기는 만들었는데 문서화가 제대로 되지 않은 상태입니다. 최근 한 명의 백엔드 개발자가 프론트엔드도 함께 개발을 하게 되어 문서화의 필요성을 느끼고 있는데, 문서화에 대한 경험이 없어 제로초님께 여쭤봅니다. 현재 폴더 구조는 FSD를 채택하여 개발 중입니다. 구상중인 것은 Slice 단마다 문서를 만드려고 하는데, 해당 Slice에 포함된 파일의 사용 방식(API input값, output 값 등)에 대해 작성하고, store(zustand)에 저장된 값을 적고, ui에서 필요한 정보값들에 대해서도 적어보려고 합니다. 이렇게 모든 폴더에 정리하게 된다면 못해도 50개가 넘는 문서가 만들어지게 될텐데, 괜찮은 방법인지 확신하지 못하겠네요.(현재 회사에 있는 개발자분들은 딱히 관심이 없어보이십니다ㅠ) 제로초님이라면 해당 문서에 어떤 내용을 담으실지 궁금합니다. 그리고 프로젝트 전체를 소개하는 문서에는 Tech Stack, 프로젝트 구조 이외에 어떤 항목을 넣는 것이 좋을지도 궁금합니다. 이 수업에서 배운 디자인패턴에 대해서도 작성하는 것이 좋을까요?
Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)
프로젝트 개발 중에, src/components 폴더에 재사용할 것들을 만들어서 사용하는 것과, src/app/_components 를 사용하는 것을 배웠는데, 둘의 사용성 차이가 있나요? 굳이 이 두 기능을 둘 다 사용을 할 필요가 있을까요? 오히려 하나만 사용하는게 좋지 않나 싶었습니다. 반드시 분리를 해야만 하는 특별한 이유가 있어서 굳이 분리를 하게 되는 것일까요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
CRUD 중 DELETE 요청의 경우 어떤 기준으로 반환 타입을 정하는 게 좋을지 궁금합니다. 제가 생각하기에는 아래 두 가지 방식이 있을 것 같습니다. 강사님께서는 이러한 상황에서 어떤 기준을 표준으로 사용하시는지 궁금합니다. 1. 일관된 응답 return { success: true, data: null }; CREATE , READ , UPDATE 와 동일하게 성공 여부를 명시 하고 data 는 null 로 처리하여 응답 구조를 통일하는 방식입니다. 이렇게 하면 프론트엔드에서 일관된 형태로 응답을 처리 할 수 있을 것 같습니다. 2. HTTP 표준 준수 (204 No Content) @HttpCode(204) 응답 본문을 따로 내려주지 않고 상태 코드만 반환 하는 방식입니다. 이 경우 RESTful 표준에 부합 하고 불필요한 네트워크 비용을 줄일 수 있을 것 같습니다. 다만 프론트엔드에서는 응답 본문이 없어 분기 처리가 필요 할 수도 있을 것 같습니다. 이 두 가지 방식 중에서 실무에서는 어떤 기준으로 선택하시는지 또는 프로젝트 성격에 따라 구분하는 기준이 있을지 궁금합니다.
Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
안녕하세요 리액트나 NextJS는 익숙하지 않아 질문드립니다. 파이썬을 쓸때는 가상환경을 만들어서 프로젝트 마다 관리를 하는데 NextJS는 각 프로젝트 폴더마다 관리가 되나요? 이것저것 하다가 실수하면 다 지우고 처음부터 다시 하는편이라서 파이썬 가상환경이 너무 마음에 들었는데 혹시 NextJS도 가능한가 궁금합니다. 잘 모르기 때문에 실수해서 패키지가 엉망이 된 경우가 많아서 걱정부터 되네요. 다들 기본적으로 잘하셔서 그런가 보통 강의를 들을때 이런 부분은 잘 안물어보시나봐요.
안녕하세요 강의 잘 보고 있습니다 🙂 멀티패러다임 프로그래밍 책을 최근에 보고 더 자바스크립트 근간을 공부할 필요가 있구나 싶어서 이 강의도 듣게 되었습니다. 다름이 아니라 '함수형 자바스크립트 프로그래밍'이라는 책도 출간이 되어 있는 걸로 알고 있는데, 혹시 강의와 같은 내용일까요?
제로초님께서 강의에서 작성해주신 if문을 보면, if (!word || (word[word.length-1] === newWord[0] && newWord.length ===3 )) 입니다. ||연산자를 기준으로 첫 번째 조건이 "첫 제시어가 비어있는가"이고, 해당 조건만 true일 때도 실행이 되게됩니다. 그런데 첫 제시어의 글자수가 3보다 길거나 짧아도 게임진행이 되어버리는데 원래 의도하신건지 궁금합니다.
질문1. 계정을 만들고 몇 가지 기능을 만들어 달라고 하니 크레디트가 종료되었습니다. 그래서 다계정을 만들어라라고 1주차에서 하셔서요. 그런데 제가 계정을 만들고 동일 프로젝트를 다시 이어서 하고 싶은데 초대를 해서 완성하려고 하는데 방법이 없더라구요. 어떻게 해야 하나요?
강사님, Vibe 코딩에 관심이 있어서 강의를 수강하고 있는데 앞부분에 알려주신 API KEY 입력 관련해서 Google AI Studio에서 API KEY 받아서 알려주신 대로 Cursor 입력해서 사용하는데,, Cursor 화면 인터페이스가 영상 촬영하신 2월달과 달라진거 같고 설명주시는 Gemini 2.0 flash도 조회가 안되는거 같은데... 현재 Cursor 환경이 달라진 걸까요? 궁금해서 문의드립니다.
안녕하세요. 10강에서 TaskMaster에서 복잡도를 사용하기 위해서 Perplexity API 를 입력해서 쓰셨는데, Cluade Code를 사용하면 자체 Provider를 사용하는 거 같은데 다른 이유가 있으신가요? https://github.com/eyaltoledano/claude-task-master/blob/main/docs/examples/claude-code-usage.md
export default memo(TodoItem, (preProps, nextProps) => { if (preProps.id !== nextProps.id) return false; if (preProps.isDone !== nextProps.isDone) return false; if (preProps.content !== nextProps.content) return false; if (preProps.date !== nextProps.date) return false; return true; } 사실상 isDone 빼고 바뀌는 게 없으니 if 부분 지울 수도 있나요? 아니면 위험한가요?
안녕하세요, 강의 잘 듣고 있습니다. 23강에서 SearchFormView 클래스의 show 메서드 오버라이딩과 관련하여 궁금한 점이 생겨서 질문드립니다. // SearchFormView.js show(searchKeyword = "") { this.inputElement.value = searchKeyword; this.showResetButton(this.inputElement.value.length > 0); } super.show() 를 호출하지 않아도 화면이 의도대로 동작하는 것을 확인했는데요. super.show() 호출이 단순히 체이닝을 위한 호출인지 아니면 제가 놓친 다른 의도가 있는 것인지 궁금합니다.