🚗 Backend Toy Project/스프링 부트 게시판

    [스프링부트 게시판] 30. 게시판 정렬 기능 구현

    최신순, 인기순(조회수), 추천순으로 게시판을 정렬하는 기능을 구현해보았습니다. Controller에서 파라미터로 정렬 타입을 전달받고 PageRequest.of 메서드를 사용하여 정렬 방식을 변경하는 식으로 구현하려 하였으나 해당 방법을 사용할 경우 데이터를 제대로 정렬하여 뽑아오지만 페이징이 되지 않는 오류가 발생하여 조금 다른 방법을 사용하였습니다. 📝 RecommendRepository, RecommendService 우선 추천순 정렬을 위해 Repository에 코드를 추가해주었습니다. package com.cos.blog.repository; ... public interface RecommendRepository extends JpaRepository{ ... @Modifying @Query..

    [스프링부트 게시판] 29. 추천 기능 구현

    게시글에 추천 버튼을 추가하여 다른 사람의 게시글을 추천할 수 있도록 구현하였습니다. 다만 본인이 작성한 게시글의 경우에는 추천이 불가능하며 한 명의 사용자는 하나의 게시글에 한 번의 추천만 가능하도록 하였습니다. 이후 해당 기능을 이용하여 조회수 및 추천수를 기준으로 정렬할 수 있는 기능을 추가해보고 싶었습니다. 📝 Recommend 우선 추천 엔티티를 아래와 같이 구현해주었습니다. package com.cos.blog.model; ... @Entity @Data @AllArgsConstructor @NoArgsConstructor @Builder @Table( uniqueConstraints = { @UniqueConstraint( name = "recommend_uk", columnNames = {..

    [스프링부트 게시판] 28. 게시글 검색 기능 구현

    간단하게 게시글 검색 기능을 구현해보았습니다. 사실 작성자, 제목, 내용을 선택하여 검색할 수 있도록 구현해보려고 하였으나 기존에 작성해놓은 코드를 바탕으로 수정하며 작성하다보니 구현하는게 꽤 복잡하여, 포기하고 글 제목을 기준으로만 검색할 수 있도록 구현하였습니다. 나중에 기회가 된다면 최소한 작성자를 기준으로 검색하는 기능까지는 추가해보려고 합니다. 📝 BoardRepository 우선 사용자가 작성한 키워드를 전달받아 DB에서 데이터를 뽑아올 수 있도록 아래와 같은 코드를 작성해주었습니다. package com.cos.blog.repository; ... // @Repository public interface BoardRepository extends JpaRepository{ ... Page f..

    [스프링부트 게시판] 27. 게시글 작성일 및 조회수 추가

    기존에 만들었던 게시판 구조에서 게시글 작성일과 조회수를 간단하게 추가하여 구현해보았습니다. 📝 1. 게시글 작성일 추가 작성일은 Board 엔티티에 함수를 따로 추가하여 View에서 해당 함수 호출하는 식으로 손쉽게 구현할 수 있었습니다. @CreationTimestamp private Timestamp create_date; public String getCreateDate() { return new SimpleDateFormat("yyyy.MM.dd").format(create_date); } Created: ${board.createDate} 📝 2. 조회수 추가 조회수의 경우에도 구글링을 통해 쉽게 구현할 수 있었는데 그 방법은 다음과 같습니다. 우선 Repository에 아래와 같은 함수를 생..