SSAFIT 프로젝트 :: 운동 영상을 기본 주제로 BackEnd와 FrontEnd를 모두 활용한 웹사이트를 제작한다.
사용 스택
Database
MySQL
Language
Java
Javascript
Framework
Spring
Vue
Library
Vuetify
API
Youtube Search
목업
로그인 관련 목업
사용자 로그인 여부에 따라 표시되는 메뉴가 달라진다.
영상 정보 및 사용자 관련 기능
영상의 상세 페이지와 사용자의 마이페이지, 메시지 관련 항목을 구현해보았다.
ERD
UML
BACKEND : MAPPING PATH 요약
6개의 컨트롤러를 기반으로 다양한 기능을 수행하도록 구현하였다.
Video
메소드
CRUD
기능
경로
selectAll
GET
전체 비디오 리스트 조회
/video
selectOne
GET
한 개의 비디오 상세 정보 가져오기
/video/{no}
updateLikeCnt
PUT
좋아요 수 1 증가/감소시키기
/video/{no}
selectMyLikeList
GET
내가 좋아요 한 영상 리스트 조회
/video/likelist/{userNo}
User
메소드
CRUD
기능
경로
insertUser
POST
유저 등록
/user
selectOne
GET
한명의 유저 정보 가져오기
/user/{no}
selectAll
GET
전체 사용자 목록 조회
/user
updateUser
PUT
회원정보 수정
/user
updateExp
PUT
사용자 경험치 획득
/user/{no}
deleteUser
DELETE
회원탈퇴
/user/{no}
selectFollowList
GET
내가 팔로우 한 / 나를 팔로우 한 유저 정보 가져오기
/user/follow/{userNo}
Review
메소드
CRUD
기능
경로
selectVideoReviews
GET
조회된 비디오의 전체 리뷰 리스트 가져오기
/review/{videoNo}
insertReview
POST
리뷰 등록하기
/review
updateReview
PUT
리뷰 수정하기
/review/{no}
deleteReview
DELETE
리뷰 삭제하기
/review/{no}
Message
메소드
CRUD
기능
경로
insertMessage
POST
메세지 전송하기
/message
selectMyMessages
GET
나에게 온/ 내가 보낸 전체 메세지 조회하기
/message/mymessage/{userNo}
selectOne
GET
선택된 메세지의 상세정보 조회
/message/{no}
checkMessage
PUT
메세지 읽음 표시하기
/message/{no}
Follow
메소드
CRUD
기능
경로
insertFollow
POST
팔로우 등록하기
/follow
deleteFollow
DELETE
팔로우 삭제하기
/follow
Like
메소드
CRUD
기능
경로
insertLike
POST
좋아요 등록하기
/like
deleteLike
DELETE
좋아요 삭제하기
/like
FRONTEND : COMPONENTS 요약
VueRouter를 기반으로 다양한 컴포넌트를 출력하도록 구현하였다.
Video
컴포넌트명
기능
경로
VideoView
비디오 뷰
/video
VideoList
전체 비디오 목록
/video
VideoDetail
비디오 상세 정보
/video/detail/{videoNo}
User
컴포넌트명
기능
경로
UserView
유저 뷰
/user
UserList
전체 유저 목록
/user
UserLogin
유저 로그인 화면
/user/login
userSignup
유저 회원가입
/user/signup
UserMyPage
유저 마이페이지
/user/myPage
UserUpdate
유저 정보 수정
/user/update
UserDetail
유저 상세정보 조회
UserFollower
나를 팔로우한 유저 목록 출력
UserFollowee
내가 팔로우한 유저 목록 출력
UserLikesList
내가 좋아요 한 비디오 목록 출력
Review
컴포넌트명
기능
경로
ReviewView
리뷰 뷰
/review
VideoReviewList
선택한 비디오에 달린 리뷰 목록
VideoReviewCreate
선택한 비디오 작성할 리뷰 입력
Message
컴포넌트명
기능
경로
MessageView
메세지 뷰
/message
MessageList
전체 메세지 리스트
/message
MessageDetail
메세지 상세 정보 조회
/message/detail/{messageNo}
MessageCreate
메세지 작성
/message/create
주요 구현 기능
등록된 운동 영상 목록 확인, 다양한 검색 지원
각 영상에 대한 리뷰 작성 및 삭제, 영상 좋아요 기능 구현, 리뷰 작성 시 경험치 상승
사용자 회원 가입, 로그인, 로그아웃, 팔로우 및 다이렉트 메세지 구현
메인 화면
내비게이션 바 : 로그인 하기 전과 후에 접근할 수 있는 메뉴가 달라진다.
로그인 전
로그인 후
회원 가입 및 로그인
입력된 사용자 정보로 회원가입을 진행한다.
ID, 이메일, 닉네임 항목에 대해 사용자 DB data와 중복 확인을 진행한다.
로그인 기능 : 회원가입이 완료되면 로그인 화면으로 이동한다.
회원가입한 유저의 ID, 비밀번호가 일치하면 로그인에 성공한다.
영상 목록
검색 기능 : 영상 리스트의 모든 컬럼에 대해 검색 가능
정렬 기능 : 영상 리스트의 모든 컬럼에 대해 오름차순/내림차순 정렬 가능
영상 상세 화면
로그인이 되어있지 않아 좋아요 버튼 및 리뷰 목록이 비활성화 되어 있다.
로그인 후 다시 영상 상세 화면에 진입하면 좋아요 버튼과 리뷰 목록이 정상적으로 출력된다.
좋아요 기능 : 해당 영상에 좋아요를 등록하거나 취소할 수 있다.
리뷰 기능 : 해당 영상에 리뷰를 작성하거나 삭제할 수 있다.
리뷰 삭제 버튼은 내가 작성한 리뷰일 때만 출력된다.
사용자 목록
내가 팔로우하고 있는 유저와, 팔로우하고있지 않은 유저가 구분되어 팔로우/언팔로우 버튼이 출력된다.
현재 로그인 한 유저에는 버튼이 출력되지 않는다.
팔로우 기능 : 다른 사용자를 팔로우/언팔로우 할 수 있다.
사용자 마이페이지
사용자 상세정보 확인 및 수정 / 회원탈퇴 / 경험치 바 / 좋아하는 영상 / 팔로우 현황 / 메세지 관리 기능에 접근할 수 있다.
경험치는 100을 기준으로 게이지 바가 채워진다.
좋아하는 영상 카드 하단의 바로가기 버튼을 통해 해당 영상의 상세 페이지로 접근할 수 있다.
사용자 정보 수정 기능 : 비밀번호 / 나이 / 키 / 몸무게를 수정할 수 있다.
팔로잉/팔로워 리스트 확인 기능
팔로잉 리스트에서 내가 팔로우하고있는 사용자에게 메세지 보내기 화면으로 진입할 수 있다.
메세지 목록
확인하고 싶은 메세지를 클릭해서 메세지 상세 정보 모달을 확인할 수 있다.
메세지 제목 검색 기능 : 수신/송신 메세지의 제목으로 메세지를 검색 할 수 있다.
보완 사항
아직 읽지 않은 메세지만 확인하는 기능
경험치가 100을 넘으면 레벨업하는 기능
사용자들이 소통할 수 있는 익명게시판 기능
개발 일지
5/17
프로젝트 구조 설계
DB 설계
5/18
Back
Model 하위 구조 구현
User 관련 기능 구현
Front
Components 하위 구조 구현
5/19
Back
Video 및 Review 관련 DTO, DAO, Service, RestController, Mapper 구현
Front
Views 하위 구조 파일 생성
Components 하위 구조 => Board 구현
store/index.js 추가 기능 구현
5/20
Back
User 및 Board 관련 DTO, DAO, Service, RestController, Mapper 구현
Front
Components 하위 구조 => User, Message 이하 폴더 구현
store/index.js 추가 기능 구현
5/21
Back
Message, Follow, Like 관련 DTO, DAO, Service, RestController, Mapper 구현