뉴스피드 프로젝트
1. 프로젝트 소개
1) 과제명
- 뉴스피드 어플리케이션 개발 (블로그)
2) 추진배경
- 지금까지 공부한 Java, Spring의 기술을 직접 활용해 보고 싶어 프로젝트를 통해 사용해 보기 위해서 시작하게 되었습니다.
3) 목표 및 내용
- JWT 토큰을 이용하여 로그인과 회원가입 기능 구현해보기
- 게시글 CRUD 기능 구현해보기
- 게시글 조회 기능을 메인페이지에서는 모든 게시글을 볼 수 있게 하고 마이페이지에서 내가 쓴 글만 볼 수 있게 구현해보기
- 개인정보 수정 구현해보기
- 모든 기능 구현 후 다른 기능 추가해보기
2. 프로젝트 개요
- 프로젝트명 : 뉴스피드 어플리케이션 개발 (블로그)
- 개발 인원 : 5명
- 개발 기간 : 2024.02.07 ~ 2024.02.14
- 개발 환경 : Springboot 3.2.2 JDK 17.0.9
- 웹 서버 : Tomcat : 10.1.18
- 데이터베이스 : MySQL 8.0.35
- 협업 도구 : GitHub, Notion
3. 요구사항 분석
- 필수 구현 기능
- 회원 가입 기능
- 새로운 사용자가 ID와 비밀번호의 형태로 서비스에 가입할 수 있어야 합니다.
- 이때 비밀번호는 암호화되어 있어야 합니다.
- 새로운 사용자가 ID와 비밀번호의 형태로 서비스에 가입할 수 있어야 합니다.
- 로그인 및 로그아웃 기능
- 사용자는 자신의 계정으로 서비스에 로그인하고 로그아웃할 수 있어야 합니다.
- 회원 가입 기능
- 프로필 기능
- 프로필 수정 기능
- 이름, 한 줄 소개와 같은 기본적인 정보를 볼 수 있어야 하며 수정할 수 있어야 합니다.
- 비밀번호 수정 시에는 비밀번호 확인 후 입력받도록 해야 합니다.
- 프로필 수정 기능
- 게시물 CRUD 기능
- 게시물 작성, 조회, 수정, 삭제 기능
- 게시물 조회를 제외한 나머지 기능들은 전부 인가 (Authorization) 개념이 적용되어야 하며 이는 JWT와 같은 토큰으로 검증 되어야 합니다.
- 게시물 작성, 조회, 수정, 삭제 기능
- 뉴스 피드 기능
- 뉴스 피드 페이지
- 사용자가 다른 사용자의 게시물을 볼 수 있는 뉴스 피드 페이지가 있어야 합니다.
- 뉴스 피드 페이지
3-1. 추가 구현 기능
- 프론트엔드 측 게시물 CRUD 기능
- 게시물 작성, 수정, 삭제 시 새로고침 기능
- 프론트엔드에서 게시물 작성, 수정, 삭제를 할 때마다 조회 API를 다시 호출하여 자연스럽게 최신의 게시물 내용을 화면에 보여줄 수 있어야 합니다.
- 게시물 작성, 수정, 삭제 시 새로고침 기능
- 댓글 CRUD 기능
- 댓글 작성, 조회, 수정, 삭제 기능
- 사용자는 게시물에 댓글을 작성할 수 있고 본인의 댓글은 수정 및 삭제를 할 수 있어야 합니다.
- 또한, 게시물과 마찬가지로 댓글 조회를 제외한 나머지 기능들은 인가 (Authorization)개념이 적용되어야 합니다.
- 댓글 작성, 수정, 삭제 시 새로고침 기능
- 프론트엔드에서 댓글 작성, 수정 및 삭제를 할 때마다 조회 API를 다시 호출하여 자연스럽게 최신의 댓글 목록을 화면에 보여줄 수 있도록 해야 합니다
- 댓글 작성, 조회, 수정, 삭제 기능
- 이메일 가입 및 인증 기능
- 이메일 가입 시 이메일 인증할 수 있도록 해야 합니다.
- 좋아요 기능
- 시물 및 댓글 좋아요/좋아요 취소 기능
- 사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있어야 합니다.
- 이 때, 본인이 작성한 게시물과 댓글에 좋아요는 남길 수 없도록 해봅니다
- 시물 및 댓글 좋아요/좋아요 취소 기능
- 프론트엔드 만들어보기
- 백엔드에서 제공하는 API를 통해 서버와 통신하는 프론트엔드를 구현합니다.
4. 와이어 프레임
5. ERD
6. API 명세서
7. 회고
- ERD와 API 설계를 하면서 여기서 기능을 추가함에 따라 ERD의 Table이 증가하고 연관관계가 늘어나면 엄청 복잡해지고 처음에 설계를 제대로 하지 않다면 나중에 큰 문제가 생길 수도 있겠다는 생각을 했습니다.
- 개발을 시작하면서 ERD 설계와 API 설계도 개발에 있어 너무 중요한 부분을 차지한다는 얘기를 많이 들었는데 직접 설계를 하면서 설계 자체로도 생각을 많이 해야 하고 신중하게 해야 한다는걸 느끼게 되었습니다.
- 또한 팀원들과 회의를 하면서 소통하는 방법을 배우고 있습니다.
'Project > Newsfeed Project' 카테고리의 다른 글
[Project / Newsfeed] - 뉴스피드 프로젝트 6일차 (0) | 2024.02.18 |
---|---|
[Project / Newsfeed] - 뉴스피드 프로젝트 5일차 (0) | 2024.02.18 |
[Project / Newsfeed] - 뉴스피드 프로젝트 4일차 (0) | 2024.02.13 |
[Project / Newsfeed] - 뉴스피드 프로젝트 3일차 (0) | 2024.02.09 |
[Project / Newsfeed] - 뉴스피드 프로젝트 2일차 (0) | 2024.02.09 |