[Project] 뉴스피드 프로젝트 설계

김지현·2023년 11월 21일
0
post-thumbnail

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

설계

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

협업 방법

  1. 기술 개발 및 결합 과정의 방법
    • 기능 완성 시점에 PR을 요청하고, 1명 이상이 코드 리뷰 후에 병합한다.
    • 브랜치는 main(배포용), dev(개발용), feature(기능 개발용)로 나눠서 관리한다.
  2. 코드 컨벤션
  3. 커밋 컨벤션
  4. 패키지 구조
    • 도메인형 패키지 구조로 개발한다.
    • 공통으로 사용하는 기능은 common 패키지에서 관리한다.

구현 기능 목록

  • 사용자 인증 기능
  • 회원가입 기능
    • 새로운 사용자가 ID와 비밀번호의 형태로 서비스에 가입할 수 있어야 합니다.
      • 이 때, 비밀번호는 안전하게 암호화되어 저장되어야 합니다!
  • 로그인 및 로그아웃 기능
    • 사용자는 자신의 계정으로 서비스에 로그인하고 로그아웃할 수 있어야 합니다.
    • 로그인에 성공하면 Jwt를 발급한다.
  • 프로필 관리
    • 프로필 수정 기능
      • 이름, 한 줄 소개와 같은 기본적인 정보를 볼 수 있어야 하며 수정할 수 있어야 합니다.
      • 비밀번호 수정 시에는 비밀번호를 한 번 더 입력받는 과정이 필요합니다.
  • 게시물 CRUD 기능
    • 게시물 작성, 조회, 수정, 삭제 기능
      • 게시물 조회를 제외한 나머지 기능들은 전부 인가(Authorization) 개념이 적용되어야 하며 이는 JWT와 같은 토큰으로 검증이 되어야 할 것입니다.
      • 예컨대, 내가 작성한 글을 남이 삭제할 수는 없어야 하고 오로지 본인만 삭제할 수 있어야겠죠?
  • 게시물 작성, 수정, 삭제 시 새로고침 기능
    • 프론트엔드에서 게시물 작성, 수정 및 삭제를 할 때마다 조회 API를 다시 호출하여 자연스럽게 최신의 게시물 내용을 화면에 보여줄 수 있도록 해야 합니다!
  • 뉴스 피드 기능
    • 뉴스 피드 페이지
      • 사용자가 다른 사용자의 게시물을 한 눈에 볼 수 있는 뉴스 피드 페이지가 있어야 합니다.
      • 페이지네이션이 적용된 조회
      • 팔로우, 좋아요, 작성일자에 따른 가중치를 부여하여 유저마다 추천 피드들이 우선적으로 보이도록 구현하는 기능을 추가한다.
  • 댓글 CRUD 기능
    • 댓글 작성, 조회, 수정, 삭제 기능
      • 사용자는 게시물에 댓글을 작성할 수 있고 본인의 댓글은 수정 및 삭제를 할 수 있어야 합니다.
      • 또한, 게시물과 마찬가지로 댓글 조회를 제외한 나머지 기능들은 인가(Authorization)개념이 적용되어야 합니다.
    • 댓글 작성, 수정, 삭제 시 새로고침 기능
      • 프론트엔드에서 댓글 작성, 수정 및 삭제를 할 때마다 조회 API를 다시 호출하여 자연스럽게 최신의 댓글 목록을 화면에 보여줄 수 있도록 해야 합니다!
  • 이메일 가입 및 인증 기능
    • 이메일 가입 시 이메일 인증 기능을 포함하는 것이 좋습니다.
  • 좋아요 기능
    • 게시물 및 댓글 좋아요/좋아요 취소 기능
      • 사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있어야 합니다.
      • 이 때, 본인이 작성한 게시물과 댓글에 좋아요는 남길 수 없도록 해봅니다!
  • 프로필에 사진 업로드 기능 구현
    • 프로필 사진을 저장할 때는 반드시 AWS S3를 이용해주세요!
  • 팔로우 기능 구현
    • 특정 사용자를 팔로우/언팔로우를 할 수 있으면 너무 좋습니다.
    • 팔로우 기능이 구현되었다면 뉴스 피드에 팔로우하는 사용자의 게시물을 볼 수 있어야 하겠죠?

0개의 댓글

관련 채용 정보