검색 기능이 있으면 좋을 것 같다는 피드백을 반영해, 구현해보기로 했다.
| PostController.java
...
// 게시글 검색
@GetMapping("/post/search")
public ResponseEntity<List<PostReadResponseDto>> searchPost(@RequestParam String query) {
return postService.searchPost(query);
}
| PostService.java
// 게시글 검색
public ResponseEntity<List<PostReadResponseDto>> searchPost(String query) {
// 검색값이 포함되어 있는 게시글을 가져옮
List<Post> searchPosts = postRepository.findAllByTitleContainingOrderByCreateDateDesc(query);
List<PostReadResponseDto> searchList = new ArrayList<>();
for (Post post : searchPosts) {
searchList.add(PostReadResponseDto.builder()
.status(StatusMessage.SUCCESS)
.id(post.getId())
.title(post.getTitle())
.content(post.getContent())
.meetingType(post.getMeetingType())
.contact(post.getContact())
.period(post.getPeriod())
.recruitmentState(post.isRecruitmentState())
.hits(post.getHits())
.postDate(post.getLastModifiedDate())
.writer(post.getMember().getNickname())
.build()
);
}
return new ResponseEntity<>(searchList, HttpStatus.valueOf(StatusCode.SUCCESS));
}
| PostRepository.java
public interface PostRepository extends JpaRepository<Post, Long> {
List<Post> findAllByTitleContainingOrderByCreateDateDesc(String query);
...
서버에서 검색기능을 구현하는 것은 어렵지 않았다.
다만, 프론트에서 검색창의 위치와, 엔터치면 검색하도록 하고, 등등 프론트적인 부분에 시간을 더 쏟았댜