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를 사용하여 로그인 및 인증을 처리하는 부분입니다.
필드로 UserService와 비밀번호 암호화를 위한 Encoder가 존재하고 각종 보안 및 인증을 위한 메서드가 존재합니다.
2.2 adaters.mapper.UserMapper
User 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.
3. post.adaters
post 패키지 adaters 하위 설계입니다. Post의 경우 글 제목, 글 내용, 글 작성자를 통한 게시글 검색이 존재해 복잡한 동적 쿼리를 담당하는 Repository를 따로 구성하였습니다.
3.1 adaters.persistence.PostQueryRepository
게시글 검색에 사용되는 Repository 입니다. 글 제목, 글 내용, 글 작성자의 여러 가지 조합으로 동적 쿼리를 만들어 검색하는 부분을 개별 클래스로 분리하여 생성하였습니다.
Spring Data Jpa의 커스텀 Repository로 구현하지 않고 Jpa EntityManger를 주입 받는 Querydsl의 JPAQueryFactory를 사용하여 구현됩니다.
3.2 adaters.mapper.PostMapper
Post 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.
4. comment.adaters
comment 패키지 adaters 하위 설계입니다. User와 마찬가지로 Spring Data Jpa Repository로 충분하다고 생각했기에 persistence 아래 클래스는 제거 되었습니다.
4.1 adaters.mapper.CommentMapper
comment 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.
5. photo.adaters
photo 패키지 adaters 하위 설계입니다. Photo 역시 persistence 하위 클래스는 제거 되었습니다.
5.1 adaters.mapper.PhotoMapper
comment 엔티티와 DTO 간 변환을 담당할 클래스입니다. 엔티티를 DTO로 DTO를 엔티티로 변화하는 메서드가 존재합니다.
'개인 프로젝트 > 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 |