스프링의 아주 기초는 어느정도 익혔다고 생각해
이제 무언가 내 손으로 만들고 싶어졌다.
따라서, 간단한 사이드 프로젝트를 진행해보고자 한다
1. 프로젝트 개요
'Linker'는, 북마크와 비슷하게 웹사이트의 링크를 모아놓고, 공유할 수 있는 서비스다.
- 이름 : Linker
- 주요 기능 : 링크 관리, 링크 공유, 링크 업로드 (게시판)
- 개발 프레임워크 : Spring Boot 3.2.0 / Gradle / Spring Security + JWT / Spring Data JPA / QueryDSL
- 자바 버전 : 17
2. 요구사항 분석서
- 회원 가입
- 유효성검사
ID는 lower-case 알파벳과 숫자만 허용
닉네임은 특수문자 제외
모든 필드는 NonBlank
비밀번호는 8자 이상, 대문자+소문자+숫자+특수문자로 구성
- 중복 검사
ID와 닉네임에 대하여 중복 검사 수행
-
로그인
모든 필드는 NonBlank
같은 아이디에 대해 너무 많은 로그인 시도시 접속 차단
+) 추후, 소셜로그인 도입 고려해보기
-
링크 관리
- 링크 추가의 경우, 같은 사용자에게 중복되었는지 확인
- 링크 추가 과정에서 폴더 선택 가능하도록 하기
- 링크 추가 필드는 NonBlank
- 링크 공유
- 링크 폴더 공유시, URL로 추출하기
- 사용자의 아이디를 기반으로 공유한다면, 이외 사용자는 접근 권한 검사하기
- 게시글
링크 폴더를 게시글에 첨부해 작성 할 수 있음
모든 필드는 NonBlank
삭제/수정 권한 검사
- 댓글
게시글 삭제시 Cascade로 삭제됨
NonBlank
권한 검사
3.ERD
프로토타입 뷰는 타임리프와 부트스트랩만 이용해 간단하게 구성할 예정이기에 제외했다.
구현 과정은 시리즈를 통해 업로드 할 예정이다.