분류 전체보기 170

[Library Management System] 25.08.18 (25일)

[ 작업한 내용 ]1. 도서 검색 기능 추가1-1) BookSearchReqDTO, BookSearchResDTO 각각 생성- Request용은 keyword 필드만 있다.- Response용은 id, title, author, publisher, publishedDate, location 필드를 가지고 있다.1-2) AdminBookController- searchBook 메서드를 생성하고 @RequestBody로 BookSearchReqDTO request를 받는다.- BookSearchReqDTO에는 keyword 필드만 있다.- 블럭에 String keyword 변수를 생성하고 request.getKeyword() 로 초기화한다.- adminBookService로 keyword를 보내어 데이터를 ..

[Library Management System] 25.08.09 (24일)

[ 작업한 내용 ]1. 도서 삭제 기능 추가- DELETE 메소드를 사용하여 /api/v1/admin/books/{bookId} URI로 설계.- controller 계층에서 deleteBook메서드를 호출해 보낸다. service 계층에서 삭제가 성공적으로 이루어지면 return 값으로 도서가 성공적으로 삭제되었다는 메시지를 보낸다.- service 계층에 deleteBook 메소드를 생성하고 bookId를 인자로 받는다. 블럭에는 repository에서 findById() 메서드를 호출해 bookId 값을 보낸다음 해당 bookId의 데이터를 가져와 Optional optionalBook에 담는다. 여기서 Optional을 사용한 이유는 null 예외상황에 대처하기 위함이다. 그 다음 if문을 사용..

[Library Management System] 25.08.08 (23일)

[ 작업한 내용 ]1. 도서 등록 - ISBN 추가- book 테이블에 ISBN 컬럼 추가.2. 도서 등록 - 유효성/예외 처리- 백엔드에서 도서 등록 시 제목, ISBN, 저자, 출판사, 발행일, 위치, 설명 필드에 null 체크하여 예외 던지기.- 위치(도서가 있는 위치) 중복 체크 기능 추가. => 도서 등록 시 ISBN을 유니크 처리 하려다가 말았다.=> 같은 책을 2권 이상 등록할 수 있기 때문에.3. 도서 등록 - Data만 따로 다루는 BaseException 추가- BaseException에는 Data를 따로 다루지 않아서 BaseException(커스텀한 예외)를 상속받는 DataBaseException을 생성하여, 도서 등록 시 도서 위치 중복 체크에서 해당 위치에 도서가 있는 경우 ..

[Library Management System] 25.08.07 (22일)

[ 작업한 내용 ]1.도서 수정 기능 추가- 등록된 도서의 속성을 수정하여 다시 DB에 저장하는 작업을 했다.- 저장만 하는 것이기 때문에 수정해야할 부분이 있다. (유효성 검사, 예외처리 등 아직 적용 안 함)2. 에러/성공 메시지 리팩토링- ErrorCode, SuccessCode를 interface로 만들고, 각 도메인별로 ErrorCode와 SuccessCode를 만들어 분류하고자 리팩토링했다.- 예를들어 UserErrorCode를 enum으로 생성하고 ErrorCode 인터페이스의 구현체로 만들어서 사용.- 그리고 리팩토링하면서 message.properties도 각 분류하고 응답 메시지에 대하여 명세서(?)를 엑셀로 정리하기 시작했다.[ 메모 ]1. 오늘은 도서 수정 기능을 작업하면서 응답 관..

[Library Management System] 25.08.06 (21일)

[ 작업한 내용 ]1. 회원탈퇴 기능 추가- 회원탈퇴는 사용자한테 현재 사용중인 비밀번호를 입력받는다. 이유는 바로 회원탈퇴를 하는 것이 아니라 본인 계정이 맞는지 여부도 확인받기 위해서이다.- controller 계층에서 사용자한테 입력받은 password와 @AuthenticationPrincipal 어노테이션을 사용해 User 객체를 생성한다.- service 계층으로 입력받은 비밀번호와 User.getUsername()을 전달한다.- service 계층에서는 User.getUsername()을 가지고 repository 계층을 통해 db에 있는 username의 password와 사용자가 입력한 password가 동일한지 확인을 한다. 동일하지 않으면 예외를 발생시킨다.- 사용자가 입력한 pass..

카테고리 없음 2025.08.07

[Library Management System] 25.08.05 (20일)

[ 작업한 내용 ]1. 비밀번호 수정 기능 추가1) UpdatePasswordDTO 생성- password, repassword 필드 작성.- password: 새로운 비밀번호.- repassword: 새로운 비밀번호 다시 입력.2) UserController- /password api 설계.- 파라미터에는 사용자로부터 입력받는 값은 password와 repassword이며, 이 데이터는 UpdatePasswordDTO로 묶은다. 그리고 @AuthenticationPrincipal 어노테이션 사용하여 인증 객체 가져오되 폼은 User를 사용하여 user에 담는다..- UserService계층에 updatePassword 메서드로 user.getUsername(), updatePassword.getPass..

[Library Management System] 25.08.04 (17~19일)

[ 작업한 내용 ]1. UserController에서 @RequestMapping 수정- /api/v1/user 에서 /api/v1/user/me 로 수정.- 이메일 수정, 비밀번호 수정 api를 설계할 때 공통으로 /api/v1/user/me로 시작하기 위해서.2. 이메일 수정 기능 추가- UserController에서 /email api 설계.- UpdateEmailDTO를 생성하여 email만 단독으로 수정할 수 있도록 함.- UserController에서 UpdateEmailDTO와 @AuthenticationPrincipal 어노테이션을 통해 사용자 정보를 받아 username과 updateEmail을 UserSerivce로 전달.- UserService에서 파라미터로 받은 username와 u..

[Library Management System] 25.08.01 (16일)

[ 작업한 내용 ]1. auth, user 디렉토리 분류 및 구분- 로그인, 로그아웃, 회원가입을 auth에서 관리하고 user에서는 사용자 정보를 불러오도록 디렉토리 분류함.2. AuthController 클래스에서 /me api 제거- UserController에서 관리하기 위해서. 3. 사용자 정보 가져오는 기능 추가- UserController 기본 api uri 시작은 /api/v1/user로 지정.- UserController에 사용자 인증 정보를 가져오는 api 기능 추가.- 정보를 가져오는 것은 Authentication.getPrincipal()을 사용.- UserInfoResponseDTO를 생성하여 username, email, joindate, lastlogindate를 가짐.- U..