본문 바로가기

프로젝트 일지

#6. 싱글 프로젝트 일지 - Library 도메인

- Library 도메인 구조 -

Library 도메인은 도서관 정보를 담당하는 곳이다.
도서관은 초기 .sql 데이터로 생성할 예정이라 실질적으로 필요한 메서드는 아래 2가지 뿐이다.

 

1. Controller

A. 도서관에 등록된 전체 회원 조회 메서드
각 도서관에 등록된 전체 회원을 검색하기위함으로, libraryId를 전달받음.

- 로직 구성 -
#1.
도서관에 등록된 전체 회원 LibraryMember를 libraryId 기준으로 조회하여 Page 객체로 생성.

 

#2. 전체 조회시 정보들이 나오는 페이지 옵션인 PageInfo 객체를 생성.
#3. libraryId 기준으로 불러온 회원들을 담은 Page<LibraryMember> 객체를 List로 변환 .getContent()
#4. List 타입으로 변환한 LibraryMember 타입을 응답을 위해 Dto.Response로 변환.
#5. stream()을 사용하여 List에 포함된 각 LibraryMember 객체들에게 libraryId와 Url을 set해준다.

 

B. 도서관에 보관중인 전체 도서 조회 (오름차순 + 페이지당 10개만 보이도록 설정함)
각 도서관에 등록된
전체 도서를 검색하기 위함으로, libraryId를 전달받음.

- 로직 구성 -
#1.
도서관에 등록된 전체 도서 LibraryBook을 library 기준으로 조회하여 Page 객체로 생성.
#2. 전체 조회시 정보들이 나오는 페이지 옵션 담당 PageInfo 객체 생성.
#3. Page 타입으로 생성된 도서관의 전체 도서들을 List 타입으로 변환.
#4. List로 변환된 LibraryBook을 Dto를 사용하여 Reponse 타입으로 변경.
#5. stream()을 사용해 Dto.Response 객체에 libraryId와 Url을 Set 해줌.

 

2. Entity

DB에 생성될 도서관 테이블을 나타내는 곳으로
LibraryId, LibraryName 외에는 연관관계에 있는 객체들을 필드로 선언하는 해둠.

 

3. Repository

DB에 저장된 도서관과 관련된 Data를 다루기 위한 곳으로 Spring Data JPA를 상속하고 있다.

 

4. Service

Controller 계층에 있는 메서드들을 처리하기 위한 실질적인 로직을 가지고 있는 곳.
Repository를 활용한 도서관 검색의 메서드를 가지고 있다.