DRF를 활용한 프론트엔드와 백엔드가 분리된 첫 프로젝트
- 프론트엔드와 백엔드의 분리
- aws를 이용한 서비스의 배포
컨셉은 중고거래
필수 구현 기능
-
DRF 사용
- 프론트엔드 레포지토리와 백엔드 레포지토리를 분리해서 두가지 레포지토리를 사용해야 합니다.
-
프론트엔드
- 자바스크립트의 fetch를 이용해서 백엔드와 restful하게 통신해주세요
- (선택)원한다면 fetch 대신에 axios나 jquery의 ajax를 쓰셔도 됩니다.
- (선택)정말 도전을 원하다면 그냥 자바스크립트 대신 프레임워크인 vue.js나 react도 고려는 해볼 수 있지만 비추하겠습니다!
-
회원기능
- jwt token을 이용해주세요
- 세션/쿠키 방식과 토큰의 차이를 명확히 이해해주세요 (면접 빈출 질문)
-
CRUD 기능
- 아직 DRF와 자바스크립트의 게시글 / 댓글 / 좋아요와 같은 기능들도 좋습니다. 아직 새로운 자바스크립트와 DRF가 익숙하지 않다면 이 기능들에 집중하는 것을 추천드립니다.
- 아래는 구현가능한 기능들로 참고만 해주세요. 다 구현하지 않고 선택하셔도 좋습니다!
- 피드 페이지
- 최신 게시글의 제목 or 썸네일 보기
- 로그인 안해도 다 볼 수 있게
- 게시글 작성 페이지
- 상세 게시글 페이지
- 게시글의 세부내용 보기
- 글 작성자만! 수정/삭제 가능하다.
- 마이 페이지
- 내 게시물 보기 → 모든 유저
- 프로필 수정 기능 → 나만
- 댓글 기능
- 좋아요, 북마크 기능
- 팔로우, 팔로워 기능
- 팔로우한 상대 게시물 확인 기능
- 프로필에 사진 업로드 기능
- 많아지는 게시글을 나눠보기 위한 페이지 기능(pagination)
- 회원가입시 이메일 인증 기능 추가
- 비밀 번호 찾기 기능
- (선택)이 기능들이 조금 익숙하다면 쇼핑몰처럼 상품등록이 가능한 조금더 복잡한 CRUD도 괜찮습니다.
- 등록시 더 까다로운 입력화면
- 조회시에도 더 까다로운 필터링 화면이 필요합니다!
- 주의 : 혹시 채팅기능을 추가하고 싶다? 채팅기능은 socket이라는 새로운 통신방식을 써야하는만큼 더 어려워집니다. 위에 기능들이 먼저 끝난뒤에 도전해보세요. 최종프로젝트때에 도전하는 것을 추천드립니다.
-
배포
- 프론트엔드 : AWS S3 혹은 netlify, vercel, github pages 와 같은 서비스로 배포할 것
- 백엔드 : AWS EC2를 이용해서 배포할 것. 백엔드 개발자들에게 아주 중요한 주제입니다.
- EC2의 역할을 이해
- ubuntu 명령어들을 이해
- 웹서버와 웹어플리케이션 서버의 차이를 이해
- Nginx, gunicorn의 역할과 설정파일을 이해 (어렵습니다!!!)
- 주의 : 프론트엔드와 백엔드가 각각 배포되어서 하나로 작동하는만큼 CORS, media file, static file, FILE_UPLOAD_MAX_MEMORY_SIZE 등 많은 에러가 있을 겁니다. 차근차근 해결해나아가야 합니다.
내 몫은 User 모델 구현 이번주도 파이팅.