개요
- 현재는 유저가 작성한 코드가 다음 문제로 갔다가 돌아오면 초기화되어 있다.
- 유저 경험 측면에서 작성했던 코드를 저장해 두자.
유저 경험과 대회 속성이 서로 반대된다면 어떻게 해야할까?
- 유저 경험은 작성한 코드를 localStorage에 저장하는 편이 좋다.
- 코드 유출을 생각하면 memory에 들고 있는게 좋다.
현재 상황
화면 기록 2023-12-04 오후 1.31.31.mov
논의할 대상
- JSON 객체를 저장할 곳
- localStorage
- sessionStorage
- memory
- JSON 객체의 데이터 구조
- JSON 객체의 제거 타이밍
JSON 객체를 저장할 곳
- 복잡한 코딩 대회 페이지에서 사용되기 때문에, 브라우저가 강제 종료되거나 멈추는 일이 생기지 않을까?
- 코딩 대회 페이지의 기능
- localStorage에 저장하자.
저장할 JSON 객체의 구조에 대해서 고민하자
{"competitionId|userId":{
problemId:"유저가 작성한 코드"
problemId:"유저가 작성한 코드"
problemId:"유저가 작성한 코드"
}}
{
3|[email protected] : {
36: 'function solution(a,b){return a+b}'
1213: 'function solution(a,b){return a-b}'
1: 'function solution(a,b){return a*b}'
}
}
JSON 객체의 제거 타이밍?
- 대회가 끝났다는 정보를 받고, 삭제하기 X
- 대회가 끝나기 전에 나간 유저에 대해서는 삭제를 못 한다.
- 대회가 종료된 후에 삭제를 해야함
- 특정 대회에 참여할 때, 그 대회 정보를 제외하고 모든 대회 캐싱을 제거하는 게 좋아보임.
- 그렇게 하려면 JSON 객체를 한번 더 감싸서 { competitionUserCode: JSON 객체 } 로 만들어서 삭제를 용이하게 하자.