[Spring_4기 본캠프] 프로젝트 주간 - 뉴스피드 만들기 (첫 번째) 요구사항 정리 | Day 47
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 ]
- 특정 사용자를 친구로 추가/삭제 할 수 있다. → 특정 사용자 팔로우, 언팔로우 기능으로 변경
- 친구 기능이 구현되었다면, 뉴스피드에 친구의 게시물을 최신순으로 조회 가능