Implementation
1. ✅ MVP 제작
성능 테스트와 부하테스트를 진행하기 위해 필요한 동작하는 MVP 프로젝트를 구현했습니다.
1-1. ✅ 핵심 요구사항
문제 보기 (View Problems)
사용자는 문제 설명, 예제, 제약 조건 등을 확인할 수 있어야 한다.
문제 목록을 탐색할 수 있어야 한다.
풀이 제출 (Submit Solution)
사용자는 코드 문제를 풀기 위해 솔루션 코드를 제출할 수 있어야 한다.
제출된 코드는 내장된 테스트 케이스로 실행되어 결과를 제공해야 한다.
코딩 대회 기능 (Coding Contest)
사용자는 코딩 대회에 참여할 수 있다.
대회는 2시간 동안 진행되며, 4개의 문제로 구성된다.
점수는 푼 문제 수와 풀이 시간에 기반해 계산된다.
리더보드는 실시간으로 결과를 표시하며, 상위 50명의 사용자(username 및 score)를 보여준다.
1-2. 🚫 제외 범위 (Out of Scope)
사용자 인증 (Authentication)
권한 관리 (Authorization)
사용자 관리 (User Management)
과거 대회 기록 조회 (Contest History)
2. ✅ API 엔드포인트
2-1. GET /problems?start={start}&end={end}
설명: 시작 페이지 넘버부터 끝 페이지 넘버까지의 문제 리스트를 조회합니다.
2-1. GET /problems/offset
설명: start와 end가 제공되지 않았을 경우, 전체 조회를 페이지네이션으로 가져옵니다.
2-1. GET /problems/cursor
설명: start와 end가 제공되지 않았을 경우, 전체 조회를 페이지네이션으로 가져옵니다.
2-2. GET /problems/{problem_id}
설명: 문제 설명, 제약 조건, 예시, 스타터 코드를 포함한 문제 상세 정보를 조회합니다.
2-3. GET /contests/{contest_id}/leaderboard
설명: 특정 대회의 리더보드를 조회합니다.
2-4. POST /problems/{problem_id}/submission
설명: 사용자가 제출한 풀이 코드를 서버에 전송하여 채점 결과를 받아옵니다. 내부적으로는 각 테스트 케이스별 실행 결과를 반환합니다.
3. ✅ DB 스키마 & 인프라
DB 스키마

MVP 로컬환경 인프라

Java Application: 자바 프로젝트입니다
MySQL: 데이터베이스입니다.
SandBox: 유저 코드를 실행하여 정답 여부를 반환합니다.
Last updated