회원 관리
| URL |
Method |
Request Parameter |
응답 모델 |
설명 |
| /auth/login |
GET |
- |
|
로그인 폼 렌더링 |
Spring Security |
|
|
|
|
| /auth/signup |
GET |
- |
|
회원가입 폼 렌더링 |
| /auth/sighup |
POST |
authCreateForm(AuthCreateForm) |
|
|
bindingResult(BindingResult) |
|
회원가입 요청 |
|
|
| /auth/mypage |
GET |
user: 사용자 정보 (Auth) |
|
|
solvedProblems: 전체 문제 풀이 리스트 (List<UserProblemSolving>) |
|
|
|
|
pagedSolvedProblems: 페이지네이션된 문제 풀이 목록 |
user: 사용자 정보 (Auth) |
|
|
|
solvedProblems: 전체 문제 풀이 리스트 (List<UserProblemSolving>) |
|
|
|
|
pagedSolvedProblems: 페이지네이션된 문제 풀이 목록 |
로그인된 사용자의 정보 및 문제 풀이 목록 조회 |
|
|
|
문제 관리
| URL |
Method |
Request Parameter |
응답 모델 |
설명 |
| / |
GET |
page (int optional, default = 0) |
|
|
| : 페이징된 페이지 번호 |
user: 사용자 정보 (Auth) |
|
|
|
paging: 페이지네이션된 문제 목록 |
|
|
|
|
allProblem: 전체 문제 리스트 |
|
|
|
|
userRank: 사용자 랭킹 |
|
|
|
|
solvedProblems: 문제 풀이 이력 |
|
|
|
|
problemIdToStatus: 문제 ID별 풀이 상태 |
전체 문제 리스트 및 유저 풀이 상태와 |
|
|
|
| 랭킹 정보를 메인 페이지에 출력 |
|
|
|
|
페이지네이션 |
|
|
|
|
| /problem/{problemId} |
GET |
problemId (PathVariable) |
|
|
Principal |
user: 사용자 정보 |
|
|
|
problem: 문제 객체 |
|
|
|
|
returnType: 반환 타입 |
|
|
|
|
paramTypes: 파라미터 타입 리스트 |
|
|
|
|
paramNames: 파라미터 이름 리스트 |
|
|
|
|
examplePairs: 입출력 예제 |
문제 설명, 예시 입출력, 파라미터 타입/이름, 반환 타입을 불러서 렌더링 |
|
|
|
CodeMirror CodeEditor
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.2/codemirror.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.2/mode/clike/clike.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.2/addon/edit/closebrackets.min.js">
</script> |
| /submit/code | POST | code (String)
problemId (Integer)
className (String , optional, default=Solution)
Principal | String (텍스트: 테스트 결과, 점수 포함) | 사용자가 제출한 코드를 저장
→ 컴파일
→ Judge.java 로 실행
→ 출력 비교
→ 성공 시 점수 및 컴파일 횟수 증가 |
| /find_problem | GET | searchTitle (String)
page (int, optional) | JSON: 문제 목록, 유저 풀이 상태, 페이지 정보 | 검색어를 기준으로 문제 목록을 **AJAX**로 조회 |