Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KKUMI-118 좋아요 기능 #73

Open
4 tasks
eekrwl opened this issue Oct 3, 2024 · 0 comments
Open
4 tasks

KKUMI-118 좋아요 기능 #73

eekrwl opened this issue Oct 3, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@eekrwl
Copy link
Member

eekrwl commented Oct 3, 2024

  • 좋아요 누르기
  • 좋아요 취소하기
  • 포스트 조회에 좋아요 개수 추가
  • 포스트 조회에 내가 좋아요 누른 게시글인지 여부 추가
@eekrwl eekrwl added the enhancement New feature or request label Oct 3, 2024
@eekrwl eekrwl self-assigned this Oct 3, 2024
eekrwl added a commit that referenced this issue Oct 3, 2024
좋아요 누르는 기능만 추가
eekrwl added a commit that referenced this issue Oct 7, 2024
post_id, user_id로 unique 제약조건을 추가했습니다.
유저가 게시글에 좋아요를 처음누른다면 생성되고, 취소한다면 isDeleted가 true로 변하고, 다시 좋아요를 누르면 isDeleted가 false로 변하도록 했습니다.
눌렀다가 취소했다가를 빠르게 반복할 수 있기에 매번 생성되고 삭제되지 않도록 만들었습니다.
eekrwl added a commit that referenced this issue Nov 8, 2024
좋아요 누르거나 취소시 낙관적락으로 동시성 처리
맨처음 특정 유저가 특정 포스트에 여러기기로 좋아요 누르는 경우는 unique 제약조건으로 처리
eekrwl added a commit that referenced this issue Nov 8, 2024
기존: 500 서버 에러로 내려감
변경후: postId가 null이면 안된다는 메시지 내려감
eekrwl added a commit that referenced this issue Nov 9, 2024
무한 스크롤 중, 현재 유저가 좋아요 누른 상태인지 확인하여 내려주는 코드 추가
likedByCurrentUser에 true, false로 제공함
eekrwl added a commit that referenced this issue Nov 11, 2024
포스트 좋아요 개수 캐싱을 위한 Redis 설정 추가
eekrwl added a commit that referenced this issue Nov 11, 2024
포스트에 좋아요 개수를 조회하는 부분 구현, 한번 조회됐던 좋아요개수는 30초간 캐싱되도록 함
흐름은 아래와 같습니다.
1. Redis에서 post의 좋아요 개수 조회
2-1. Redis에 존재하면 바로 리턴
2-2. Redis에 존재하지 않으면 DB에서 조회 후 PostLikeCountCacheMissEvent 발생시켜 Redis에 캐싱되도록 함
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant