admin: 설명 추가
This commit is contained in:
parent
76e7504d0e
commit
3902af57e3
|
|
@ -0,0 +1,50 @@
|
|||
# 관리자 서비스
|
||||
|
||||
## Stack
|
||||
- Spring Boot 3.2.5
|
||||
- Spring Security 6
|
||||
- JWT (Json Web Token)
|
||||
- JPA + QueryDsl (Java Persistence Api)
|
||||
- MariaDB LTS 10.11.7
|
||||
- Docker (for Database, 선택사항)
|
||||
- Test Containers (for Integration Test)
|
||||
|
||||
## Domain 설명
|
||||
- 로그인 시 Access Token 과 Refresh Token 을 발급한다.
|
||||
- Access Token 만료 시 Refresh Token 을 이용하여 자동으로 재발급한다.
|
||||
- Refresh Token 은 ip 를 추가 검증한다.
|
||||
- Refresh Token 만료 시 로그인 페이지로 이동한다.
|
||||
- 로그아웃 시 Access Token, Refresh Token 을 삭제한다.
|
||||
- 서버에서 세션을 별도로 관리하지 않고 발급한 AT/RT 를 이용하여 인증/인가를 처리한다.
|
||||
- 관리자는 하나의 권한을 가진다.
|
||||
- 메뉴는 메뉴 그룹과 메뉴 2 Depth 로 등록하고 노출한다.
|
||||
- 권한에 메뉴를 등록하여 접근할 수 있는 메뉴를 제공한다.
|
||||
- 등록된 메뉴 외 접근 시 권한이 없다는 메시지를 노출한다.
|
||||
- 메뉴를 등록할 때 메뉴 별 추가 권한 등록이 가능하다.
|
||||
|
||||
## 아키텍처
|
||||
- CQRS(Command and Query Responsibility Segregation) 적용
|
||||
- 상위 계층에서 하위 계층 호출은 가능하지만 하위 계층에서 상위 계층 호출은 불가하다.
|
||||
(e.g. 표현 -> 응용, 도메인 호출 가능, 도메인 -> 응용 호출 불가능)
|
||||
|
||||
### 표현 계층
|
||||
- /admin/web/**Controller.java: Client 와 통신하는 계층
|
||||
- /admin/web/**WebService.java: 화면 노출을 위한 계층
|
||||
- /admin/web/**QueryRepository.java: QueryDsl 을 이용한 화면에 노출할 데이터 조회
|
||||
|
||||
### 응용 계층
|
||||
- /admin/app/**AppService.java: 비즈니스 로직을 처리하는 계층, 1 또는 N개 이상의 도메인 로직을 조합하여 도메인 Service를 호출한다.
|
||||
|
||||
### 도메인 계층
|
||||
- /admin/domain/**/{엔티티}Service.java: 도메인 로직을 처리하는 계층
|
||||
- /admin/domain/**/{엔티티}Repository.java: JPA 를 이용한 데이터 조회 및 저장
|
||||
|
||||
## 테스트 더블
|
||||
- Test Container를 이용하여 실제 동작 테스트
|
||||
- 응용 / 도메인 계층에 대해 작성한다.
|
||||
- 테스트 코드 작성 시 Mock/Fake/Stub을 이용하는 것이 아닌 의존성을 주입받고 테스트 대상 클래스의 메서드를 호출하여 테스트한다.
|
||||
|
||||
|
||||
## TODO
|
||||
- 화면
|
||||
- Exception 처리 (AS-IS: Unchecked Exception 처리 중, 로그인은 Checked Exception 으로 필요에 따라 추후 처리)
|
||||
Loading…
Reference in New Issue