-
Notifications
You must be signed in to change notification settings - Fork 1
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
#457 추천인 시스템 구현 #470
#457 추천인 시스템 구현 #470
Conversation
@@ -154,6 +154,7 @@ const completeQuest = async (userId, timestamp, quest) => { | |||
logger.info(`User ${userId} successfully completed ${quest.id}Quest`); | |||
return { | |||
quest, | |||
questCount: questCount + 1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사실 조금 위험한 코드이긴한데, MongoDB에 트랜잭션을 도입하여 퀘스트 달성에 필요한 7단계의 작업을 Atomic하게 처리하지 않으면 완벽하게 해결할 방법이 딱히 없는 것 같습니다.
왜 위험한 코드라고 판단했냐면, 혹시라도 같은 유저가 같은 퀘스트를 달성하고자 하는 요청이 동시에 여러 번 들어오게 되면, await 때문에 7단계가 쪼개어져 처리되면서 questCount 값이 부정확하게 될 수도 있기 때문입니다. 물론 발생 가능성이 매~우 낮은 시나리오이긴 합니다..
리뷰 요청 드린 분들 다들 바쁘신 것 같아서 바로 머지하겠습니다! |
Summary
It closes #457
추천인 시스템을 구현하기 위해, 초대 링크 관련 API를 구현합니다.
Further Work