강의 정말 잘 보았습니다! 좋은 내용 감사드립니다ㅎㅎ 궁금한 점이 있는데 구글 계정과 구글플레이콘솔 개발자 계정, 애드몹 계정 파이어베이스 계정 관련해서 각각 다른 계정들이어도 배포에 상관 없을까요? 아니면 모두 같은 계정이어야 하는지 궁금합니다! 추가로 앱 배포하실 때 계정들을 분리하여 앱을 배포하시는지도 궁금합니다!
5분 경의 테스트데이터셋 평가 에 대해 계산값이 자꾸 0.000이 나와서 context_docs와 retrieved_docs 내용을 확인해 보니 2번째 사진과 같이 나왔습니다. content 내용은 동일해도 doc_id 값이 다르며, 함수 수정을 통해 doc_id를 동일하게 변경해도 평가지표 값이 0.000이 나옵니다. 애초에 구조 자체가 좀 달라서 발생하는 문제 같습니다. 제가 어떤 것을 해볼 수 있을까요?
투두 삭제할 때 mutation 부분 코드를 강의와 똑같이 // use-delete-todo-mutation.ts export function useDeleteTodoMutation() { const queryClient = useQueryClient(); return useMutation({ mutationFn: deleteTodo, onSuccess: (deletedTodo) => { queryClient.setQueryData<Todo[]>(QUERY_KEYS.todo.list, (prevTodos) => { if (!prevTodos) return []; return prevTodos.filter((prevTodo) => prevTodo.id !== deletedTodo.id); }); }, }); } 이렇게 치면 바로 삭제가 안 되고 새로고침해야 적용이되는데 export function useDeleteTodoMutation() { const queryClient = useQueryClient(); return useMutation({ mutationFn: deleteTodo, onSuccess: (_data, deletedId) => { queryClient.setQueryData<Todo[]>(QUERY_KEYS.todo.list, (prevTodos) => { if (!prevTodos) return []; return prevTodos.filter((prevTodo) => prevTodo.id !== deletedId); }); }, }); } 이렇게 작성하면 바로 삭제 적용이 됩니다. 무슨 차이가 있는 걸까요?? 그리고 강의에 왜 처음 코드는 바로 삭제 반영이 안 되는 건지 궁금합니다 ㅜㅜ!
라우트 가드 학습 중 궁금한 점이 생겨서 질문드립니다! import { useSession } from "@/store/session"; import { Navigate, Outlet } from "react-router"; export default function MemberOnlyLayout() { const session = useSession(); if (!session) return <Navigate to={"/sign-in"} replace={true} />; return <Outlet />; } 라우트 가드에서는 인증 정보 유무만 검사하고, 인증 정보 만료 여부는 별도로 확인하지 않나요? 만약 그렇다면 인증 정보가 만료된 상황에서의 처리 방법이 궁금합니다! 고민해봤을 때 인터셉터 등 별도 로직으로 구현해 다음과 같이 처리할 것 같습니다 접근한 페이지에서 인증이 필요한 요청 처리가 있다면 refreshToken 을 이용해 accessToken 을 재발급 한 뒤 요청을 재시도한다 refreshToken 도 만료되었다면 요청을 취소하고 로그인 페이지로 리디렉션 한다 그런데 이렇게 처리하면 refreshToken 도 만료된 사용자는 인증 정보가 있으므로 요청 페이지로 이동한다 짧은 순간이나마 데이터가 없는 빈 화면이나 깨진 UI를 본다 로그인 페이지로 리디렉션되며 혼란을 겪는다 그래서 라우트 가드에서 만료된 경우 접근을 막아야 되지 않을까 생각해봤는데 매번 토큰 유효성 검증을 수행하면 성능 저하가 발생할 것 같다는 생각을 했습니다 어떻게 처리하면 좋을지 의견을 여쭤보고 싶습니다!
안녕하세요! 항상 강의 잘 듣고있습니다 :) 강의에서 onAuthStateChange 를 사용해서 사용자 로그인 시 세션 데이터가 변경되며 업데이트된 세션이 매개변수로 전달되고, 업데이트된 세션을 스토어에 보관했었습니다 supabase 를 사용하지 않는다면 세션 데이터 변경을 어떻게 감지하고, 스토어에 보관 해야될지 고민해봤는데 세션 데이터를 사용하는 곳에서 직접 저장 / 수정하는 방법 혹은 강의에서 배웠던 persist 와 subscribeWithSelector 를 활용한 방법도 있을 것 같은데 명확한 방법이 떠오르지 않아 강의 내용과는 조금 방향성이 다르지만 질문드리게 되었습니다!
id를 전부 string으로 변경했음에도 계속 오류가 발생해서 ai한테 도움을 요청했더니 create-todo.ts에 header값을 붙이라고 하더라고요! 그래서 해당 파일 코드에 headers: { 'Content-Type': 'application/json',} 를 붙여줬더니 정삭작동하는 걸 확인할 수 있엇습니다. 왜 이 헤더를 붙여줘야 하는 건가요? import { API_URL } from '@/lib/constants'; import type { Todo } from '@/types'; export async function createTodo(content: string) { const response = await fetch(`${API_URL}/todos`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ content, isDone: false }), }); if (!response.ok) throw new Error('Create Todo Failed'); const data: Todo = await response.json(); return data; }
타입스크립트 강의를 따로 안들어서 그런데 컴포넌트 별로 props를 넘길때 언제는 구조분해할당으로 넘기고 언제는 그냥 타입만 선언해서 넘기던데 따로 판단하는 기준이 있을까요? CommentEditor 컴포넌트 props 넘길때 {postId}:{postId : number} 과 (postId : number) 의 차이가 명확히 그려지지가 않습니다.
전공자 겸 개발자로 일하고 있는 사회초년생 개발자입니다.. 정보처리산업기사를 2024년에 취득 후 기사딸 생각 없이 지내다가 필요해져서 급하게 필기 취득하고 1달이란 기간동안...어떻게 공부해야될지 모르겠는데 공부 계획같은것 좀 알려주심 감사하겠습니다.. 그리고 이론 pdf를 어디서 받는지를 못찾고있는데 위치도 알려주심 감사하겠습니다..
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요! 금년도 1회차 실기를 준비하고 있는 학생입니다. 매번 5점 10점 차이로 불합격하여 금번에는 요령없이 공부해서 꼭 붙고싶습니다,, 금번 필기시험 인정 만료일도 이번 1회차까지라 2026 1회차 실기시험일자까지 만이라도 연장이 가능할지 여쭤보고싶습니다. 남은 기간 열심히 공부해보려고합니다. 도움 받을 방법이 있을까요? 이메일 : abcd7037@naver.com
5:53에 나오는 업캐스팅 질의 드립니다. 제가 자바 강의를 통해 이해하기론, A s1 = new(B)(‘Y’) 에서 class B(char x)의 자식 생성자를 호출하기전에 부모 생성자를 호출해야 하는데, this()가 있어 부모 생성자를 먼저 호출 하지 않은건가요? (super()와 같은 기능을 하는건지 문의드립니다.) 만약, class B(char x)의 this()가 위와 같은 기능이라고 하면 부모 생성자는 호출하지 않아도 되는건가요? (this()에 따라 B()의 생성자를 호출 하는데 만약 super()가 없었으면 부모 생성자를 호출하지 않는건가요? ) 내용 문의드립니다.