<aside> 💬 실제 현업에서 프로젝트가 진행 중에 예상치 못한 요구 사항들이 발생하며, 이러한 상황에 대처하고 해결하는 능력은 필수입니다.
</aside>
2단계에서는 이러한 현실적인 시나리오를 경험하고, 문제를 해결하는 역량을 키워보도록 하겠습니다.
공통 구현
supabase 설치
<aside> ✔️ npm install @supabase/supabase-js yarn add @supabase/supabase-js
</aside>
// 환경변수 코드 내용 제공
REACT_APP_SUPABASE_PROJECT_ID={SUPABASE slug}
REACT_APP_SUPABASE_PROJECT_API_KEY={SUPABASE PROJECT KEY}
import { createClient } from '@supabase/supabase-js';
export const supabase = createClient(
`https://${process.env.REACT_APP_SUPABASE_PROJECT_ID}.supabase.co`,
process.env.REACT_APP_SUPABASE_PROJECT_API_KEY
);
export const TABLE_NAME = 'video_comment';
필수 구현
사용자는 관련 영상 목록이 많아 스크롤하기 불편해요.
사용자는 의견을 볼수 있어요.
const { data } = await supabase
.from(TABLE_NAME)
.select()
.eq('video_id', videoId)
.order('created_at', { ascending: false });
setComments(data);
사용자는 의견을 남길 수 있어요.
const { data, error } = await supabase
.from(TABLE_NAME)
.insert({ text: commentInput, video_id: videoId })
.select();
setComments([data[0], ...comments]);
사용자는 의견을 지울 수 있어요.
await supabase.from(TABLE_NAME).delete().eq('id', id).select();
setComments(comments.filter((comment) => comment.id !== id));
11월 26일 오후 6시
까지 제출해주세요.참고문서