<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를 이용한 개발환경 구축 및 전 팀원의 이용 도전 백엔드 ★★★