전체 글 211

[Library Management System] 25.09.03 (36일) | (구현) 관리자 공지사항 전체 목록 조회, 공지사항 검색 목록 조회

[ 작업한 내용 ]1. 관리자-공지사항 전체 목록 조회 기능 추가1-1) AdminNoticeListResDTO- 전체 목록 응답 DTO- id, title, createdDate, updatedDate, writer 필드- Notice를 파라미터로 받는 생성자 함수.1-2) messages.properties- success.notice.list_fetched=공지사항 목록 조회가 완료되었습니다.1-3) NoticeSuccessCode- NOTICE_LIST_FETCHED(HttpStatus.OK, "NOTICE_204", "success.notice.list_fetched");1-4) AdminNoticeController- GET방식을 사용하여 @RequestParam() int page, int ..

[Library Management System] 25.09.02 (35일) | (구현) 관리자 공지사항 수정, 공지사항 삭제

[ 작업한 내용 ]1. 공지 수정1-1) 요청, 응답 DTO 생성- AdminNoticeUpdateReqDTO.java- AdminNoticeUpdateResDTO.java1-2) messages.properties- success.notice.updated=공지사항 수정이 완료되었습니다.- error.notice.update_failed=공지 수정 중 오류가 발생했습니다.- error.notice.not_found=해당 공지사항을 찾을 수 없습니다.1-3) NoticeSuccessCode- NOTICE_UPDATED(HttpStatus.OK, "NOTICE_202", "success.notice.updated");1-4) NoticeErrorCode- NOTICE_UPDATE_FAILED(HttpSta..

[Library Management System] 25.09.01 (34일) | (구현) 관리자 공지사항 등록

[ 작업한 내용 ]1. 공지사항 등록1-1) 공지사항 엔티티- id, title, content, createdDate, updatedDate, wirter 필드를 가짐.- writer는 User의 id와 join.- @PrePersist를 사용하여 공지사항 작성시 createdDate 자동으로 시간 저장.1-2) AdminNoticeController- POST 방식으로 @RequestBody로 AdminNoticeCreateDTO와 로그인한 사용자의 인증객체를 요청받기.- 요청받은 데이터를 서비스로직으로 전달.- 서비스로직으로부터 반환 받은 데이터를 클라이언트에게 반환.1-3) AdminNoticeService- controller 계층에서 전달받은 인증객체의 id를 기반으로 repository.fi..

[Library Management System] 25.08.31 (33일) | (구현) 사용자 도서 상세 조회, 타입별 키워드 검색

[ 작업한 내용 ]1. 사용자 도서 상세 조회1-1) UserBookDetailResDTO- 사용자가 도서 상세보기를 요청했을 때 응답받을 데이터.- id, title, isbn, author, publisher, publishedDate, status, location, description 필드를 가짐.1-2) UserBookController- GET 방식으로 {bookId}를 @PathVariable로 도서의 상세 데이터를 요청한다.- 서비스로직으로 bookId를 전달하여 도서 상세 데이터를 UserBookDetailResDTO 타입의 responseDTO에 저장.- 클라이언트에게 bookId로 DB에서 조회하여 가져온 데이터를 반환해준다.1-3) UserBookService- 레포지터에 .fin..

[Library Management System] 25.08.30 (32일) | (구현) 사용자 도서 전체 목록 조회, 관리자 도서 전체 목록 조회, 관리자 도서 상세 조회

[ 작업한 내용 ]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를 전달하여 도서 전체 목록을 P..

[Library Management System] 25.08.29 (31일) | (구현) 로그인 상태 별 예외처리, 사용자가 email/password 업데이트시 요청/응답 변경, 관리자 사용자 계정 삭제, (리팩토링) 사용자 탈퇴 요청

[ 작업한 내용 ]1. 로그인 상태 별 예외처리1-1) messages.properties- 로그인 시 사용자 상태에 따른 예외처리 메시지.error.user.status_inactive=탈퇴된 계정입니다. 재가입해 주세요.error.user.status_suspended=정지된 계정입니다. 고객센터에 문의해 주세요.error.user.status_deleted=삭제된 계정입니다.1-2) UserErrorCode- 에러 코드 정의USER_STATUS_INACTIVE(HttpStatus.BAD_REQUEST, "USER_007", "error.user.status_inactive"),USER_STATUS_SUSPENDED(HttpStatus.BAD_REQUEST, "USER_008", "error.user..

[Library Management System] 25.08.28 (30일) | (구현) 관리자 권한 수정, 사용자 상태 변경

[ 작업한 내용 ]1. 관리자 권한 수정 기능 추가1-1) user 테이블과 User 엔티티- 수정날짜 컬럼과 필드가 없어서 DB와 엔티티에 각각 updatedAt추가.- DB에는 updated_at 컬럼 추가.- User 엔티티에는 updatedAt 필드 추가.1-2) messages.properties- 메시지 추가.success.user.role_update=권한이 성공적으로 변경되었습니다.1-3) UserSuccessCode- 성공 코드 추가.USER_ROLE_UPDATE(HttpStatus.OK, "USER_205", "success.user.role_update");1-4) BaseException- 사용자 권한 수정시 성공 응답으로 사용자의 ID도 응답해주기 위해 메시지와 userId를 파라..

[Library Management System] 25.08.26 (29일) | (구현) 타입별 회원 검색

[ 작업한 내용 ]1. domain/user/enums 생성- UserSearchType.java (USERNAME, EMAIL).- 타입관리를 용이하게 하기 위해 타입인 USERNAME, EMAIL을 enum으로 관리.2. message.properties 메시지 추가- 관리자 요구사항 중 사용자 타입별 검색 조회시 발생하는 성공, 실패 메시지 관리.success.user.search=사용자 조회가 완료되었습니다.error.user.search.type=유효하지 않은 검색 타입입니다.3. UserSuccessCode 상태코드 추가- 사용자 타입별 검색 조회에 성공했을 때 처리할 상태코드 작성.USER_SEARCH(HttpStatus.OK, "USER_204", "success.user.search");..

[Library Management System] 25.08.25 (28일) | (구현) 관리자 회원 전체 조회

[ 작업한 내용 ]1. build.gradle 파일에서 Spring Boot 버전 수정- Plugins에 노란 밑줄이 생기기랠 확인해보니 SNAPSHOT 기본이 버전 업데이트가 되어서 그런지 3.5.5로 변경하라는 안내가 떴다. 그래서 3.5.4에서 3.5.5로 수정했다.2. BookRepository에서 Page findAll 메서드에 @NonNull 어노테이션 추가- 노란 밑줄이 떠서 확인해보니 @NonNull 어노테이션이 필요하다는 내용이었다.- import는 org.springframework.lang.NotNull 로 어노테이션 추가.3. 관리자 - 회원 전체 조회 (+페이징) 기능 추가3-1) UserListResDTO- id, username, email, role, joinDate, las..

[Library Management System] 25.08.24 (27일) | (구현) 관리자 도서 전체 목록 조회

[ 작업한 내용 ]1. DDD 구조 변경을 위해 Book 관련 파일 이동 (Domain-Driven Design)- DDD 구조의 기본 원칙을 따지기 위해 Book 관련 파일을 book 도메인 하위로 이동시키기로 결정.- 요구사항에서 관리자, 사용자 둘다 Book 관련 기능 로직이 있다.- 현재 관리자 요구사항에서 도서 검색/수정/전체 조회/삭제 기능이 있는데 관리자 페이지에서 이루어지는 기능이라서 admin 도메인 하위에서 비즈니스로직을 구현하였는데, Book 관련된 기능인데 이게 맞는지 의문이 들었음.- 결론은 Book관련 비즈니스 로직은 book 도메인 하위에서 하는게 맞다라는 결론을 내렸다. controller만 admin 도메인 하위에서 관리하는 것으로 정하였다.1-1) Book.java (en..