<TIL - 0035> DRF 프로젝트

개발일지·2023년 5월 8일
0

til

목록 보기
35/43


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 모델 구현 이번주도 파이팅.



profile
아닐지

0개의 댓글