Spring

뉴스피드 프로젝트 설계

윤승 2025. 4. 7. 22:29
내배캠 팀 프로젝트

 

와이어 프레임

 

https://www.figma.com/design/VzHGj2FeCsncYvQFMm4jQA/Twitter-UI-Screens--Community-?node-id=4-1224&t=gyUzv3w8OQqObZ7i-1

 

Figma

Created with Figma

www.figma.com

 

 

API 명세서

회원

회원인증인가

ERD

 

 

✅ 1. 프로필 관리

📌 기능

  • 프로필 조회
    • 다른 사용자 프로필 조회 가능
    • 민감한 정보는 표시되지 않음 (항목은 팀 내부 결정)
  • 프로필 수정
    • 로그인한 사용자만 본인 정보 수정 가능
    • 비밀번호 수정 조건
      • 현재 비밀번호 입력 → 일치해야 변경 가능
      • 현재 비밀번호와 동일한 비밀번호로는 변경 불가

⚠️ 예외 처리

  • 현재 비밀번호 불일치
  • 비밀번호 형식 불일치 (조건 미충족)
  • 기존 비밀번호와 동일한 비밀번호로 변경 시도

✅ 2. 뉴스피드 게시물 관리

📌 기능

  • 게시물 작성, 조회, 수정, 삭제
    • 게시물 수정/삭제는 작성자 본인만 가능
  • 뉴스피드 조회
    • 기본 정렬: 생성일자 기준 내림차순
    • 페이지네이션: 1페이지당 10개 게시물

⚠️ 예외 처리

  • 작성자가 아닌 사용자가 수정/삭제 시도

✅ 3. 사용자 인증

📌 기능

  • 회원가입
    • 아이디: 이메일 형식
    • 비밀번호 조건:
      • 영문 대/소문자 + 숫자 + 특수문자 각 1개 이상 포함
      • 최소 8자 이상
      • BCrypt로 암호화 (PasswordEncoder 직접 구현)
  • 회원탈퇴
    • 비밀번호 확인 → 일치 시 탈퇴 처리
    • 탈퇴한 아이디는 재사용 및 복구 불가

⚠️ 예외 처리

  • 중복 아이디 가입 시도
  • 아이디(이메일), 비밀번호 형식 불일치
  • 탈퇴 시 아이디/비밀번호 불일치
  • 이미 탈퇴된 아이디로 재탈퇴 시도

✅ 4. 친구 관리

📌 기능

  • 사용자 친구 추가/삭제 가능
  • 친구 기능을 구현하면 뉴스피드에서 친구의 최신 게시물을 최신순으로 조회 가능

⚠️ 주의사항

  • 친구 기능에는 상대방의 수락 절차가 필요
    • 구현이 어려울 경우 → 팔로우 방식(단방향)으로 대체 가능

'Spring' 카테고리의 다른 글

뉴스피드 프로젝트 트러블 슈팅  (4) 2025.04.14
JPQL이란? (@Query)  (1) 2025.04.10
Spring - REST API 기반 일정 관리 서버 시스템2  (0) 2025.04.04
Spring Container와 Spring Bean  (0) 2025.03.27
SOLID 원칙이란?  (0) 2025.03.26