
취준생을 위한 뉴스피드 팀 프로젝트 설계
설계
API 명세서

ERD

Wire Frame

기술 스택
- Java 17
- Gradle - Groovy
- Spring Boot 3.1.5
- Lombok
- Spring Boot DevTools
- Spring Web
- Spring Security
- Spring Data JPA
- MySQL Driver
- Validation
협업 방법
- 기술 개발 및 결합 과정의 방법
- 기능 완성 시점에 PR을 요청하고, 1명 이상이 코드 리뷰 후에 병합한다.
- 브랜치는 main(배포용), dev(개발용), feature(기능 개발용)로 나눠서 관리한다.
- 코드 컨벤션
- 커밋 컨벤션
- 패키지 구조
- 도메인형 패키지 구조로 개발한다.
- 공통으로 사용하는 기능은 common 패키지에서 관리한다.
구현 기능 목록
- 사용자 인증 기능
- 회원가입 기능
- 새로운 사용자가 ID와 비밀번호의 형태로 서비스에 가입할 수 있어야 합니다.
- 이 때, 비밀번호는 안전하게 암호화되어 저장되어야 합니다!
- 로그인 및 로그아웃 기능
- 사용자는 자신의 계정으로 서비스에 로그인하고 로그아웃할 수 있어야 합니다.
- 로그인에 성공하면 Jwt를 발급한다.
- 프로필 관리
- 프로필 수정 기능
- 이름, 한 줄 소개와 같은 기본적인 정보를 볼 수 있어야 하며 수정할 수 있어야 합니다.
- 비밀번호 수정 시에는 비밀번호를 한 번 더 입력받는 과정이 필요합니다.
- 게시물 CRUD 기능
- 게시물 작성, 조회, 수정, 삭제 기능
- 게시물 조회를 제외한 나머지 기능들은 전부 인가(Authorization) 개념이 적용되어야 하며 이는 JWT와 같은 토큰으로 검증이 되어야 할 것입니다.
- 예컨대, 내가 작성한 글을 남이 삭제할 수는 없어야 하고 오로지 본인만 삭제할 수 있어야겠죠?
- 게시물 작성, 수정, 삭제 시 새로고침 기능
- 프론트엔드에서 게시물 작성, 수정 및 삭제를 할 때마다 조회 API를 다시 호출하여 자연스럽게 최신의 게시물 내용을 화면에 보여줄 수 있도록 해야 합니다!
- 뉴스 피드 기능
- 뉴스 피드 페이지
- 사용자가 다른 사용자의 게시물을 한 눈에 볼 수 있는 뉴스 피드 페이지가 있어야 합니다.
- 페이지네이션이 적용된 조회
- 팔로우, 좋아요, 작성일자에 따른 가중치를 부여하여 유저마다 추천 피드들이 우선적으로 보이도록 구현하는 기능을 추가한다.
- 댓글 CRUD 기능
- 댓글 작성, 조회, 수정, 삭제 기능
- 사용자는 게시물에 댓글을 작성할 수 있고 본인의 댓글은 수정 및 삭제를 할 수 있어야 합니다.
- 또한, 게시물과 마찬가지로 댓글 조회를 제외한 나머지 기능들은 인가(Authorization)개념이 적용되어야 합니다.
- 댓글 작성, 수정, 삭제 시 새로고침 기능
- 프론트엔드에서 댓글 작성, 수정 및 삭제를 할 때마다 조회 API를 다시 호출하여 자연스럽게 최신의 댓글 목록을 화면에 보여줄 수 있도록 해야 합니다!
- 이메일 가입 및 인증 기능
- 이메일 가입 시 이메일 인증 기능을 포함하는 것이 좋습니다.
- 좋아요 기능
- 게시물 및 댓글 좋아요/좋아요 취소 기능
- 사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있어야 합니다.
- 이 때, 본인이 작성한 게시물과 댓글에 좋아요는 남길 수 없도록 해봅니다!
- 프로필에 사진 업로드 기능 구현
- 프로필 사진을 저장할 때는 반드시 AWS S3를 이용해주세요!
- 팔로우 기능 구현
- 특정 사용자를 팔로우/언팔로우를 할 수 있으면 너무 좋습니다.
- 팔로우 기능이 구현되었다면 뉴스 피드에 팔로우하는 사용자의 게시물을 볼 수 있어야 하겠죠?