<aside> ✅ 여러분이 프로젝트를 진행할 때 작성해야 하는 기능 To Do의 기준점을 제시합니다. 문서에 작성된 필수 항목은 반드시 프로젝트 기획에 포함해주세요.

*너무 높은 난이도의 기능들을 To do list에 포함할 경우 기간 내 결과물을 만들지 못할 수 있으니 팀원과 충분히 협의 후 결정해주세요.

</aside>

1. 시스템 아키텍처

항목 필수 여부 포지션 난이도
JWT를 이용한 로그인 구현 필수 프론트엔드, 백엔드 ★
권한 부여(Authorization)에 따른 기능의 접근 제한 구현
(예- 일반 사용자, 관리자 권한) 필수 프론트엔드, 백엔드 ★
OAuth 2.0을 이용한 소셜 로그인 권장 프론트엔드, 백엔드 ★
TypeScript 언어 사용 도전 프론트엔드 ★★★
next.js를 사용한 Server Side Rendering 적용 도전 프론트엔드 ★★★
AWS lambda를 사용한 Serverless 아키텍처 도입 도전 백엔드 ★★★
React custom hook 만들어서 쓰기 도전 프론트엔드 ★★★
socket.io를 이용한 실시간 통신 신중 프론트엔드, 백엔드 ★★★★
redis를 이용한 캐싱 신중 백엔드 ★★★★
Create React App을 사용하지 않고 빌드 과정 직접 구성 신중 프론트엔드 ★★★★

2. UI/UX

항목 필수 여부 포지션 난이도
회원가입, 로그인, 로그아웃, 마이페이지, 회원탈퇴 기능 구현 필수 프론트엔드, 백엔드 ★
회원가입, 로그인 및 회원정보 수정 시 유효성 검사 필수 프론트엔드 ★
소셜 로그인 외 서비스 자체 회원가입 기능 제공 필수 프론트엔드 ★
회원가입 없이 '체험하기' 형식으로 가볍게 기능을 이용할 수 있는 장치 마련 필수(Final only) 프론트엔드 ★
회원 탈퇴나 리소스 삭제시 확인(confirm) 모달 제공 권장 프론트엔드 ★
마이페이지를 통해 사용자 개인정보 수정 기능 제공 필수 프론트엔드 ★
(소셜 로그인이 아닐 경우) 비밀번호 수정 기능 제공 필수 프론트엔드 ★
라이브러리를 사용하지 않고 React 컴포넌트 직접 작성 (탭, 드랍다운, 모달 등) 필수 프론트엔드 ★
검색 필터링 기능 권장 프론트엔드, 백엔드 ★★★
상품 혹은 데이터를 API로 받아 와서 리스트 구현 권장 프론트엔드 ★★
3rd-party API 호출 권장 프론트엔드 ★
모바일 환경 대응 및 반응형 웹 권장 프론트엔드 ★★
라이브러리를 사용하지 않고 React 컴포넌트 직접 작성 권장 프론트엔드 ★★★
S3로 파일 업로드 권장 프론트엔드, 백엔드 ★★★
회원 가입시 인증 메일 발송 권장 프론트엔드, 백엔드 ★★★
reCAPTCHA 사용 도전 프론트엔드 ★★
스케쥴러(cron)에 의한 메일 전송 도전 백엔드 ★★★
위치 기반 기능 도전 프론트엔드, 백엔드 ★★★
국제화 (i18n) 적용 도전 프론트엔드 ★★★
무한 스크롤 도전 프론트엔드 ★★★
스크롤에 의한 애니메이션 적용 (greensock 사용 권장) 도전 프론트엔드 ★★★
Socket.io를 이용한 채팅 기능 도전 프론트엔드, 백엔드 ★★★★
리포트 생성(pdf) 도전 프론트엔드, 백엔드 ★★★
지도 API 사용 (오버레이, 핀) 도전 프론트엔드 ★★★★
라이브러리를 사용하지 않은 드래그 앤 드랍 도전 프론트엔드 ★★★★
d3를 이용한 시각화 도전 프론트엔드 ★★★★
퍼지(fuzzy) 검색 도전 백엔드 ★★★★
Canvas, SVG를 활용한 동적인 이미지 표시 도전 프론트엔드 ★★★★★
추천 시스템 구현 도전 백엔드 ★★★★★
lighthouse 각 항목 70점 이상 통과 (PWA 제외) 도전 프론트엔드 ★★★★★

3. 스키마 및 API

항목 필수 여부 포지션 난이도
N:M (다대다) 관계 설정 필수 백엔드 ★
ERD (DB Diagram) 작성 필수 백엔드 ★
API 작성 툴 (Swagger, Postman, Gitbook API) 을 사용하여 요청/응답 및 JSON 키/값 형식 기술 필수 백엔드 ★★
ORM 사용 (sequelize, typeorm 권장) 권장 백엔드 ★
근거가 분명한 NoSQL 도입 권장 백엔드 ★★
페이지네이션 구현 권장 백엔드 ★★★
GraphQL 장점이 반영된 적용 신중 백엔드, 프론트엔드 ★★★★

4. DevOps

항목 필수 여부 포지션 난이도
[코드] precommit 단계에서 semistandard 적용 필수 프론트엔드, 백엔드 ★
[릴리즈] 깃허브 커밋메세지 규칙 합의 필수 프론트엔드, 백엔드 ★
[코드] 버전 규칙 합의 필수 프론트엔드, 백엔드 ★
[릴리즈] PR 형식 합의 권장 프론트엔드, 백엔드 ★
[배포] 배포 자동화 설정 권장 백엔드 ★
[배포] 도메인 구매 및 HTTPS 배포 권장 백엔드 ★★★
[테스트] 백엔드 테스트 코드 작성 권장 백엔드 ★★★
[테스트] w3c validator 통과 권장 프론트엔드 ★★★
[테스트] husky로 커밋 메시지 규칙 자동 체크 도전 프론트엔드, 백엔드 ★★★
[코드] Docker를 이용한 개발환경 구축 및 전 팀원의 이용 도전 백엔드 ★★★