[과제] 도서관 서버 만들기

느려도 꾸준히·2023년 11월 2일

과제

목록 보기
2/3

Spring Lv.2

"스파르타 도서관 서버 만들기"

🚩 ! 요구사항 확인: 필수 구현 기능

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

.

  • < 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;    
    

0개의 댓글