On this page
8. End-to-End Flow
지난주에는 Notice 도메인의 내부 구현과 공지 처리 규칙을 살펴보았습니다. 이번 주에는 사용자가 문제에 코드를 제출했을 때 여러 시스템에 걸쳐 어떤 일이 일어나는지 실제 코드를 따라가며 알아봅니다.
문제 제출 흐름 분석 🔍
코드당 저장소 에서 문제 제출을 처리하는 코드를 찾아보세요. 먼저 제출 요청이 들어오는 지점을 찾고, 그다음 호출되는 코드를 순서대로 따라갑니다.
- 제출 요청은 어느 Controller에서 받아서 어떤 Service로 전달하나요?
- 제출 데이터는 어디에 저장되고, 채점 작업은 어떻게 전달되나요?
- Iris/Judger는 제출된 코드를 어떻게 받아 처리하고, 채점 결과는 어디에 반영되나요?
- 사용자는 처리된 결과를 어떤 API를 통해 확인하나요?
모든 함수와 예외 상황을 빠짐없이 분석할 필요는 없습니다. 요청 → 저장 → 채점 → 결과 확인의 큰 흐름을 이해하는 데 필요한 코드만 살펴보세요.
정리할 내용 📝
분석한 내용을 다음 두 가지 형태로 정리해보세요.
- 코드 설명 문서: 각 단계에서 사용되는 파일과 함수의 경로나 링크를 남기고, 그 역할을 한두 문장으로 설명합니다.
- Flow Diagram: Client, Backend, 저장소, 채점 시스템 사이에서 요청이나 데이터가 이동하는 순서를 화살표로 표현합니다. 실제 코드에서 확인한 구성 요소만 포함하면 됩니다.
다음 스터디 시간에 작성한 다이어그램을 보며 문제 제출 흐름을 함께 설명해볼 예정입니다!