장기 목표
- 진짜 서비스 화 목표? ⇒
시기 상조
- 문제 → 스펙 적용 프로젝트 ⇒
설정된 advanced
test 관련
- 점수 로직 / 랜덤 퀴즈 올바르게 등 로직 관련 테스트는 좋을 것이라는 의견
- 테스트를 위한 테스트/ 모든 부분에 테스트를 넣을 필요는 없다는 의견
- RTL, jest, cypress
- 초기 비용이 많이 들긴 하지만 → 템플릿을 재사용할 경우 사용할 수록 비용 감소
성능 최적화
lighthouse
점수 측정
3주 로드맵
- API 서버 배포 및 변경
- 리팩토링
- 틈틈히 여유 있을 때
API 설계
- 고려할 부분
- User → strapi 있는 그대로
- 내부에 뱃지, 포인트,
- 유저가 만든 퀴즈, 유저가 푼 퀴즈, comment,좋아요 ⇒ 유저가 정보 가지고 있기 ( 1 : n )
- Quiz
- QuizPack
- Achievement
- 문제를 해결한 뒤 점수 업데이트 후 조건 만족시 뱃지 부여
- 댓글 일정 개수 이상 작성 시에도 뱃지 부여 필요 → 서버에서 실행
- Comment
- Like
디자인 시스템 및 스타일드 컴포넌트 리팩토링
- 공통 스타일드 컴포넌트 분리
- 회의 필요
- storybook 도입 고려
버그 수정
- 유저정보페이지에서 댓글 부분 overflow 되는 현상
- 닉네임 변경시 reload 해결
- QuizResulPage 문제 height 고정 수정, 버튼이 아닌 background에 색깔 넣기
서비스 변경 필요 사항
- 초반에 레벨업 빨리 하도록 변경!
advanced 1순위 기능
- 퀴즈 생성 페이지
- 문제 정답 객관식 (
feat
) - 문제 출제 시 이미지 (
feat
)
- 퀴즈 결과 페이지
- 정답 아이콘 상단에
정답
표시 (style
) - 숫자가 들어올 시에도 correct 색으로 표시 (
style
) - 획득 경험치 표시 (
미해
userCard 애니메이션 예정⇒ history 로..?) (feat
)
- 유저 정보 페이지
- 퀴즈 수정 / 삭제
- 퀴즈 수정/삭제 ⇒ 본인이나 관리자만
- 퀴즈 삭제 시 ⇒ POST를 주고, deleted 여부를 bool로
리팩토링 시 유의점
공통 사항
- 네이밍
- 인터페이스 외에 대부분 카멜케이스로 하자
- 함수 분리
- 컴포넌트 파일에서 함수 컴포넌트 외부로
- 컴포넌트 폴더에서 파일 분리(모듈화)
- 완전 중요 로직일 경우 그대로 두자 ⇒ 리뷰어가 중요 로직임을 알 수 있도록
- 재사용성이 있는 함수는
utils
폴더로 이동
순수 함수로 분리 가능한 것은 컴포넌트 외부로 빼자
- 폴더 구조
components/common
- 어디서나 호환되는 text, button 등
components
pages
- 페이지 컴포넌트
postfix
:~Page
common
삭제- breakpoints(뱃지 관련 이쪽으로 빼기)
컴포넌트
constants
세부 사항
- form
- useForm으로 퀴즈, 로그인, 회원가입, 닉네임 변경, 패스워드 변경 통일
- 컴포넌트에 종속된 로직 분리
- 유저 카드 컴포넌트 내 뱃지 가져오는 로직
- 모달 하나로 통일
- Nickname Modal, Password Modal
api
폴더
- 네이밍을 auth, create, user처럼 quiz로 통일
- API요청 로직만 담아둔다
- 로직 관련된 부분은
utils
폴더로 따로 빼두자
getUserList
제거 및 user 폴더 내부 api 사용
- import문 정렬
- 기준 필요
Userinfo/getBadge 관련
- Map<string,number> 타입 지정
- getBadge 등 외부로 분리
advanced 후순위 기능
- 대댓글
- 회원 탈퇴
- 랜덤 퀴즈 서버에서 처리하기
- 퀴즈 풀기 : 난이도별로 달팽이 넣어놓기
- OX 위치 고정