9월 3일 팀프로젝트 1차 회의
역할분담
- 프로필관리 + 2. + 3.친구관리(중간테이블) > 멋쟁이 준호님 & 순균님!!!
- 뉴스피드 게시물 관리 + 업그레이드 뉴스피드 > 김동규
3. 댓글+좋아요>>조성래
소프트
Entity(자바) 유저(User)
- ● Long id
- ● String email (아이디)
- ● String name(닉네임)
- ● String introductiont(한줄소개)
- ● String password (Bcrypt)
- ● List<User> friends (친구목록)
- 게시물(Post)
- ● Long id
- ● User user
- ● String title
- ● String content
- ● int like_count
- ● List<Comment> comments
- ● List<PostLike> likes
- 댓글(Comment)
- ● Long id
- ● User user
- ● Post post
- ● String content
- ● int like_count
- ● List<CommentLike> likes
- 게시물 좋아요(PostLike)
- ● Long id
- ● Post post
- ● User user
- 댓글 좋아요(CommentLike)
- ● Long id
- ● Comment comment
- ● User user
- 공통: 등록일자 , 수정일자
친구
아이디
요청자
수신자
상태
연관관계
유저 : 유저 (N:M) 중간테이블 Friend(친구관계) > ManyToOne
유저 : 게시물 > ManyToOne
댓글 좋아요 : 유저 > ManyToOne
게시물 좋아요 : 유저 > ManyToOne
댓글 : 게시물 > ManyToOne
댓글 좋아요 : 댓글 > ManyToOne
게시물 좋아요 : 게시물 > ManyToOne
2. 뉴스피드 게시물 관리
게시물 작성, 조회, 수정, 삭제 기능
게시물 조회는 모든 사용자가 조회할 수 있습니다.
조건
게시물 수정, 삭제는 작성자 본인만 처리할 수 있습니다.
예외처리
작성자가 아닌 다른 사용자가 게시물 수정, 삭제를 시도하는 경우
뉴스피드 조회 기능
기본 정렬은 생성일자 기준으로 내림차순 정렬합니다.
10개씩 페이지네이션하여, 각 페이지 당 뉴스피드 데이터가 10개씩 나오게 합니다.
예외처리
다른 사람의 뉴스피드는 볼 수 없습니다. ex1) 업그레이드 뉴스피드
페이지네이션
10개씩 페이지네이션하여, 각 페이지 당 뉴스피드 데이터가 10개씩 나오게 합니다. 정렬 기능
수정일자 기준 최신순
좋아요 많은 순
기간별 검색 기능
예) 2024.05.01 ~ 2024.05.27 동안 작성된 뉴스피드 게시물 검색
뉴스피드 게시물 관리
생성
수정
예외처리 : 작성자 본인만 삭제 할 수 있음
삭제
예외처리 : 작성자 본인만 삭제 할 수 있음
조회
목록조회 >> 페이지네이션
예외처리 : 친구가 아닌 사용자의 게시글은 볼 수 없음 erd;
https://www.erdcloud.com/d/7FX6QYYZcgM7o37gz
api설계
1. 프로필 관리
● 프로필 조회 기능
○ 다른 사용자의 프로필 조회 시, 민감한 정보는 표시되지 않습니다. ● 프로필 수정 기능
로그인한 사용자는 본인의 사용자 정보를 수정할 수 있습니다.
○
○
비밀번호 수정 조건
- 비밀번호 수정 시, 본인 확인을 위해 현재 비밀번호를 입력하여
- 올바른 경우에만 수정할 수 있습니다.
- 현재 비밀번호와 동일한 비밀번호로는 변경할 수 없습니다.
- 예외처리
- 비밀번호수정시,본인확인을위해입력한현재비밀번호가
- 일치하지 않은 경우
- 비밀번호 형식이 올바르지 않은 경우
- 현재 비밀번호와 동일한 비밀번호로 수정하는 경우
2. 뉴스피드 게시물 관리
● 게시물 작성, 조회, 수정, 삭제 기능
게시물 조회는 모든 사용자가 조회할 수 있습니다.
○ 조건
■ 게시물 수정, 삭제는 작성자 본인만 처리할 수 있습니다.
○ 예외처리
■ 작성자가 아닌 다른 사용자가 게시물 수정, 삭제를 시도하는 경우
● 뉴스피드 조회 기능
○ ○
○
기본 정렬은 생성일자 ****기준으로 내림차순 정렬합니다.
10개씩 페이지네이션하여, 각 페이지 당 뉴스피드 데이터가 10개씩 나오게 합니다.
예외처리
■ 다른 사람의 뉴스피드는 볼 수 없습니다.
3. 사용자 인증
● 회원가입 기능
○ 사용자 아이디
■ 사용자 아이디는 이메일 형식이어야 합니다.
○ 비밀번호
■ Bcrypt로 인코딩합니다.
⚠
⚠
⚠
■ 암호화를 위한 PasswordEncoder를 직접 만들어 사용합니다.
- 대소문자 포함 영문 + 숫자 + 특수문자를 최소 1글자씩 포함합니다.
- 비밀번호는 최소 8글자 이상이어야 합니다.
○ 예외처리
- 중복된 사용자 아이디로 가입하는 경우
- 사용자 아이디 이메일과 비밀번호 형식이 올바르지 않은 경우
● 회원탈퇴 기능
회원 탈퇴 방식을 어떻게 처리할지 고민해보세요.
○ 조건
■ 탈퇴처리시비밀번호를확인한후일치할때탈퇴처리합니다.
■ 탈퇴한 사용자의 아이디는 재사용할 수 없고, 복구할 수 없습니다.
○ 예외처리
- 사용자 아이디와 비밀번호가 일치하지 않는 경우
- 이미 탈퇴한 사용자 아이디인 경우
- 4. 친구 관리
- ● 특정 사용자를 친추 추가/삭제 할 수 있습니다.
- ● 친구 기능이 구현되었다면, 뉴스피드에 친구의 최신 게시물들을 최신순으로 볼 수
- 있습니다.
○ 주의사항
■ 친구는 상대방의 수락 기능이 필요합니다. 만약 어렵다면, 관심 유저를 팔로우하는 기능으로 개발하셔도 좋습니다.
5⃣ 도전 기능 가이드
<aside> 여러분들의 능력을 한 단계 상승시킬 뉴스피드 SNS의 기능들을 상상하고
개발해 보세요.
참고로 아래의 기능은 예시로 작성해둔 사항이에요! </aside>
ex1) 업그레이드 뉴스피드
● 페이지네이션
○ 10개씩 페이지네이션하여, 각 페이지 당 뉴스피드 데이터가 10개씩 나오게
합니다. ● 정렬기능
○ 수정일자 기준 최신순
○ 좋아요많은순 ● 기간별 검색 기능
🧠
🛠
⚠
⚠
⚠
○ 예) 2024.05.01 ~ 2024.05.27 동안 작성된 뉴스피드 게시물 검색 ex2) 댓글
- ● 댓글 작성, 조회, 수정, 삭제
- ○ 사용자는게시물에댓글을작성할수있고,본인의댓글은수정및삭제를할
- 수 있습니다.
- ○ 내용만 수정이 가능합니다.
- ○ 댓글 수정, 삭제는 댓글의 작성자 혹은 게시글의 작성자만 가능합니다.
- ● 댓글 수정, 삭제는 댓글의 작성자 혹은 게시글의 작성자만 가능합니다. ex3) 좋아요
- ○ 사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있습니다.
- ○ 본인이 작성한 게시물과 댓글에 좋아요를 남길 수 없습니다.
- ○ 같은 게시물에는 사용자당 한 번만 좋아요가 가능합니다.
- ● 게시물및댓글좋아요/좋아요취소기능