개발 기록/도서관 관리 시스템

[Library Management System] 25.08.25 (28일)

dev.jelee 2025. 8. 25. 23:57

[ 작업한 내용 ]

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을 사용하여 관리자만 접근이 가능하도록 변경할 예정. 


오늘의 commit
api test