엘라의 개발 스케치 Note
[TIL] 내일배움캠프 47일차(23.06.30.) - 댓글 좋아요 기능 구현 본문
To-do
- 뉴스피드 프로젝트 회의 및 작성
- 스프링 보충 강의
- 알고리즘 공부 및 그룹스터디

TIL
- 댓글 좋아요 기능 구현하기(댓글 db를 Put 하여 좋아요 수가 1씩 늘어나는 방법으로 구현)
? 아래 방법으로 코드를 작성하니 ResponseBody에는 좋아요수가 +1이 되지만 실제 DB에서는 좋아요 수가 추가되지 않음
@Service
(생략)
// 선택한 댓글 좋아요 추가
public CommentResponseDto commentLike(Long id, User user) {
findComment(id).updateLikes(countLikes(id) + 1);
CommentResponseDto commentResponseDto = new CommentResponseDto(findComment(id));
return commentResponseDto;
}
// 선택한 댓글 좋아요수 구하기
public int countLikes(Long id) {
return findComment(id).getLikes();
}
@Entity
(생략)
public void updateLikes(int addLike) {
this.likes = addLike;
}
! try. 이것저것 시도해보니 해결(ⓐ Entity에서 updateLike 메소드를 매개변수 없이 정의하기, ⓑ JPA에 save하는 내용이 없어 저장이 안된 것으로 추정하여 save 하는 내용을 추가)
@Service
(생략)
// 선택한 댓글 좋아요 추가
public CommentResponseDto commentLike(Long id, User user) {
Comment comment = findComment(id);
comment.updateLikes();
Comment savedComment = commentRepository.save(comment);
CommentResponseDto commentResponseDto = new CommentResponseDto(savedComment);
return commentResponseDto;
@Entity
(생략)
public void updateLikes() {
this.likes++;
}
? => 해당 방법으로 구현하니 DB상에 좋아요를 누른 사람이 저장되어 있지 않다보니 좋아요 취소를 할 수 없고, 한 사용자가 무한정으로 좋아요를 누를 수 있게 됨 -> 팀원들에게 Entity를 수정 및 다른 방법으로 좋아요를 구현하는 방법 제안
Next...
- 뉴스피드 프로젝트 회의 및 작성
- 알고리즘 공부 및 그룹스터디
'내일배움캠프 > TIL' 카테고리의 다른 글
Comments