개인 프로젝트/Toy & Side

[TOY] 설계 - Adapters (Controller 제외)

kwang2134 2024. 11. 3. 16:35
728x90
반응형
728x90

1. 클래스 설계 - adapters


adapters 패키지 내부 클래스 설계입니다. Controller를 제외한 나머지 부분에 대한 설계이며 Controller 따로 모아서 설계할 예정입니다.

2. user.adaters


user 패키지 adaters 하위 설계입니다. 기존 패키지 다이어그램에 존재하던 persistence 하위의 JpaUserRepository는 제거 되었습니다. User에 관한 DB 접근은 복잡한 쿼리 없이 스프링 데이터 Jpa를 이용한 JpaRepository로도 충분하다고 생각되었습니다. 추후 관리자 페이지나 쿼리 접근이 필요하다면 다시 생성하기 위해 persistence 패키지는 존재하는 상태입니다.

2.1 adaters.security.WebSecurityConfig

User 엔티티의 인증을 담당할 클래스입니다. Spring security를 사용하여 로그인 및 인증을 처리하는 부분입니다.

WebServiceConfig

필드로 UserService와 비밀번호 암호화를 위한 Encoder가 존재하고 각종 보안 및 인증을 위한 메서드가 존재합니다.

2.2 adaters.mapper.UserMapper

User 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.

UserMapper

3. post.adaters


post 패키지 adaters 하위 설계입니다. Post의 경우 글 제목, 글 내용, 글 작성자를 통한 게시글 검색이 존재해 복잡한 동적 쿼리를 담당하는 Repository를 따로 구성하였습니다.

3.1 adaters.persistence.PostQueryRepository

게시글 검색에 사용되는 Repository 입니다. 글 제목, 글 내용, 글 작성자의 여러 가지 조합으로 동적 쿼리를 만들어 검색하는 부분을 개별 클래스로 분리하여 생성하였습니다.

PostQueryRepository

Spring Data Jpa의 커스텀 Repository로 구현하지 않고 Jpa EntityManger를 주입 받는 Querydsl의 JPAQueryFactory를 사용하여 구현됩니다.

3.2 adaters.mapper.PostMapper

Post 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.

PostMapper

4. comment.adaters


comment 패키지 adaters 하위 설계입니다. User와 마찬가지로 Spring Data Jpa Repository로 충분하다고 생각했기에 persistence 아래 클래스는 제거 되었습니다.

4.1 adaters.mapper.CommentMapper

comment 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.

CommentMapper

5. photo.adaters


photo 패키지 adaters 하위 설계입니다. Photo 역시 persistence 하위 클래스는 제거 되었습니다.

5.1 adaters.mapper.PhotoMapper

comment 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.

PhotoMapper

728x90

'개인 프로젝트 > Toy & Side' 카테고리의 다른 글

[TOY] 설계 - 프론트 엔드 (Post)  (0) 2024.11.20
[TOY] 설계 - Adapters (Controller)  (0) 2024.11.14
[TOY] 설계 - Application  (1) 2024.10.28
[TOY] 설계 - 유스케이스  (1) 2024.10.13
[TOY] 설계 - 도메인  (1) 2024.10.09