- adapter: 외부와의 통신을 위한 패키지
- 인커밍 어댑터: 외부로부터 요청이 들어옴 Ex) API 요청
- 아웃고잉 어댑터: 외부로 요청을 보냄 Ex) DB 저장
- application: 도메인 객체들의 협력을 위한 서비스 계층
- converter: 계층 별로 객체 변환을 위한 컨버터
- domain: 도메인 객체 및 포트(핵심 비즈니스 로직)가 존재하는 계층
- 포트: 인터페이스로써 요청의 입/출력에 대한 명세를 담당
- 도메인 객체: 영속성 객체로부터 분리된 비즈니스 로직을 갖는 객체
- errors: 해당 도메인에서 발생 가능한 에러가 존재함
- Exception: 해당 도메인에서만 사용하는 에러
- ErrorCode: 해당 도메인에서만 발생하는 에러 코드
- 입력 유효성 에러: 웹 어댑터 -> throws
- 비즈니스 로직 에러: 웹 어댑터 -> 입력 포트 -> 애플리케이션 -> 비즈니스 로직 처리 -> 예외 발생 -> throws
- 성공: 웹 어댑터 -> 입력 포트 -> 애플리케이션 -> 비즈니스 로직 처리 -> 출력 포트 -> 디비 어댑터
- 회원 가입
- 회원가입 시에 제출한 비밀번호가 비밀번호 정책에 부합하는지 검사함
- 비밀번호 정책은 문자 + 숫자 + 특수문자 + 7자리 이상에 해당함
- 모임 주체자로 회원가입을 함
- 모임 참여자로 회원가입을 함
- 로그인
- 유효한 아이디와 비밀번호를 제출하면 인증 토큰을 발급받음
- 유효하지 않은 아이디와 비밀번호 제출 시에 에러 응답
- 토큰에 사용자 역할 넣어서 API 인가 처리
- [] Refresh 토큰 처리
- 회원 정보 조회
- 유효한 인증 토큰으로 회원 가입 시에 제출한 정보를 조회할 수 있음
- 정보 조회 시에 비밀번호는 노출되지 않아야 함
- 모임 주최자이면서 참여자인 경우 추가 데이터 노출
- 모임 참여자이면서 주최자인 경우 추가 데이터 노출
- 유효하지 않은 인증 토큰으로 정보 조회 시에 에러 응답
- 회원 정보 수정
- 회원 정보 수정 시에 제출한 비밀번호가 비밀번호 정책에 부합하는지 검사함
- 유효한 인증 토큰으로 회원 가입 시에 제출한 정보를 수정할 수 있음
- 유효하지 않은 인증 토큰으로 정보 수정 시에 에러 응답
- 추가 활동하기
- 모임 주최자는 모임 참여자로도 활동할 수 있으며 추가 정보 제출이 필요함
- 모임 참여자는 모임 주최자로도 활동할 수 있으며 추가 정보 제출이 필요함
- 유효하지 않은 인증 토큰으로 정보 수정 시에 에러 응답