책 기록을 위한 서비스 클래스를 생성합니다.src/main/java > com.yse.dev.book.service > BookLogService.javapackage com.yse.dev.book.service; import org.springframework.stereotype.Service; import com.yse.dev.book.dto.BookLogCreateDTO; import com.yse.dev.book.dto.BookLogCreateResponseDTO; import com.yse.dev.book.entity.Book; import com.yse.dev.book.entity.BookLog; import com.yse.dev.book.entity.BookLogRepository..
책 기록 데이터를 저장하고 나서 클라이언트에 응답하기 위한 DTO를 작성하겠습니다. src/main/java > com.yse.dev.book.dto 패키지 아래에 BookLogCreateResponseDTO를 만듭니다.src/main/java > com.yse.dev.book.dto > BookLogCreateResponseDTO.java@NoArgsConstructor @Getter public class BookLogCreateResponseDTO { private Integer bookLogId; private Integer bookId; private String comment; private Integer page; public BookLogCr..
책 기록 데이터를 저장하기 위한 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를 이용해서 화면을 깜박이지 않고 글 데이터를 저장하고 보여주게 됩니다.