- 문제를 틀릴 때까지 계속 문제를 제공해 주며, 몇 개 풀었는지, 도전을 몇 번 했는지를 기록한다.
- 고려사항
- 어떻게 n번째 도전과 n+1번째 도전을 구분할 것인가?
- 구분할 고유 키 값은 어떻게 생성할 것인가?
- 유저가 퀴즈 중간에 이탈하는 경우 어떻게 할 것인가?
- 유저가 고유 키 값을 조작해서 퀴즈를 푸는 경우 어떻게 할 것인가?
- challengeId를 따로 빼두어서 조작하는 경우
- 브라우저가 아닌 클라이언트로 접속하는 경우
- 고유 키 값의 타임아웃을 어떻게 줄 것인가?
- map
- redis
- 고유 키가 타임아웃 난 것을 언제 판별할 것인가?
- 무한 퀴즈 챌린지 퀴즈 api?
- 퀴즈 제공할 때, 판별한다.
- 퀴즈 문제를 제공할 때, 15초가 지났다면 기존 챌린지 id는 지우며, 새로운 챌린지 id로 발급해 준다.
- 채점 api?
- 채점에서 틀렸으면 챌린지 id를 무효화해야 한다.
- 단 결과에는 반영한 뒤에 지워야 한다.
- 결과 api와 분리되어 있어서 이 부분 처리가 어렵다.
채점 api에서는 무한퀴즈 챌린지 id가 없어도 된다.문제 요청을 1번에 1개씩만 하므로 위와 같이 처리가 가능해진다.
채점만 한다.
- 채점에서 틀렸으면 챌린지 id를 무효화해야 한다.
- 결과 api?
- 무한 퀴즈 챌린지 api가 있고
- 채점과 결과를 하나로 합칠 것인가?
- score라고 바꾸면 가능할 듯
- 단, 로그인 안된 경우도 한 번에 처리되도록 만들어야 한다.
- 로그인 안되었을 때는, 채점만 진행
- 서로 다른 기능인데, 하나로 합치는 게 맞는가?
- 무한 퀴즈 챌린지가 섞여서 문제가 된다.
- 무한 퀴즈 챌린지는 채점에서 틀리는 경우 challengeId를 지워야 한다. 즉, 상태 값이 있다.
- 그런데 채점에서 지워버리면, 채점 이후에 호출할 결과 api에서는 challengeId가 서버에서 지워버린 이후니까 결과를 반영할 수 없다.
- 채점에서 틀리는 경우 challengeId에 제한을 걸어야 한다
- 연속으로 정답을 맞히는 중이라는 것을 표현하는 상태 값을 두는 것이 간편하게 구현될 테지만, 자연스러운 방법은 아니라 생각 든다.
- 무한 퀴즈 챌린지용으로 채점, 결과를 합칠 수도 있겠지만 재활용 없이 비슷한 역할을 하는 중복되는 api 다시 만드는 건 좋지 않다 생각 든다.
- 무한 퀴즈 챌린지 퀴즈 api?
'Project' 카테고리의 다른 글
[간단한 퀴즈 서비스] 무한 퀴즈 챌린지, 퀴즈 && 채점 고민 (0) | 2024.11.25 |
---|---|
[간단한 퀴즈 서비스] 서버시간 (1) | 2024.11.24 |
[간단한 퀴즈 서비스] 퀴즈 결과 api 에러 (0) | 2024.11.22 |
[간단한 퀴즈 서비스] 회원탈퇴, 테이블 데이터 (1) | 2024.11.21 |
[간단한 퀴즈 서비스] 퀴즈 데이터 DB 이관 (1) | 2024.11.20 |