20240125 (목) BackOffice 프로젝트 LikeCount 구현해보기

2024. 1. 25. 21:26TIL

우리는 포스트에 있는 좋아요 수를 담고있는 테이블을 하나 따로 만들기로 했다.

내생각엔 포스트 생성시 LikeCount 테이블에 컬럼이 같이 생성되어야 할것 같았다.

따라서 포스트 생성시에 코드를 몇줄 추가해주었다.

 

라이크 카운트 컬럼 진행 단계

포스트 생성시 라이크카운트 컬럼 자동 생성 > 라이크 추가시 해당 포스트Id로 라이크카운트 컬럼을 찾아 숫자가 1씩 증가

> 반대의 경우엔 라이크카운트 1씩 감소

이외엔 포스트 삭제시 해당 컬럼도 같이 삭제되는식으로 진행할 예정

override fun createPost(
    boardId: Int,
    userId: Int,
    request: PostCreateRequest
): PostResponse {
    val board = boardRepository.findByIdOrNull(boardId)
        ?: throw ModelNotFoundException("board", boardId)
    val user = userRepository.findByIdOrNull(userId)
        ?: throw ModelNotFoundException("user", userId)
    val post = PostEntity(
            title = request.title,
            contents = request.contents,
            user = user,
            board = board,
            nickname = user.nickName,
            likes = 0,
        )

    val likeCount = LikeCountEntity(
        post = post,
        likeCount = likeRepository.findByPostId(post.id!!).size //이부분에서 생성을 해준다.
    )
    post.likes = likeCount.likeCount
    postRepository.save(post)
    return post.toResponse()
}

 

오늘의 한마디 : 원래는 좀더 길게 적을 예정이였지만 8시 회의가 너무 길어지고 힘들어져서 오늘은 이만 적고 쉬러갈려고 한다...