About the project • Key Features • Development Process
REST API Docs 여기에서 확인 가능합니다.
게시글 CRUD 기능을 API 개발로 구현하고 문서화 작업, 배포까지 한 스프링 부트 개인 프로젝트 입니다.
더불어, 로그인/회원가입 기능과 비밀번호 암호화, 수정,삭제 권한을 위한 인증/검증 기능을 구현했습니다.
특히, 커뮤니티성 개인 프로젝트를 진행함에 있어 테스트 케이스 작성
, 배포
, REST API 개발
, 꼼꼼한 Exception 처리
와 같은 점들을 공부할 수 있어 많은 도움이 되었습니다.
- Spring Boot
2.7.6
- Java
11
Junit5
- Gradle
7.5.1
- MySQL
8.0.32
- Back-End
REST API
Spring Boot
MySQL
- API Docs
Spring REST Docs
-
Deployment
AWS-EC2
-
Config
WebMvcConfig
(ArgumentResolver)QueryDslConfig
-
Test
Junit5
- Controller, Service 통합 테스트
-
- 글 작성, 조회, 수정, 삭제 기능 - REST API 개발
-
- API DOCS by Spring REST Docs
- 테스트 케이스 관리 - REST API 기능 문서화 작업
-
- 글 수정/삭제 권한, 회원가입/로그인 검증, 세션, 쿠키, (JWT)
-
- 로그인 시 유저 세션을 발급 받도록 설계
- 발급된 세션 토큰은 Header의
Cookie
에 담도록 설계
-
- 회원가입 시 raw password를
Scrypt
암호화 라이브러리를 이용해 암호화 후 저장
- 회원가입 시 raw password를
-
- 인증/검증 예외처리:
UnauthorizedUser
,DuplicateEmailException
,InvalidSignIn
,InvalidRequest
- Status 404 에러(존재하지 않는 글에 대한 처리):
PostNotFound
- 최상위 Exception 추상 클래스
ProjectChoiException
을 상속받은 클래스로 설계
- 인증/검증 예외처리:
-
Part1 - 프로젝트에 필요한 개발 개념, 스프링 어노테이션에 대하여
-
Part2 - JPA 제공 기능과 Stream, 디자인 패턴에 대하여
-
Part3 - 인증 / 검증 로직에 대하여
GitHub @lucaschoi99 · Velog @lucaschoi