Grading-X / Grading-X-BE

http://3.34.49.173:8080/swagger-ui/index.html#/
0 stars 0 forks source link

결과 조회 API 방식 #19

Closed sim-mer closed 5 months ago

sim-mer commented 6 months ago

개요

현재 API 구조상 Guest 결과 조회 API만 QuestionController에 존재하는데 후에 추가할 리포트, 통계 기능을 생각하면 채점 결과 관련해서는 CQRS를 적용해보는게 어떨까요? 개인적으로는 ResultController와 같은 새로운 Controller와 Service로 채점 결과를 따로 처리하는 Controller를 분리하는게 좋을 것 같습니다.

참고사항

bayy1216 commented 6 months ago

생각하고 있는 방향이

  1. 단일데이터베이스
  2. DB이중화
  3. 이벤트소싱 중 어떤 것인가요?
sim-mer commented 6 months ago
bayy1216 commented 6 months ago
  • 먼저 제출api와 결과 조회 api는 분리합니다.
  • 다음으로, 최초 채점이나 문제 수정으로 인한 재채점 상황에서 분명 어느 정도는 delay가 발생할 것 같은데, 이때 결과 조회하는 요청이 들어왔을 경우 제출된 답변의 현재 상태를 알 수 없는 문제가 발생합니다.

해당내용은 CQRS랑은 관계가 없지않나요?

  • 3-tier 아키텍쳐라면 단일 DB나 DB이중화를 사용해서 현재 답변의 상태를 저장할 경우 AI 채점 delay와 비교해서 엄청난 이점을 얻진 못할 것같습니다.
  • 따라서 Redis 같은 인메모리 DB로 AI 채점 Delay 동안 결과조회 API 요청이 들어왔을 때 답변의 상태를 확인한 후 응답하는 과정이 필요할 것 같습니다.

AI채점과 CQRS는 관계가 없는것같습니다

sim-mer commented 6 months ago

아 CQRS 설명은 빼먹었네요.