내일배움캠프/TIL

[Spring_4기 본캠프] 프로젝트 주간 - 뉴스피드 만들기 (첫 번째) 요구사항 정리 | Day 47

austindynasty 2024. 12. 20. 21:42

1. 목적과 기능

<목적>

1) 데이터베이스와 ORM 

- 데이터베이스 스키마를 설계할 수 있다.

- JPA를 이요해 데이터베이스와 연동할 수 있다.

- JPA를 통해 CRUD 작업을 할 수 있다.

 

2) 인증

- 사용자 인증과 인가의 기본 원리와 차이점을 이해하고 있다.

- JWT를 이해하고 활용할 수 있다.

 

3) REST API

- 기능에 알맞게 REST API 설계를 할 수 있다.

- Spring Boot를 이용해 REST API를 구현할 수 있다.

 

4) 협업 및 버전 관리

- Git을 사용해 소스 코드 버전 관리를 할 수 있다.

- Git branch를 이용하여 브랜치 관리 

- Pull Request와 코드 리뷰 과정에 대해 이해할 수 있다.

 

<기능>

[ 뉴스 피드 NewsFeed ]

- 게시글 CRUD 기능

   * 제한 사항 : 게시물 수정, 삭제는 작성자 본인만 처리할 수 있다.

- 뉴스피드 조회 기능

   * 제한 사항 : 생성일자 기준 내림차순 정렬, 각 페이지 당 뉴스피드 데이터가 10개씩 나오도록 페이지네이션 설정

[ 사용자 User ]

- 회원 가입 기능

   * 제한 사항 : 사용자 아이디는 이메일 형식, 비밀번호 인코딩으로 암호화, 중복 아이디 가입 불가, 이메일과 비밀번호 형식 지정

   * 비밀번호 형식 : 대소문자 포함 영문 + 숫자 + 특수문자 최소 1글자씩 포함, 최소 8글자

- 회원 탈퇴 기능

   * 제한 사항 : 탈퇴 시 비밀번호 검증, 탈퇴한 사용자의 아이디 재사용/복구 불가

- 프로필 조회 기능 

   * 제한 사항 : 다른 사용자의 프로필 조회 시, 민감 정보 제외

- 프로필 수정 기능

   * 로그인한 사용자만 프로필 정보 수정이 가능하게 구현하되, 비밀번호 수정 시 비밀번호 검증 필수

   * 현재 비밀번호와 동일한 비밀번호로는 변경 불가

[ 친구 관리 Follow-RelationShip ]

- 특정 사용자를 친구로 추가/삭제 할 수 있다. → 특정 사용자 팔로우, 언팔로우 기능으로 변경

- 친구 기능이 구현되었다면, 뉴스피드에 친구의 게시물을 최신순으로 조회 가능