11.6. 책 목록 뷰 추가하기
책 목록 뷰를 추가합니다.src/main/resources > templates.book > list.htmlCopy 책 목록 책 번호 책 제목
- 스프링 부트 하루만에 배우기
- · 2024. 8. 7.
책 기록 데이터를 저장하기 위한 DTO를 작성하겠습니다.src/main/java > com.yse.dev.book.dto 패키지 아래에 책 기록용 클래스 BookLogCreateDTO 클래스를 만듭니다.src/main/java > com.yse.dev.book.dto > BookLogCreateDTO.javapackage com.yse.dev.book.dto; import javax.validation.constraints.Positive; import lombok.Getter; import lombok.NonNull; import lombok.Setter; @Getter @Setter public class BookLogCreateDTO { @NonNull @Positiv..
src/main/java > com.yse.dev.book.entity 패키지 아래에 책 기록용 리포지터리 BookLogRepository 인터페이스를 만듭니다.src/main/java > com.yse.dev.book.entity > BookLogRepository.javapublic interface BookLogRepository extends JpaRepository { } 당장 필요한 리포지터리 기능은 상속한 CRUDRepository에 구현되어 있으므로 JPARepository 만 상속합니다.
웹 개발에 경험이 있으신 분들이라면 관계형 데이터베이스의 1:N 이라는 단어에 익숙하실 겁니다. 흔히들 One To Many라고 부르는 관계(relation) 는 두개의 데이터베이스 테이블 데이터가 연결되는 방식을 말하는데요. A 테이블의 데이터 행(row) 하나에 B테이블의 데이터 행이 여러 개 존재할 수 있는 경우 One To Many(일대다) 관계 라고 부릅니다.책 정보와 책 기록은 One to Many 관계를 가집니다. 책 한 권에 여러개의 책 기록이 있을 수 있죠. 게시판을 상상해보면 쉬운데, 원글 하나에 댓글이 여러개 달리는 것과 동일합니다.src/main/java > com.yse.dev.book > entity 패키지 아래에 BookLog.java 클래스 파일을 생성합니다.src/main/..
이번 챕터에서는 책 기록을 남길 수 있게 기능을 확장해 보겠습니다.일반적인 게시판에서 "댓글"이라고 부르는 형태의 기능입니다. 책을 읽는 중 어디까지 읽었는지 표시하거나, 간단한 기록을 위해 댓글을 구현하겠습니다.또한 책 기록 화면 및 기능에서는 책 입력 상세 수정 삭제처럼 html을 바로 서버에서 출력하는 것이 아니라, JSON 객체를 입력받아서 JSON 객체를 응답하는 REST 스타일로 구현합니다. 클라이언트(웹브라우저)는 이 응답을 받아서 html로 렌더링하는 역할을 하게 되죠.쉽게 말하면 Ajax를 이용해서 화면을 깜박이지 않고 글 데이터를 저장하고 보여주게 됩니다.
책 목록 기능을 확인해 봅시다.먼저 전체 리스트의 모습입니다. 페이지 매개변수가 없을 경우 1페이지라고 가정합니다.http://localhost:8080/book/list페이지 매개변수가 있다면 페이지 매개변수에 따라 결과가 나옵니다.http://localhost:8080/book/list?page=1page=1 매개변수가 기본값이 됩니다.2번째 페이지를 확인해 봅시다. page=2 매개변수를 스프링 부트에 전달해 봅니다.http://localhost:8080/book/list?page=2검색도 해 볼께요. title 매개변수를 url에 전달합니다.http://localhost:8080/book/list?title=스프링검색과 페이징이 동시에 가능한지도 확인해 봐야죠. title=스프링, page=2입니..
책 목록 뷰를 추가합니다.src/main/resources > templates.book > list.htmlCopy 책 목록 책 번호 책 제목