🚩 ! 요구사항 확인: 필수 구현 기능
- 도서 등록 기능
제목,저자,언어,출판사,등록일을 저장할 수 있습니다.- 저장된 도서의 정보를 반환 받아 확인할 수 있습니다.
- 선택한 도서 정보 조회 기능
- 선택한 도서의 정보를 조회할 수 있습니다.
- 도서 목록 조회 기능
- 등록된 도서 전체를 조회할 수 있습니다.
- 조회된 도서 목록은
등록일기준 오름차순으로 정렬 되어있습니다.
- 도서관 회원 등록 기능
이름,성별,주민번호,전화번호,주소를 저장할 수 있습니다.
주민번호와전화번호는 중복될 수 없습니다.- 저장된 회원의 정보를 반환 받아 확인할 수 있습니다.
- 반환 받은 회원의 정보에
주민번호는 제외 되어있습니다.
- 선택한 도서 대출 기능
- 회원은 선택한 도서를 대출받을 수 있습니다.
도서의 식별값과회원의 식별값이 함께 요청됩니다.- 반납하지 않은 책이 있다면 대출이 불가능합니다.
- 선택한 도서가 현재 대출 상태라면 대출이 불가능합니다.
- 회원의 대출 내역을 기록할 수 있습니다.
- 대출 내역 기록에는
도서의 식별값,회원의 식별값,반납상태,대출일,반납일을 저장할 수 있습니다.- JPA의 연관관계 매핑 애너테이션을 사용하지 않고 구현합니다.
- 대출 성공을 확인할 수 있는 값을 반환합니다.
- ex) HTTP Status Code, Error Message …
- 선택한 도서 반납 기능
- 선택한 도서를 반납할 수 있습니다.
- 대출 내역 기록의
반납상태와반납일이 변경됩니다.
- 대출 내역 조회 기능
- 회원의 대출 내역 기록을 조회할 수 있습니다.
- 대출 내역 기록에는 회원의
이름과전화번호, 도서의제목과저자가 포함 되어있어야 합니다.- 조회된 대출 내역 기록은
대출일기준 오름차순으로 정렬 되어있습니다.

.
< API 명세서 >

< ERD >

-> 마지막 단계에서 도서 반납 후 다시 대출을 하려할때 오류가 발생했다.
ex)
회원 ID: 1번이 1번 도서를 대출하고 반납을 한 후 다른 도서를 빌리려할때
오류가 났다.
오류난 부분을 보니 도서의 상태가 false(대출중)에서 true(대출가능)으로는 바뀌었지만 회원의 정보가 아직 대출 목록에 남아있어서 오류가 난것으로 보였다. 그래서 기존에 있던 코드들 중 isReturned 를 삭제하고 코드를 수정해 도서 반납 후에는 대출기록에서 삭제되게 바꾸어 해결하였다.
-> 삭제 후 추가, 수정한 부분
RentalRepository 클래스에
// 회원과 연관된 모든 대출 내역 찾기
List<Rental> findByMember(Member member);
// 특정 회원과 특정 책에 대한 대출 내역 찾기
List<Rental> findByMemberAndReturnedDateIsNull(Member member);
RentalService 클래스에
// 변경된 대출 기록을 반환하기 전에 Rental 인스턴스를 삭제하려고 추가해본 코드임
RentalResponseDto responseDto = new RentalResponseDto(rental);
rentalRepository.delete(rental);
return responseDto;