Home [SNS 클론코딩] 기획 및 아키텍처 설계
포스트
취소

[SNS 클론코딩] 기획 및 아키텍처 설계

요구사항

유즈 케이스 다이어그램

  • 회원가입과 회원 로그인을 할 수 있어야 한다.
  • 피드를 통해 포스트 목록을 조회할 수 있어야 한다.
  • 로그인이 되어있다면, 포스트를 작성하고, 수정하고, 삭제할 수 있어야 한다.
  • 로그인이 되어있다면, 다른 회원의 포스트에 좋아요를 누르면 좋아요 수가 올라가고, 다시 누르면 취소된다.

아키텍처 설계

데이터베이스 선택

  1. RDBMS vs NoSQL 선택:
  • 회원 정보와 포스트 정보를 저장할 데이터 베이스가 필요
  • 회원A 가 포스트A를 작성했다는 관계를 저장해야 함
  • 회원별로 작성한 포스트 정렬 기능 필요

따라서 RDBMS를 사용하려 한다.

  1. 데이터베이스 엔진 선택:
  • 학습 용도이므로, 비용이 따로 청구되지 않는 데이터 베이스 서버(TypeCloud 이용 예정)에서 지원하는 데이터베이스를 선택해야함
  • 이미 사용해보아 익숙한 MySQL보다도, 다른 SQL을 이용해보려 함

따라서 PostgreSQL을 사용하려 한다.

사용자 인증 방식 선택

  1. 인증 스키마
  • 회원 아이디와 비밀번호가 오가는데, 별도의 key 없이 복호화 가능한 방식은 안됨
  • 회원 계정 정보가 매 요청마다 오고 갈 경우 탈취의 우려가 있으므로, 토큰 기반 인증을 사용하려 함

따라서 JWT를 사용하려 한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

[백엔드|스프링부트] JPQL과 JPA Repository 쿼리 메서드

[SNS 클론코딩] 회원가입과 로그인 기능 개발