[Live 챌린지] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
Cursor를 업데이트하고 기능을 확인하던 중에 Rules 말고도 Commands 라는 기능을 있는걸 봤어요. 설명을 읽어보고, 몇 번 실행해 보긴 했는데 Rules 를 배우고 적용해보는게 이번이 처음이라서 그런지 두 개가 비슷해보이고 차이점을 잘 모르겠네요. 제가 이해할 수 있는건 Rules는 코드를 바꿀 수 있고, Commands 바꿀 수 없다 정도인 것 같아요. Commands를 잘 쓰면 팀에서 쓰기도 좋을 것 같은데, 혹시 현재 쓰고 계신다면 라이브 강의에서 간단하게 라도 설명해주실 수 있나요? 아래는 Commands 관련 공식 링크 입니다: https://cursor.com/ko/docs/agent/chat/commands
findAllWithMemberDelivery 이 메서드 내부에서, join fetch oi.item i 는 안해주셨는데, 안해주는 이유가 무엇일까요? 조회하려는 엔티티인 Order기준으로 한 페치조인이 아니고 orderItem기준으로 한 페치조인이기 때문에 그런것일까요? 아니면 order가 아니라 orderItem에 있는 item이기때문에 그런것일까요?
업캐스팅(부모 형태, 자식 생성자) 챕터 9:23 해당 문제에서 메인 함수에서 구문이 아래와 같을 때 A b = new B(); b.paint(); b.draw(); 첫번째 구문은 자식 기본 생성자 출력하는 것이지만 자식 클래스에서 자식 기본 생성자가 없는 것을 확인하였고 부모 클래스에서 부모 기본 생성자 있는 것을 확인하였습니다. 이 상황에서 비록 자식 기본 생성자는 없지만 부모 기본 생성자는 있어서 바로 출력하여야 하지 않나요?
상속과 생성자 호출순서 7:19 자식 생성자에 대해서 출력함에 있어서 부모 기본 생성자가 먼저 오고 그 다음에 자식 생성자가 와야한다는 것은 이해를 하였습니다. 만약 부모 클래스에서 부모 기본 생성자가 없고 void start() 또는 매개 변수 있는 부모 생성자만 있는 상황에서는 부모 클래스에서 어떤 것을 출력하여야 하나요?
안녕하세요. 정보처리기사 실기 31강 업캐스팅 강의 10분부터 나오는 '업캐스팅 문제 예시 2번' 예제에서 질문이 있습니다. A b = new B(); 이렇게 생성한 인스턴스 b에 대해 b.paint()를 호출하고 내부에서 super.draw()를 호출하고 있는 상황입니다. 만약 class A의 draw 메서드 내부에서 draw() 가 아니라 this.draw()를 호출한다고 하면 그때는 B의 메서드가 호출되는지 아니면 A의 메서드가 호출되어 무한루프 도는지 궁금합니다. (부모클래스의 메서드가 실행되고 있을 때 this는 부모를 가리키는지 자식을 가리키는지가 궁금합니다.)
[Electron #1] Electron + React로 만드는 타이머 앱 (With Zustand)
질문 내용 안녕하세요! 강의 너무 잘 들었습니다. 회사에서 electron으로 앱을 만들어야 해서 참고하게 되었는데 많은 도움이 되었습니다. 추가로 질문이 있는데, 강의에서 loadURL 방식으로 앱을 가져와서 돌리게 되어있는데, 혹시 해당 강의에서 loadFile로 빌드된 파일을 가져와서 동작시키지 않은 이유가 있으실까요? 찾아보니 빌드를 해서 사용하면 offline 지원이 가능하다, 대신 파일 경로를 수정해주어야 한다는 차이가 있던데, 관련해서 혹시 추가 차이점이나 주의사항이 있는지 궁금합니다. 좋은 강의 감사합니다!
안녕하세요. vue.js를 사용하다 리액트를 배우고 있습니다. 현재 회사에서 진행중인 프로젝트에서 일부는 뷰, 일부는 뷰+nuxt.js를 사용합니다. 뷰만 사용하는 페이지는 SSR이고, nuxt.js는 CSR라고 합니다.(상사의 설명) 질문 // 리액트는 무조건 CSR로 되는건가요? next.js를 사용하면 크게 어떤점이 다른가요? (이 프로젝트 후 한입next 수강예정입니다..간단하게 먼저 질문드립니다.) 프로젝트와 뷰js를 완벽하게 이해하지 못해서 질문이 명확하지 못해 죄송합니다.
안녕하세요. 섹션 3 퀴즈에서 5번 문제 관련 질문 드립니다. 질문: persist 미들웨어 사용 시, 액션 함수가 기본적으로 저장되지 않는 이유는 무엇일까요? 해설: persist 미들웨어는 상태를 JSON 형태로 저장하기 때문에, JSON으로 직렬화할 수 없는 함수는 저장하지 않아요. 따라서 serialize 옵션으로 상태만 저장하는 것이 좋습니다. 강의에서 serialize 가 아닌 partialize 로 설명해주셨는데, 이 부분 확인 부탁드립니다.
안녕하세요. 좋은 강의 잘 수강하고 있습니다! 다름이 아니라 포스트 삭제 후에 무한 스크롤이 작동하지 않는 문제가 발생했습니다. 문제 상황은 다음과 같습니다. 첫 페이지(다음 페이지의 데이터를 페칭하지 않은 상태)에서 작성한 포스트를 삭제 이후 페이지 최하단까지 스크롤 했지만 무한 스크롤 데이터 페칭이 이루어지지 않음 부족한 실력이라 AI의 도움을 받아 원인을 분석했을 때 다음과 같았습니다. 아래는 AI의 답변입니다. 무한 스크롤이 작동하지 않는 원인 분석: getNextPageParam 의 로직 useInfinitePostData 훅에서 다음 페이지를 불러올지 결정하는 로직은 다음과 같습니다: // src\hooks\queries\use-infinite-posts-data.ts // ... const PAGE_SIZE = 5; // ... getNextPageParam: (lastPage, allPages) => { if (lastPage.length < PAGE_SIZE) return undefined; // 🚫 문제의 원인 return allPages.length; }, 이 로직은 "마지막으로 불러온 페이지의 항목 개수가 PAGE_SIZE (5개)보다 적으면, 더 이상 데이터가 없으므로 undefined 를 반환하라 (즉, 다음 페이지를 불러오지 마라)"고 지시합니다. 삭제가 로직에 미치는 영향: 초기 상태: 0번 페이지에 5개의 게시글이 있습니다. ( lastPage.length = 5) 삭제 이벤트: 사용자가 0번 페이지의 게시글 1개를 삭제합니다. 캐시 업데이트: useDeletePost 의 onSuccess 에서 해당 게시글 ID를 0번 페이지의 캐시 데이터 에서 제거합니다. 결과: 0번 페이지의 항목 개수가 5개에서 4개 로 줄어듭니다. 무한 스크롤 시도: 사용자가 스크롤하여 ref ( inView )가 활성화됩니다. getNextPageParam 실행: React Query는 0번 페이지의 현재 캐시 데이터 를 확인합니다. lastPage.length 는 이제 4 입니다. 잘못된 판단: 4 < PAGE_SIZE (5) 이므로, getNextPageParam 은 즉시 undefined 를 반환 합니다. 따라서 1번 페이지(실제 서버에는 데이터가 있을 수 있음)를 불러오기도 전에, 캐시 데이터가 줄어든 것 때문에 다음 페이지 로딩이 차단 되어 무한 스크롤이 작동하지 않게 되는 것입니다. 마지막 페이지에 속한 포스트를 삭제했을 때, PAGE_SIZE보다 항상 작아지니 다음 페이지가 없다라고 판단하기에 무한 스크롤이 작동하지 않는다고 이해했습니다. 캐시를 무효화해 리페칭해서 해결하려고 하는데, 다른 대안이 있을까요? 혹여 제 실수로 잘못된 동작이 일어난 건지 GitHub Repo도 같이 첨부했습니다! https://github.com/scseong/onebite-sns
어노테이션을 사용한 Listener 를 정의할 때 @Component 어노테이션으로 빈으로 등록시켜줬는데, 실제로 Listener 클래스를 지정할때는 new ServerRackControlListener() 로 직접 생성해주고있네? 빈으로 등록한것과, 직접 생성한 것이 서로 연관되지 않는것 같은데 빈으로 주입받아서 넣어주는게 좋을까 아님 Listener 클래스를 빈으로 등록하지 않고 직접 생성해서 사용하는게 좋을까? 배운대로 Listener 클래스에서 JobExecution 이나 StepExecution 을 사용하는데, Job 실행이나 Step 마다 Execution 이 다를 수 있으니까 빈으로 등록하지 않아도 될 것 같은데 어떻게 생각해?