[사이드 프로젝트]나만의 도서 관리 서비스4

zwon·2023년 8월 28일
0

개발일지

목록 보기
6/23
post-thumbnail

독서록 CRUD 기능을 만들었다.
독서록 기능을 만들면서 <button>태그의 type 속성을 submit으로 하지않고 button타입으로 해서 폼 데이터가 서버로 넘어가지않아 삽질을 진짜 많이 했다....^^
정신차리고 해야겠다..

암튼 독서록 기능까지 추가했다.
도서 추가는 이전 포스팅에서 볼 수 있으니 패스하고 다음과 같이 Home화면이 있고 독서록이라는 테이블 항목이 추가되었다. 독서록이 없을 경우와 없는 경우를 생각해서 타임리프의 th:if태그를 사용해서 태그 생성을 하도록했다.

도서 상세 화면에 다음과같이 독서록 작성 버튼을 만들었고

독서록 작성 버튼을 클릭하면 독서록 작성 폼으로 간다.

독서록 생성

독서록을 작성하고 등록버튼을 클릭하면, 홈화면으로 돌아가면서 다음과같이 독서록칸에 등록됨.

독서록 조회

독서록 링크를 누르면 다음과 같이 독서록을 확인할 수 있다.

목록버튼을 누르면 다시 홈화면으로 돌아가고 수정버튼을 누르면 수정폼이 나온다.
수정폼은 독서록 작성폼과 동일하지만 제목과 내용만 수정이 가능하다.

독서록 수정



우선 도서와 리포트는 일대일 관계로 정하고 개발을 시작했다.
그래서 도서의 타이틀을 가지고 리포트를 식별할까 아니면 도서의 id를 가지고 리포트를 식별할까 고민했는데 문자열과 숫자타입중 숫자타입이 저장공간을 덜 사용할 것이고 도서 타이틀을 가지고 하면 타이틀 중복 문제 등이 발생할 것으로 생각해서 id로 리포트를 식별하고자했다.

다음와 같이 reportId=book.id로 두었다.
[Home 템플릿 코드 일부]

[도서 상세화면 템플릿 코드 일부]

Controller코드에서도 이렇게 id를 타고타고받아 @Pathvariable을 사용해서 reportId로 사용할 수 있게 하였다.

그리고 Book에 Report를 저장하고 홈화면에서 book과 report를 다 불러와야하니 BookController에서 다음과 같이 forEach문을 사용해서 reportService에서 book.id를 가지고 Report를 가져와서 book의 report에 필드에 할당을 해주었다.


아직 중복되는 부분도 좀 있고 수정이 필요한 부분이 많아보이지만 점차 개발을 진행하면서 보완 할 것이다.
아직은 CRUD 구현만 있어서 딱히 소스코드 설명은 안하고 넘어갔다.
reportId를 bookId를 가져오는거나 약간은 정리가 필요해보이는 코드들은 정리했다.
이젠 점점 어려운 기능들을 추가할 생각인데 어려운 기능들은 소스코드와 함께 정리할 생각이다.

profile
Backend 관련 지식을 정리하는 Back과사전

0개의 댓글