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

Fix/#547 킬링파트 여러 사용자 동시 좋아요 누를 때 동시성 이슈 해결 #548

Merged
merged 4 commits into from
Oct 29, 2023

Conversation

somsom13
Copy link
Collaborator

@somsom13 somsom13 commented Oct 27, 2023

📝작업 내용

킬링파트 여러 사용자 동시 좋아요 누를 때 동시성 이슈 해결

  • UPDATE + 1 쿼리를 사용하여 여러 사용자가 동시에 좋아요를 누르는 상황의 동시성 이슈를 해결했습니다.
    image
    image

💬리뷰 참고사항

한 사용자가 여러 번 좋아요를 눌러서 좋아요가 동시에 도착하는 경우에 대해서는 처리가 되지 않습니다.
이미 프론트엔드 측에서 좋아요 버튼이 연속해서 눌리는 부분에 대해 처리가 되어있는 것으로 알고 있어서, 처리하지 않아도 무방할 것이라 생각했습니다. 이 부분에 대한 내용은 아래 링크를 참고해주세용!

https://somsom13.notion.site/36cd63ee0c5142e3be0a245d1c4e4928?pvs=4

#️⃣연관된 이슈

fix #547

@somsom13 somsom13 added 🦋 Bug 🚨 버그 발생! 🚨 [ 🌙 BE ] 백엔드 크루들의 멋진 개발 이야기 하나둘셋 야! labels Oct 27, 2023
@somsom13 somsom13 self-assigned this Oct 27, 2023
@github-actions
Copy link

github-actions bot commented Oct 27, 2023

Unit Test Results

  98 files    98 suites   12s ⏱️
390 tests 389 ✔️ 1 💤 0
395 runs  394 ✔️ 1 💤 0

Results for commit 6d96b0f.

♻️ This comment has been updated with latest results.

Copy link
Collaborator

@Cyma-s Cyma-s left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

바론 !!!!!!!! 고생 많았습니다. 이걸로 저희가 많이 골머리 썩였는데 드디어 해결되네요 ^^
코드 변경이 많지 않아 간단한 리뷰만 남겼습니다 :) 바로 머지 가도 무관할 것 같아요!

Comment on lines 69 to 70
final Optional<KillingPartLike> like = killingPart.findLikeByMember(member);
like.ifPresent(likeOnKillingPart -> {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

하나로 묶는 거에 대해서는 어떻게 생각하세요?

Suggested change
final Optional<KillingPartLike> like = killingPart.findLikeByMember(member);
like.ifPresent(likeOnKillingPart -> {
killingPart.findLikeByMember(member).ifPresent(likeOnKillingPart -> {

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

원래 그냥 if문으로 처리했다가 ifPresent로 바꾸면서 오 좋은데~~ 라고 생각했었는데,,, 이걸 하나로 줄일 생각은 또 왜 못했을까요?

감사합니다 eagle eye vero

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My Pleasure.
@>----------

@@ -32,4 +33,12 @@ List<SongKillingPartKillingPartLikeCreatedAtDto> findLikedKillingPartAndSongByMe
+ "FROM KillingPartLike kp_like "
+ "WHERE kp_like.member=:member and kp_like.isDeleted=false")
List<Long> findLikedKillingPartIdsByMember(@Param("member") final Member member);

@Query("update KillingPartLike kp_like set kp_like.isDeleted = false where kp_like.id = :id")
@Modifying(clearAutomatically = true, flushAutomatically = true)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굿입니다 👍🏻

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

부끄럽네요 (^///^) --<-<-<@

@somsom13 somsom13 merged commit ba423bc into main Oct 29, 2023
6 checks passed
@somsom13 somsom13 deleted the fix/#547 branch October 29, 2023 04:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[ 🌙 BE ] 백엔드 크루들의 멋진 개발 이야기 하나둘셋 야! 🦋 Bug 🚨 버그 발생! 🚨
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[BUG] 여러 사용자의 좋아요 동시 요청 문제를 해결한다.
2 participants