1. Security + JWT
도서관별로 회원이 존재하며, 도서 대여를 위해 memberId를 관리해야하므로 JWT를 활용한 로그인 기능.
2. Auditable
도서 대여가 시작될 때 기록되는 날짜 정보를 위한 필드 createdAt,
도서 반납이 될 때 기록되는 날짜 정보를 위한 필드 returnedAt
3. 예외 처리
로직 처리 중 정상 범위 외의 조건이 발생하였을 때 예외를 처리하는 역할
1. Security + JWT
JWT 사용 이유
1. 서버에서 세션 상태를 유지할 필요가 없는 Stateless 인증 방식을 제공.
> JWT를 사용하면 서버에서는 사용자에 대한 정보와 함께 JWT를 생성하여 클라이언트에게 보낸다.
클라이언트는 이후 JWT를 포함하여 요청을 전송하고, 서버에서는 JWT를 검증하여 인증을 거친다.
즉, 서버는 로그인 세션을 유지할 필요가 없어져 서버의 부담이 줄고, 확장성을 향상 시킬 수 있다.
2. 보안성
> JWT는 콘텐츠를 암호화할 수 있어 사용자의 인증 정보와 개인 데이터가 노출되는 것을 방지하며,
데이터의 신뢰성을 보장한다. 또한 JWT에는 서명이 포함되어 있어 내용이 변조되었는지 확인할 수 있다.
3. 교차 도메인 인증이 가능
JWT는 HTTP 헤더를 통해 전송이되므로, CORS 이슈를 피하면서 도메인 간에 사용자 인증 정보를 공유한다.
2. Auditable
도서 대출이 발생할 때 : createdAt
도서 반납이 발생할 때 : returnedAt
3. 예외 처리
A. BusinessLogicException
커스텀으로 생성한 예외 클래스에서 원하는 응답 메시지를 골라서 전달하는 역할.
B. ErrorResponse
예외 발생 시, 필요한 정보만 담아서 예외 응답 데이터를 전달할 수 있도록 필터링하는 역할.
C. ExceptionCode
예외별 전달할 응답 메시지를 커스텀하여 보관하는 역할.
D. GlobalExceptionAdvice
모든 Controller 클래스에서 발생하는 예외들을 공통 처리하는 역할
'프로젝트 일지' 카테고리의 다른 글
#6. 싱글 프로젝트 일지 - Library 도메인 (0) | 2023.05.10 |
---|---|
#5. 싱글 프로젝트 일지 - Member 도메인 (0) | 2023.05.10 |
#3. 싱글 프로젝트 일지 - ERD 도메인 생성 (0) | 2023.05.09 |
#2. 싱글 프로젝트 일지 - Spring 생성 및 Github 연결 (0) | 2023.05.09 |
#1. 싱글 프로젝트 일지 - 개요 (0) | 2023.05.09 |