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

같은 회원이 연속 참여 버튼을 눌렀을 때 생기는 동시성 문제 해결 #507

Merged
merged 4 commits into from
Aug 29, 2024

Conversation

Mingyum-Kim
Copy link
Contributor

PR의 목적이 무엇인가요?

같은 회원이 연속 참여 버튼을 눌렀을 때, 여러 번 참여가 가능함을 볼 수 있었어요.
서버 단에서 이를 방지하기 위한 코드를 추가하였습니다.

이슈 ID는 무엇인가요?

설명

해결한 기록은 팀 블로그에 작성하였어요!
확인해주시고, 어렵다고 생각되는 내용은 댓글로 남겨주세요 😀

질문 혹은 공유 사항 (Optional)

@Mingyum-Kim Mingyum-Kim added BE 백엔드 관련 이슈입니다. 🚑 버그 fix (develop에서 파생된 문제) labels Aug 27, 2024
@Mingyum-Kim Mingyum-Kim self-assigned this Aug 27, 2024
@ay-eonii
Copy link
Contributor

ay-eonii commented Aug 29, 2024

고생했습니다 안나 👍 블로그도 잘 읽었습니다

한 가지 궁금한 게 있어요. 지난번에 unique key 에 대해서도 이야기 나눈 것 같은데 이 부분은 적용하지 않은 이유가 있나용??

Copy link
Contributor

Choose a reason for hiding this comment

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

(개인적인 의견)
테스트 클래스를 분리해도 되지만 ChamyoService에 Nested로 작성해도 좋을 것 같음!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

아 좋네요 👍 수정하겠읍니다

@Mingyum-Kim
Copy link
Contributor Author

@ay-eonii

(서론) 그 때 논의했던 바로는 참여 테이블에 member_id에 unique 제약 조건을 거는 이야기가 나왔었던 것으로 기억해요!
처음에는 '참여 테이블에는 여러 모임에 대한 참여 정보가 들어가니까 member_id에만 unique를 건다 해도 문제를 해결할 수는 없을 것 같은데?'라고 생각했어요. 그래서 따로 시도해보지 않았습니다 ㅎㅎ..
하지만 지금 생각해보니 member_idmoim_id에 복합 unique를 걸면 해결될 것 같기도 하네요.

그럼에도 불구하고 지금 방식이 좋다고 생각해요. 왜냐하면 unique 제약 조건을 사용하게 되면 동시성 문제가 생길 때 적절한 에러 처리를 하기 힘들기 때문입니다. 서버 오류가 생겼다고 넘겨주는 것보다 중복으로 참여할 수 없다는 메시지를 띄워주는 게 더 좋을 것 같아요!

@Mingyum-Kim Mingyum-Kim merged commit 2a6c021 into develop-backend Aug 29, 2024
1 check passed
@ay-eonii ay-eonii deleted the fix/#445 branch September 13, 2024 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 관련 이슈입니다. 🚑 버그 fix (develop에서 파생된 문제)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants