-
Notifications
You must be signed in to change notification settings - Fork 3
refactor: fetch init #155
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
refactor: fetch init #155
Conversation
Walkthrough테스트케이스 식별 방식을 기존의 1-based seqId에서 실제 DB의 Long 타입 testcaseId로 전환하였고, 이에 따라 서비스, 컨트롤러, 프론트엔드, 레코드, DTO, 저장소 계층 등 전반에 걸쳐 관련 메서드 시그니처와 데이터 흐름이 수정되었습니다. 또한 제출 응답 구조가 sessionKey와 testcaseIds를 포함하는 형태로 확장되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Frontend
participant SubmissionController
participant SubmissionService
participant TestcaseDomainService
participant JudgeService
User->>Frontend: 코드 제출
Frontend->>SubmissionController: submitCodeStream(problemId, request, authUser)
SubmissionController->>SubmissionService: enqueueCodeSubmission(problemId, request, authUser)
SubmissionService->>TestcaseDomainService: getTestcaseListByProblemId(problemId)
TestcaseDomainService-->>SubmissionService: List<Testcase>
SubmissionService-->>SubmissionController: SubmitResponse(sessionKey, testcaseIds)
SubmissionController-->>Frontend: SubmitResponse(sessionKey, testcaseIds)
Frontend->>Frontend: testcaseSlotMap 생성 및 렌더링
Frontend->>JudgeService: WebSocket 연결 및 구독 (sessionKey)
JudgeService-->>Frontend: testcaseId별 채점 결과 전달
Frontend->>Frontend: testcaseSlotMap 통해 UI 업데이트
Possibly related PRs
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (15)
🧰 Additional context used🧠 Learnings (13)📓 Common learningssrc/main/java/org/ezcode/codetest/infrastructure/persistence/repository/problem/TestcaseJpaRepository.java (3)src/main/java/org/ezcode/codetest/presentation/submission/SubmissionController.java (1)src/main/java/org/ezcode/codetest/domain/submission/model/TestcaseEvaluationInput.java (1)src/main/java/org/ezcode/codetest/infrastructure/event/dto/submission/response/JudgeResultResponse.java (1)src/main/java/org/ezcode/codetest/domain/problem/service/TestcaseDomainService.java (2)src/main/java/org/ezcode/codetest/domain/problem/repository/TestcaseRepository.java (2)src/main/java/org/ezcode/codetest/application/submission/dto/request/compile/CodeCompileRequest.java (1)src/main/java/org/ezcode/codetest/application/submission/model/SubmissionContext.java (1)src/main/java/org/ezcode/codetest/infrastructure/persistence/repository/problem/TestcaseRepositoryImpl.java (2)src/test/java/org/ezcode/codetest/application/submission/SubmissionServiceTest.java (6)src/main/java/org/ezcode/codetest/application/submission/service/JudgementService.java (1)src/main/resources/templates/test-submit.html (1)⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (26)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Summary by CodeRabbit
신규 기능
버그 수정
리팩터링
테스트