개인 프로젝트/Toy & Side

[TOY] 설계 - 유스케이스

kwang2134 2024. 10. 13. 17:01
728x90

1. 클래스 설계 - 유스케이스

유스케이스 클래스에 대한 설계입니다. 서비스에서 구현될 유스케이스를 정의하는 인터페이스로 구성되어 있습니다. 이전 패키지 구조에서 여러 개로 나뉘어 있던 UseCase중 CRUD 기능들은 하나로 묶어서 정의하였습니다.


2. UseCase

각 도메인 패키지 아래의 usecase 패키지가 입니다. 기본적인 CRUD를 구현한 유스케이스와 부가 기능을 가진 유스케이스가 존재합니다.


2.1 User

User 도메인 패키지 아래의 유스케이스 입니다. CRUD 유스케이스와 login 유스케이스로 분리되어 있습니다.

UserCrudUseCase


User CRUD를 정의한 유스케이스입니다. 회원 가입, 수정, 삭제, 정보 조회 기능을 가지고 있습니다.

LoginUseCase


User login을 정의한 유스케이스입니다. 현재는 로그인에 관한 유스케이스 밖에 존재하지 않으나 차후 아이디 찾기나 비밀번호 찾기와 같은 서비스가 추가될 가능성이 있습니다.


2.2 Post

Post 도메인 패키지 아래의 유스케이스입니다. CRUD 유스케이스와 인기글에 대한 RecommendUseCase가 존재합니다.

PostCrudUseCase


Post의 CRUD를 정의한 유스케이스입니다. 게시글 생성, 수정, 삭제, 조회가 존재하며 조회에는 선택한 게시글 내용에 대한 조회와 각종 검색 조건들을 통한 검색이 존재합니다. 검색 조건에 사용될 PostSearchCond 클래스가 post.application.dto 아래에 새로 생성되었습니다.

RecommendPostUseCase


Post의 추천 기능과 관련된 유스케이스입니다. 추천과 비추천 수를 조작하는 메서드와 인기글 변경 메서드 그리고 인기글 조회를 위한 메서드가 존재합니다.


2.3 Comment

Comment 도메인 패키지 아래의 유스케이스입니다. CRUD 유스케이스가 정의되어 있습니다.

CommentCrudUseCase


Comment의 CRUD가 정의된 유스케이스입니다. 댓글 생성, 수정, 삭제, 조회가 존재합니다.


2.4 Photo

Photo 도메인 패키지 아래의 유스케이스입니다. CRUD 유스케이스가 정의되어 있습니다.

PhotoCrudUseCase


Photo의 CRUD가 정의된 유스케이스입니다. Photo의 경우 이미지 파일에 대한 엔티티로 수정 시 존재하는 이미지를 삭제 후 새로 삽입하게 되어 수정에 관한 메서드는 존재하지 않습니다.

728x90