오늘은 오전엔 버그를 잡고 오후엔 Tutorial 내용 작성을 진행했다. Tutorial 내용을 끝까지 작성하지는 않고 팀원분과 전체적인 구성과 진행을 정리했고 문제 구상까지 마쳤다. 이 이후에는 살을 붙여가면서 완성할 수 있게 만들었다. Task 기반으로 만드니 skip과 group capture 기능이 가능했다. 이 기능으로 문제의 다양성이 늘어났다.
될 수 있으면 불필요한 서버 요청을 줄이려고 구성했다. 만약 처음으로 문제를 해결한다면, Tutorial은 브라우저 로컬 스토리지에 Redux-persist를 통해 저장하고, 유저가 만든 Quiz 페이지는 서버에 전송한다. 한 번 더 문제를 해결할 경우 다시 보내지 않도록 구성했다.
Tutorial은 Redux 상태값을 참조했다.
유저 Quiz 여부는 서버에게 전달받은 isClear
변수의 값을 직접 수정하면서 구현했다.
useEffect(() => {
// 퀴즈에서 로그인한 회원이 처음 문제를 풀었을 경우 서버 요청
if (orderPage === 'quizList' && isCorrectRegTotal && isLogin && !data.isClear) {
data.isClear = true;
requestQuizClear(data.id);
}
// 학습하기에서 문제를 풀었을 경우 상태 저장
if (orderPage === 'tutorial' && isCorrectRegTotal && !tutorialClearList[data.id - 1]) dispatch(clearList(data.id - 1));
}, [isCorrectRegTotal]);