inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 스터디 클럽 3기 풀스택] 4주차 발자국

codestudy
0

4주차 학습 내용

강의 및 학습 내용

React/Next.js 기본 레이아웃 구성

로그인/회원가입 화면 구현

Supabase 활용

채팅 기능 구현

디자인 및 UI 개선

학습 회고

🛠 미션 해결 과정

image

채팅 기능 고도화 미션 구현

구현 과정

  1. 데이터베이스 테이블 설계:

    • message 테이블 확장: is_read, is_deleted 필드 추가

    • blocked_users 테이블 생성: blocker_id, blocked_id 필드 포함

    • reports 테이블 생성: reporter_id, reported_id, message_id, reason 필드 포함

    • 각 테이블에 적절한 외래 키(Foreign Key) 설정

  2. Row Level Security 정책 구현:

    • 메시지 읽기, 쓰기, 업데이트 권한 설정

    • "사용자가 수신한 메시지 읽음 표시 가능" 정책 추가

    • 차단 및 신고 기능에 대한 사용자별 접근 권한 설정

  3. 메시지 삭제 기능 구현:

    • Message 컴포넌트에 삭제 버튼 추가

    • is_deleted 필드를 업데이트하는 서버 액션 구현

    • 삭제된 메시지는 UI에서 필터링하여 표시하지 않도록 처리

  4. 메시지 읽음/안읽음 표시 기능:

    • is_read 필드를 이용해 메시지 상태 관리

    • 메시지를 읽을 때 자동으로 상태 업데이트

    • UI에 읽음 상태 표시 (읽음/안읽음)

  5. 사용자 차단 기능 구현:

    • 사용자 차단 버튼 및 확인 모달 추가

    • blocked_users 테이블에 차단 정보 저장

    • 차단된 사용자와의 메시지 교환 제한

  6. 메시지 신고 기능 구현:

    • 부적절한 메시지 신고 버튼 및 신고 사유 입력 모달 추가

    • reports 테이블에 신고 정보 저장

    • 신고 후 사용자 피드백 제공

  7. 실시간 업데이트 기능 개선:

    • Supabase Realtime을 통한 INSERTUPDATE 이벤트 동시 구독

    • 메시지 상태 변경 시 실시간으로 UI 업데이트

    • 새 메시지 알림 구현

  8. 로그인/회원가입 페이지 버그 수정:

    • 화면 전환 로직 오류 수정

    • 회원가입/로그인 버튼 기능 정상화

       



      imageimage

      image

미션 해결 회고

구현 내용

  1. 데이터베이스 테이블 설계: message, blocked_users, reports 테이블 구성

  2. Row Level Security 정책 구현: 메시지 읽기/쓰기/업데이트 권한 설정

  3. 메시지 기능 구현:

    • 메시지 삭제 기능

    • 읽음/안읽음 표시 기능

    • 사용자 차단 기능

    • 메시지 신고 기능

  4. Supabase Realtime을 통한 실시간 업데이트 기능 개선

  5. 로그인/회원가입 페이지 버그 수정

배운 점

 

풀스택 supabase 워밍업 3기

답변 0