[Next.js] 심화주차 팀프로젝트 S.A

정다롱·2024년 10월 10일

내일배움캠프 TIL

목록 보기
29/39

🎵 프로젝트 소개

  • 프로젝트 명 : 레코드판팡
  • 프로젝트 소개 : 일상, 기분 등을 노래와 함께 공유할 수 있는 사이트
  • 참고 사이트 : 인스타그램, 페이스북, X 와 같은 피드형 SNS

✅ 프로젝트 기능

  • 회원가입 / 로그인
  • 메인 페이지
    뉴스피드 형식 / 게시글과 댓글 수, 좋아요 수 노출
  • 작성 페이지
    노래 선택 (스포티파이 api 사용) (검색 결과 드롭다운)
    앨범 이미지, 제목, 아티스트, 앨범명 등 정보 확인
    게시글 내용 (일상, 추천이유 등)
    해당 노래에 대한 유튜브 링크 (스포티파이 api 재생기능 사용 불가)
  • 상세 페이지
    작성자, 작성일
    노래 플레이어
    노래 정보, 게시글 내용
    댓글 CRUD
  • 마이 페이지
    프로필 수정 (닉네임, 프로필 사진)
    작성한 게시글, 댓글, 좋아요 확인 가능

🚩 담당한 부분 기획

1. react-youtube 라이브러리를 사용한 노래 플레이어 만들기

  • 이전에 사용했던 이미지 업로드 / 미리보기 기능을 변형하여 구현 (useRef)
  • 유튜브 컴포넌트를 숨긴 후, ref로 연결하여 재생 버튼을 클릭하면 재생되도록 구현

2. 게시글 좋아요, 취소

  • 게시글 DB에 like 라는 열을 만들어 좋아요 누른 유저의 ID를 배열 형태로 저장
  • 취소 : 해당 배열에 이미 유저 아이디가 있는 경우 유저 아이디 삭제
  • 유지 : 배열을 순회하며 유저 아이디가 있는 경우 좋아요 상태로 표시

3. 마이 페이지에 내가 좋아요한 게시글 불러오기

  • 초기 DB 구조가 게시글 테이블에 LIKE 열이 포함되어 있음 (좋아요 누른 유저의 ID를 배열로 저장)
  • 마이 페이지에서 게시글을 불러올 때 효율 부분에서 떨어진다고 생각이 들어 수정 요청할 예정
  • like 테이블을 따로 제작하고 user id, posts id를 개별로 저장하는 방식이 좋아보임
  • 테이블에서 user id가 현재 유저와 일치하는 게시글 정보만 불러오면 됨

기획대로 차근차근 기간 안에 꼭 완성할 수 있길!!!

0개의 댓글