묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
/generate cursor rules 명령어가 표시가 안됩니다.
강의에서는 /만 입력해도 Generate Cursor Rules라는게 뜨는데 저는 안뜨는 이유가 뭘까요?cursor가 업데이트 되서 그런걸까요?
-
해결됨비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
커서 pro문구
커서 계속 사용중인데 한도가 다해서 pro로 업그레이드 하라는데 수업을 어떻게 진행해가야할까요
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
러버블 프로젝트를 cursor로 바꾼다음에 다시 러버블로...
러버블에서 진행되고 있는 프로젝트를 다운로드후에 로컬로 실행한다음에, 다시 러버블로 옮기는건 안되는거죠?추가적ㅇ로 궁금한게 러버블 클라우드(lovable cloud)를 사용하고 있는 프로젝트를 로컬로 가져와서 개발하는게 가능한걸까요? 아니면 자체적으로 supabase를 외부로 연동한 프로젝트만 가져와서 추가적인 개발이 가능한 걸까요?
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
setAvatarImage(null) 부분 질문
선생님, 안녕하세요. 강의 잘 듣고 있습니다 🙂프로필 수정 기능구현하기 - 기능 강좌에서 useEffect(() => { if (profile && isOpen) { setNickname(profile.nickname); setBio(profile.bio); setAvatarImage(null); } }, [profile, isOpen]);setAvatarImage(null);setAvatarImage의 인수로 null 값으로 설정한 이유를 강의에서 말씀 주셨는데 설명을 들었는데도 아직 잘 이해가 안 돼서요 ㅠㅠ해당 부분에 대해 좀 더 부연설명 해주실 수 있나요? 감사합니다. 새해 복 많이 받으세요!
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
에뮬레이터 질문
주사위 굴리기 만든부분에서 현재 오른쪽하단 실행기기를 크롬으로 실행하면 정상적으로 동작하는데 미디움폰이나 그외 모바일 기기로 실행하면 그냥 플루터 기본코드화면만 나옵니다 커서한테 질문해도 똑같은 작업만 하루종일 반복하고 그대로네요 안드로이드 스튜디오에서 뭐 따로 해야할게 있는건가여 sdk설치하고 medium phone도 설치하고 다 했는데 답답하네요 ㅠ
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
props 질문
TodoItem 에서 todo값을 props로 넘겨줄때 왜 {...todo} 로 사용하나요? {todo} 는 안되는건가요?
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
부모에서 훅 호출하여 자식에게 prop으로 내려주기 vs 자식에서 훅 호출 선생님은 어떻게 생각하시는지 궁금합니다
map 함수 안에서 자식 컴포넌트가 순회하는 코드가 있다고 할 때, 그 자식 컴포넌트 안에서 훅(ex useEditPost/useDeletePost)을 호출하는 것이 좋을까요? 아니면 부모에서 훅을 한번 호출한 뒤 자식 컴포넌트에 prop으로 내려주는 것이 좋을까요? 전자는 자식마다 호출되어 할당될 것 같아서 메모리 관리에 단점이 있을 것 같고 (추측입니다), 후자는 (훅의 함수를 받아야하는 대상 컴포넌트가 자식 내부에 더 깊은 뎁스에 있다고 할 때) Prop Drilling의 단점이 있을 것 같은데요선생님은 어떻게 생각하시나요?
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
파일명 질문
안녕하세요 선생님선생님 리액트 기초 강의를 들었는데제 기억에서는그 리액트 파일명을 대문자로 써야한다? 이렇게 들었던 거 같은데(아니면 죄송)왜 여기에서는 파일명을 소문자로 쓸까요?그리고 파일명하고 그 내보내는 함수를 다르게 쓰는 이유가 있나요?그리고 왜 화살표함수로 안만들고 function으로 할까요?그리고 export를 아래에 안쓰는 이유가 있을까요?수업시간에 설명했는데 제가 놓친거면 죄송합니다 ㅠㅠ
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
도와주세요 superbase
지금 현재날짜 12.28 슈퍼베이스 없어지고 자체클라우드 연동인데 강의는 다 슈퍼베이스 들어가서 이것저것하는데 공부가 진행이안돼요 보면서 따라해도 계속 막히고 그냥 저 혼자 맨땅에 헤딩하는 느낌이에요... 로그인기능 구현하는데 403에러나서 강의는 슈퍼베이스로 진행하는데 저혼자 그냥 어찌저찌 해보고있는데 강의를 보면서 진행이 안되니.. 미칠거같네요
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
superbase 질문
현재 12.28일 수강중인데 슈퍼베이스라는것이 없어진거같아요 방문자수기록 추가할때도 슈퍼베이스 클릭하는게 아닌 채팅창에 자체 클라우드 허용할거냐아는 allow버튼이 나와서 그거 클릭했더니 되긴했는데 크레딧이 너무 빨리 끝나버렸어요 그 해결방법 카카오톡영상도 확인 했는데 그대로 따라 들어갔는데 superbase가 보이지않아요 어떻게 해야할까요.. ㅠㅠ 벌써 막힌거같아요
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
인증 처리하기에서 질문 드립니다.
안녕하세요.먼저 강의 정말 잘 듣고 있습니다. supabase를 어떤 식으로 프로젝트에 적용할 수 있을 지 배울 수 있어 유익했습니다.섹션 6강에 궁금한 점이 생겨서 질문 드립니다.강의 내용에서 조금 벗어났지만, supabase에서 회원 탈퇴하기가 궁금했습니다.auth.ts에 await supabase.auth.admin.deleteUser 를 추가하고 profile 테이블의 행을 삭제하면 될까요?admin를 호출해도 되나 싶어서 여쭤보고 싶었습니다.추후 강의에 계정 삭제하기도 포함해주시면 정말 좋을 거 같습니다!감사합니다.
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
useProfileData에서 queryFn의 에러 처리
안녕하세요 선생님!대단한 질문은 아니고 의견을 여쭙고자 질문 남깁니다. useProfileData 훅에서 queryFn에 profile 조회 실패 시 createProfile을 하는 로직을 짜주셨는데요혹시 onError 콜백함수에 로직을 정의하지 않고 쿼리함수에 정의하신 이유가 따로 있을까요?개인적으론 가독성상 onError에 넣는게 조금 더 명확하지않나 싶어서 의견을 여쭤보고 싶네요!
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
카카오톡 로그인 연동이 잘 안되는것 같습니다
9강에서 카카오톡 로그인을 위한 세팅을 모두 다 했는데 계속해서 같은 오류가 납니다어떻게 해결해야할까요? api id.key, 리다리엑트 모두 적었습니다?
-
해결됨비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
1주차 9강에 카카오톡 로그인서비스
카카오톡 > 카카오로그인> 보안'보안'탭이 보이지 않아요다른 곳 다 들어가봐도 못 찾겠습니다챗gpt는 이게 어떤 조건이 충족되야 자동생성된다는데 ui가 바뀐것 같은데 위치를 못 찾겠습니다
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
궁금한게 있습니다 선생님!
안녕하세요 선생님.강의를 모두 수강한 후 복습을 하던 중 궁금한 점이 생겨 질문드립니다. 좋아요 기능에서 동시성 문제를 해결하기 위해 행 잠금을 사용하는 것으로 이해했습니다.이 경우, 첫 번째 유저의 좋아요 요청이 처리되는 동안 해당 행이 잠기게 되는데, 만약 동시에 많은 사용자(수백~수천 명)가 좋아요 버튼을 누르는 상황 이라면요청들이 순차적으로 대기하게 되어 응답 지연이 발생되지는 않나요??또한 이런 이유 때문에 클라이언트 단에서는 낙관적 업데이트 를 적용하는게 맞는걸까요??
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
OAuth 프로필 생성 관련 질문입니다.
안녕하세요 강의 정말 잘 듣고있습니다.현재 강의를 무한 중첩 댓글 구현하기까지 수강했습니다!테스트를 위해 여러가지 사항들을 직접 체크하고있는데 Github로 로그인한 사용자의 정보들(avatar_url, name)들은 기본적으로 사용하지 않고 랜덤한 닉네임과 기본 아바타 이미지가 나오는게 정상 동작일까요?제가 이해한 흐름은 다음과 같습니다.1. Github(OAuth) 로그인2. Supabase Authentication > Users에 사용자 생성 (profile 테이블에는 아직 생성 되지 않음)3. SessionProvider에서 useProfileData 호출export default function SessionProvider({ children }: { children: ReactNode }) { const session = useSession(); const setSession = useSetSession(); const isSessionLoaded = useIsSessionLoaded(); const { data: profile, isLoading: isProfileLoading } = useProfileData( session?.user.id, ); useEffect(() => { supabase.auth.onAuthStateChange((event, session) => { setSession(session); }); }, []); if (!isSessionLoaded) return <GlobalLoader />; if (isProfileLoading) return <GlobalLoader />; return children; }4. fetchProfile(userId) 실행export async function fetchProfile(userId: string) { const { data, error } = await supabase .from("profile") .select("*") .eq("id", userId) .single(); if (error) throw error; return data; }Supabase Table Editor > profile 에는 아무런 결과가 저장되어 있지 않기 때문에 PostgrestError: PGRST116 에러 발생 useProfileData catch 블록 실행 → createProfile 호출 랜덤한 닉네임 + avatar_url이 기본으로 저장 만약 제가 이해한 흐름이 맞다면 어떤 방법을 써야할까요?제일 먼저 드는 생각은 createProfile에 session을 매개변수로 받아서 session.user.user_metadata.full_name과 avatar_url을 insert에 넣는걸 생각했습니다.createProfileexport async function createProfile(userId: string, session?: Session) { const { data, error } = await supabase .from("profile") .insert({ id: userId, // ↓ 여기 수정 했어용 nickname: session?.user.user_metadata?.full_name || getRandomNickname(), avatar_url: session?.user.user_metadata?.avatar_url || null, }) .select() .single(); if (error) throw error; return data; } use-profile-data.tsexport function useProfileData(userId?: string) { const session = useSession(); const isMine = userId === session?.user.id; return useQuery({ queryKey: QUERY_KEYS.profile.byId(userId!), queryFn: async () => { try { const profile = await fetchProfile(userId!); return profile; } catch (error) { if (isMine && (error as PostgrestError).code === "PGRST116") { return await createProfile(userId!, session!); // 여기 session 추가 했어용 } throw error; } }, enabled: !!userId, }); } 이렇게 코드를 수정하고 profile table을 삭제한 후 다시 Github로 로그인 하면 사용자의 프로필 이미지와 이름이 받아와졌습니다.더 효율적이거나 더 좋은 방법이 있을까요? 혹은 제가 잘못 알고 있는게 있을까요?
-
해결됨비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
lovable 슈퍼베이스 연결
결제하고 러너블에서 슈퍼베이스 연동을 할려했는데 connect supabase 이 버튼을 눌렀는데어딜봐도 슈퍼베이스란건 안적혀있는데 어떻게 연동하나요?
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
6.2 회원가입 구현 18:06 AuthResponse 관련 문의
안녕하세요, 강의 잘 듣고 있습니다!6.2강 회원가입 구현 강의 18:06경에 설명해주시는 AuthResponse 타입의 정의?가 변경된 것인지, 제 코드 에디터에는 아래와 같이 표시됩니다. 첫 번째 객체 부분 {data: T; error: null}은 이해가 가는데요, 두 번째 객체 부분은 강의상 화면과 차이가 좀 있어서, 추가로 설명해주실 수 있으면 감사하겠습니다.
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
포스트 리스트를 불러오는 hook에 대하여 질문드립니다!
안녕하세요!타입 스크립트부터 현재 강의까지 너무 유용하게 잘 듣고 있는 수강생입니다! 9-1 강의를 수강하다가 문득 궁금함이 생겨서 질문 남겨 봅니다. A 유저와 B 유저가 있다고 가정했을 때A 유저가 프로필 상세 화면을 보고 있는 상태에서 B 유저가 새로운 포스트를 올렸는데,이후에 A 유저가 메인 리스트 화면으로 이동하면 B 유저가 올린 새로운 포스트가 로드되지 않는 것으로 보입니다! (새로 고침하면 당연히 정상적으로 보이고요) 제가 코드 작성을 하면서 놓친 부분이 있어 이러한 현상이 발생하는 것인지,아니면 이후 강의에서 해당 부분이 수정되는 것인지 여쭤보고 싶습니다. 늘 좋은 강의 감사합니다! 🙂 좋은 하루 보내세요~!
-
미해결[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
투두 리스트 ui 작업 중에 material-tailwind가 리액트와 호환 문제가 있는지 리액트 19에서 18로 낮춰도 인풋과 아이콘 버튼 컴포넌트가 제대로 표시되지 않아요 ㅜㅜ
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다.💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 투두 리스트 ui 작업 중에 material-tailwind가 리액트와 호환 문제가 있는지 리액트 19에서 18로 낮춰도 인풋과 아이콘 버튼 컴포넌트가 제대로 표시되지 않아요 ㅜㅜ