[ 작업한 내용 ]
1. book 도메인 관련하여 admin, user 분류작업
- DDD 계층 구조를 명확하게 하기 위하여 디렉토리를 전체 수정.
- book.controller.AdminBookController
- book.controller.UserBookController
- book.dto.admin.~~
- book.dto.client.~~
2. 사용자 도서 전체 목록 조회 - 페이징 기능 추가
2-1) UserBookListResDTO
- 사용자가 도서 전체 목록을 조회했을 때 응답받을 DTO를 생성
2-2) UserBookController
- GET 방식으로 page와 size를 RequestParam으로 요청.
- Page 기능을 사용하여 서비스 계층으로 page, size를 전달하여 도서 전체 목록을 Page<UserBookListResDTO> 형식으로 listBooks에 담는다.
- 클라이언트로 listBooks를 반환.
2-3) UserBookService
- controller 계층으로 전달받은 page, size로 Pageable을 사용하여 몇 페이지, 몇 개의 데이터를 가져올지 정한다. 이때 PageRequest.of() 메서드를 사용한다.
- 레포지토를 통해 몇 개의 데이터로 나누었을 때 몇 페이지의 데이터를 DB에서 조회하여 Page<Book> 타입으로 저장한다.
- 조회하여 가져온 데이터는 List<UserBookListResDTO> 타입으로 변환했다가 반환할 때에는 다시 PageImpl<>을 사용하여 Page 형태로 반환한다.
3. 관리자 도서 전체 목록 조회, 도서 검색 조회 응답 DTO 수정
- 관리자는 도서관리를 하기 때문에 도서 전체 목록과 도서 검색을 조회했을 때 응답 받을 데이터는 description을 제외한 모든 데이터를 보는 것이 좋을 거 같아서 수정.
4. 관리자 도서 상세 조회 기능 추가
4-1) 도서 상세보기 메시지 및 성공 코드 추가
- messages.properties
-BookSuccessCode
// messages.properties
success.book.detail=도서 상세보기가 완료되었습니다.
// BookSuccessCode.java
BOOK_DETAIL(HttpStatus.OK, "BOOK_212", "success.book.detail");
4-2) AdminBookController
- GET 방식으로 bookId를 PathVariable로 요청받아 데이터 처리
- 서비스 로직으로 bookId를 전달해 해당 bookId의 데이터를 찾아 responseDTO에 저장.
- 클라이언트로 bookId로 조회하여 가져온 데이터를 반환.
4-3) AdminBookService
- controller 계층으로 전달받은 bookId를 레포지토리를 통해 DB에 접근하여 해당 bookId의 데이터를 가져와 Book 객체에 담는다.
- controller 계층으로 book 데이터를 가지고 AdminBookDetailResDTO객체를 만들어 반환한다.
[ 메모 ]
- 작업은 30일에 하였으나 commit과 push를 늦게해서 31일자로 올라감.
- DDD 구조로 만들기 위해서 명확하게 알지 못하여 수정하는 작업이 많았음.
'개발 기록 > 도서관 관리 시스템' 카테고리의 다른 글
[Library Management System] 25.09.01 (34일) (0) | 2025.09.01 |
---|---|
[Library Management System] 25.08.31 (33일) (0) | 2025.08.31 |
[Library Management System] 25.08.29 (31일) (0) | 2025.08.29 |
[Library Management System] 25.08.28 (30일) (0) | 2025.08.28 |
[Library Management System] 25.08.26 (29일) (0) | 2025.08.26 |