TIL

9월 3일 팀프로젝트 1차 회의

seo._.sg98 2024. 9. 3. 17:25
728x90

역할분담

  1. 프로필관리 + 2. + 3.친구관리(중간테이블) > 멋쟁이 준호님 & 순균님!!!
  2. 뉴스피드 게시물 관리 + 업그레이드 뉴스피드 > 김동규

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) 좋아요
    • ○  사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있습니다.
    • ○  본인이 작성한 게시물과 댓글에 좋아요를 남길 수 없습니다.
    • ○  같은 게시물에는 사용자당 한 번만 좋아요가 가능합니다.
  • 게시물및댓글좋아요/좋아요취소기능

기반으로 작성한 ERD

 

728x90