Search
Duplicate

기획서

프로젝트 소개

영화 리뷰 뉴스피드 서비스
리뷰마다 장르 해시태그가 있고, 특정 장르 해시태그를 선택하면 그 해시태그가 들어간 리뷰들을 보여준다.

프로젝트 의의

Github Flow 를 이용하여 이슈, 풀리퀘스트 및 협업에 익숙해지기
코드에 의도를 담기 (직관적 명명, 가독성 향상, 읽기 적당한 메서드 길이, 1작업당 1커밋, 근거있게 작성 등)

기술스택

백엔드
Spring Boot
JPA
MySQL
Spring Security

유스케이스 모델링

1. 시스템 상황 분석

무비토크영화 리뷰를 작성해서 해시태그로 원하는 장르의 리뷰를 볼 수 있는 서비스다.
무비토크회원가입을 할 수 있다.
loginId, password, nickname, description(한줄소개)
무비토크로그인 없이도 리뷰를 조회할 수 있다.
작성댓글, 좋아요로그인 유저만 할 수 있다.
사용자가 장르 해시태그를 클릭하면 해당 해시태그가 걸린 리뷰만을 조회.
로그인 사용자
리뷰를 작성할 수 있다.
리뷰를 수정할 수 있다.
리뷰를 삭제할 수 있다.
댓글을 작성할 수 있다.
댓글을 수정할 수 있다.
댓글을 삭제할 수 있다.
좋아요를 누를 수 있다.
자신의 프로필을 수정할 수 있다.
닉네임이나 한줄 소개는 바로 수정 가능하다.
비밀번호 수정은 한번 더 비밀번호를 검증한다.
로그인 사용자프로필에서
자신의 닉네임한줄 소개, 작성한 리뷰들, 좋아요 누른 리뷰을 볼 수 있다.
메인 화면에서는
장르 해시태그를 선택할 수 있다. (기본값 - 전체)
최신순으로 리뷰를 볼 수 있다. (기본값)
좋아요순으로도 볼 수 있다.
좋아요순으로는 오늘, 일주일, 한달, 올해를 기준으로 표시할 수 있다.
검색을 할 수 있다. - 다른 페이지로 이동
검색 시 검색어를 기준으로 글제목, 글내용을 모두 검사한다.
가져온 결과는 리뷰 리스트와 리뷰 개수를 포함한다.
영화 리뷰 단순 조회
제목, 내용, 생성일자, 댓글 수, 작성자, 좋아요 수, 별점을 표시한다.
영화 리뷰 세부 조회
제목, 생성일자, 작성자, 해시태그들, 좋아요 수, 별점, 글내용, 유저 프로필, 댓글리스트
영화 리뷰 작성
글제목, 글내용, 장르 해시태그들, 별점을 포함해야 한다.
리뷰를 삭제하면
유저의 작성 목록도 삭제된다.
그 리뷰에 작성된 댓글도 다 삭제된다.
좋아요 누른 것도 삭제된다.
별점도 삭제된다.

2. 액터 식별

무비토크에 회원가입 유무에 따라 비회원회원이 있다.

3. 유스케이스 식별

로그인
회원가입
프로필 조회
프로필 수정
닉네임과 한줄소개 수정
비밀번호 수정
특정 정렬 순서리뷰 조회
특정 장르 해시태그로 리뷰 검색
특정 검색어로 리뷰 검색
좋아요 클릭
댓글 조회
댓글 작성
댓글 수정
댓글 삭제
리뷰 작성
리뷰 수정
리뷰 삭제

4. 유스케이스 다이어그램 작성

API 명세서

Search
API Docs
Description
Domain
Method
URL
권한
구현
사용자 user
회원가입
POST
No
로그인
POST
No
프로필 조회
GET
No
프로필 수정
PATCH
User
비밀번호 수정
PATCH
User
댓글 comment
댓글 생성
POST
User
댓글 수정
PATCH
User
댓글 삭제
DELETE
User
리뷰 review
리뷰 전체 목록 조회
GET
No
리뷰 상세 조회
GET
No
리뷰 생성
POST
User
리뷰 수정
PATCH
User
리뷰 삭제
DELETE
User
좋아요 버튼 클릭
PATCH
User

수정 사항

댓글 생성 부분에서 /{reviewId} 제거하고
리뷰 전체 목록 조회에서 쿼리스트링을 이용하여 정렬 및 검색
좋아요 버튼 클릭은 PATCH 로 변경
리뷰 조회
메인홈피
전체 or 해시태그 → 해시태그가 포함된 리뷰 가져오기 ~~~~/{hashtagName}
검색
검색어 → 글제목+글내용에 검색어 포함되는 리뷰 가져오기 ~~~~/query/{queryName}?sort=정렬방식
최신순 or 좋아요순 → 정렬 순서
sort
정렬 순서
recent
likeToday
likeWeek
likeMonth
likeYear

프로젝트 관련 사진.

정책

사용자
login_id
4이상 20이하
a~z, A~Z, 0~9 만 포함
password
8이상 20이하
a-z, A-Z, 0-9, !@#$ 포함
BCrypt 암호화로 DB에는 60글자로 저장
nickname
2이상 20이하
a-z, A-Z, 0-9, 가-힣
description
nullable
40이하
댓글
content
3자 이상 100자 이하
리뷰
title
1 ~ 50자
content
1000자 이하
rating_score
0 ~ 10 (1당 별 반 개)
movie_name
100자 이하
해시태그
name
공백 X
a-z, A-Z, 가-힣
1자 이상 15자 이하