[ 작업한 내용 ]
1. build.gradle 파일에서 Spring Boot 버전 수정
- Plugins에 노란 밑줄이 생기기랠 확인해보니 SNAPSHOT 기본이 버전 업데이트가 되어서 그런지 3.5.5로 변경하라는 안내가 떴다. 그래서 3.5.4에서 3.5.5로 수정했다.
2. BookRepository에서 Page<Book> findAll 메서드에 @NonNull 어노테이션 추가
- 노란 밑줄이 떠서 확인해보니 @NonNull 어노테이션이 필요하다는 내용이었다.
- import는 org.springframework.lang.NotNull 로 어노테이션 추가.
3. 관리자 - 회원 전체 조회 (+페이징) 기능 추가
3-1) UserListResDTO
- id, username, email, role, joinDate, lastLoginDate, status 필드 생성
- 보안상 password 필드는 제외
3-2) UserSuccessCode
- 사용자 전체 목록 조회 성공 코드 추가
- USER_LIST_FETCHED(HttpStatus.OK, "User_200", "success.user.list_fetched");
3-3) messages.properties
- 사용자 전체 목록 조회 성공 메시지 추가
- success.user.list_fetched=사용자 목록 조회가 완료되었습니다.
3-4) AdminUserController 생성
- domain/admin/controller 하위에 AdminUserController.java 생성.
- 회원 전체 조회 (+페이징) 기능을 위해 생성.
- int page, int size를 각 @RequestParam형태로 기본값은 0, 10으로 파라미터로 받는다.
- Page 기능을 사용하여 UserService를 통해 회원 전체 목록을 가져와 ListUsers에 담아서 return한다.
3-5) UserService에 회원 전체 조회 (+페이징) 기능을 담당하는 비즈니스 로직을 추가
- Pageable을 사용하여 page, size 처리를한다. 한 페이지에 몇 개의 데이터를 보이게 할지.
- Page 형태로 회원 전체 목록 결과를 가져와 담고 다시 List 형태로 저장하기 위해서 .stream().map()을 사용.
- return으로 Page 정보를 그대로 유지하여 반환하기 위해 new PageImpl<>() 사용.
4. /api/v1/admin/users/** endpoint 추가
- postman으로 api 테스트를 하는데 권한 문제 발생.
- SecurityConfig 파일에서 /api/v1/admin/users 로 시작하는 api 모두 수락. .permaitAll()
- 추후에 전체 개발을 한 뒤 hasRole을 사용하여 관리자만 접근이 가능하도록 변경할 예정.
'개발 기록 > 도서관 관리 시스템' 카테고리의 다른 글
[Library Management System] 25.08.28 (30일) (0) | 2025.08.28 |
---|---|
[Library Management System] 25.08.26 (29일) (0) | 2025.08.26 |
[Library Management System] 25.08.24 (27일) (0) | 2025.08.24 |
[Library Management System] 25.08.20 (26일) (0) | 2025.08.20 |
[Library Management System] 25.08.18 (25일) (0) | 2025.08.18 |