TIL 2023-12-05 백오피스 프로젝트01

장규빈·2023년 12월 5일

TIL

목록 보기
38/59

팀 소개

  • 프로젝트 명 : 제목은 쓰레드로 하겠습니다. 근데 이제 깃허브를 곁들인
  • 서비스 명 : 오코완 (TCC)
  • 프로젝트 소개 : 오늘의 코딩 완료 - 개발 관련 이야기 겸 오늘의 코딩 공부를 공유하는 SNS 입니다.
  • 깃허브 레포 : 링크

필수 구현 기능

  • 사용자 인증 기능

    • 회원가입 기능
      • username, password를 Client에서 전달받기
      • username은 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성되어야 한다.
      • password는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자로 구성되어야 한다.
      • DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기
      • 회원 권한 부여하기 (ADMIN, USER) - ADMIN 회원은 모든 게시글, 댓글 수정 / 삭제 가능
      • 참고자료
        1. https://mangkyu.tistory.com/174
        2. https://ko.wikipedia.org/wiki/정규_표현식
        3. https://bamdule.tistory.com/35
    • 로그인 및 로그아웃 기능
      • username, password를 Client에서 전달받기
      • DB에서 username을 사용하여 저장된 회원의 유무를 확인하고 있다면 password 비교하기
      • 로그인 성공 시, 로그인에 성공한 유저의 정보와 JWT를 활용하여 토큰을 발급하고,
        발급한 토큰을 Header에 추가하고 성공했다는 메시지, 상태코드 와 함께 Client에 반환하기
  • 프로필 관리

    • 프로필 수정 기능
      • 이름, 한 줄 소개와 같은 기본적인 정보를 볼 수 있어야 하며 수정할 수 있어야 합니다.
      • 비밀번호 수정 시에는 비밀번호를 한 번 더 입력받는 과정이 필요합니다.
      • 최근 3번안에 사용한 비밀번호는 사용할 수 없도록 제한합니다.
  • 게시물 CRUD 기능 (배달앱일 경우 : 주문 CRUD 기능)

    • 게시물 작성, 조회, 수정, 삭제 기능
      • 게시물 조회를 제외한 나머지 기능들은 전부 인가(Authorization) 개념이 적용되어야 하며 이는 JWT와 같은 토큰으로 검증이 되어야 할 것입니다.
      • 예컨대, 내가 작성한 글을 남이 수정하거나 삭제할 수는 없어야 하고 오로지 본인만 수정/삭제 할 수 있어야겠죠?
      • 전체 게시글 정보를 조회하는 기능도 필요합니다.
    • 배달앱일 경우 : 주문 작성, 조회, 수정, 삭제 기능
      • 배달앱의 경우 주문이 게시글이 될것이고 주문목록이 게시판이 될 것 입니다. 주문한 사람만 메뉴를 수정/삭제할 수 있어야겠죠?
  • 댓글 CRUD 기능 (배달앱일 경우 : 리뷰 CRUD 기능)

    • 댓글 작성, 조회, 수정, 삭제 기능
      • 사용자는 게시물에 댓글을 작성할 수 있고 본인의 댓글은 수정 및 삭제를 할 수 있어야 합니다.
      • 또한, 게시물과 마찬가지로 댓글 조회를 제외한 나머지 기능들은 인가(Authorization)개념이 적용되어야 합니다.
    • 배달앱일 경우 : 리뷰 작성, 조회, 수정, 삭제 기능
      • 배달앱의 경우 주문자 들만 주문건에 대해서 리뷰를 생성 할 수 있어야 합니다.
      • 주문자만 해당 리뷰를 수정/삭제할 수 있어야 합니다.
  • 소셜 로그인 기능 구현

  • 백오피스 만들어보기

    • 백오피스 란 서비스를 제공하기 위하여 상품을 등록하고 마케팅을 설정하고 결제와 매출, 수익 등을 관리하는 서비스를 제공하는 페이지입니다.
    • 일반적으로 관리자 사이트, ERP 도구 등으로 표현됩니다.
    • 저희는 간단하게 관리자 페이지를 만든다고 생각하면 좋습니다.
    • 유저 전체 목록을 조회하고 권한을 수정/삭제하며 관리할 수 있습니다.
    • 게시글, 댓글 전체 목록을 조회하고 수정/삭제하며 관리할 수 있습니다.
    • 배달앱이라면 메뉴, 주문, 리뷰 전체 목록을 조회하고 생성/수정/삭제 기능을 통해 관리할 수 있습니다.
    • 관리자페이지 구성
      • 회원종류를 일반회원과 관리자 회원으로 분리
      • 회원 관리 또는 게시글 관리 화면 추가 / 혹은 동일 화면이라하더라도 더 많은 버튼과 기능을 사용할 수 있게 해주세요
        • 회원 관리(예시 기능)
          1. 회원 조회하기
          2. 사이트 회원 정보 수정하기
          3. 사이트 회원 삭제하기
          4. 회원 운영진으로 승격
          5. 회원 차단하기
            1. user모델과 tokenobtainpairview 수정이 필요합니다.
        • 게시글 관리(예시 기능)
          1. 공지글 등록하기 X(공지글 없음)
          2. 모든 게시글 수정하기
          3. 모든 게시글 삭제하기
        • 메뉴/주문 관리(예시 기능) - 배달앱
          1. 메뉴판 수정 하기
          2. 모든 주문 수정하기(완료처리)
          3. 모든 주문 삭제하기
  • 좋아요 기능

    • 게시물 및 댓글 좋아요/좋아요 취소 기능
      • 사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있어야 합니다.
      • 이 때, 본인이 작성한 게시물과 댓글에 좋아요는 남길 수 없도록 해봅니다!
  • 팔로우 기능 구현

    • 특정 사용자를 팔로우/언팔로우를 할 수 있으면 너무 좋습니다.
    • 팔로우 기능이 구현되었다면 팔로우하는 사용자의 게시물을 볼 수 있어야 하겠죠?
  • 프로필에 사진 업로드 기능 구현

    • 프로필 사진을 저장할 때는 반드시 AWS S3를 이용해주세요!
  • 게시물에 멀티미디어 지원 기능 구현

    • 게시물 본문에 사진이나 영상 등의 미디어를 포함할 수 있다면 금상첨화겠죠?
    • 또한, 게시물 수정시에도 첨부된 미디어가 수정될 수 있으면 좋습니다.
    • 미디어를 첨부할때는 서버 컴퓨터에 직접올릴 수도 있지만 AWS S3 를 사용하는 방법도 그리 어렵지 않답니다!
  • AWS 를 이용한 서비스의 배포

    • AWS EC2를 이용해서 배포할 것. 백엔드 개발자들에게 아주 중요한 주제입니다.
      • EC2의 역할을 이해
      • ubuntu 명령어들을 이해
      • 웹서버와 웹어플리케이션 서버의 차이를 이해
      • Nginx, gunicorn의 역할과 설정파일을 이해 (어렵습니다!!!)
    • 주의 : 프론트엔드와 백엔드가 각각 배포되어서 하나로 작동하는만큼 CORS, media file, static file, FILE_UPLOAD_MAX_MEMORY_SIZE 등 많은 에러가 있을 겁니다. 차근차근 해결해나아가야 합니다.
  • HTTP를 HTTPS로 업그레이드 하기

    • HTTPS를 적용하여 보안이 강화된 웹 페이지를 제공해보도록 합니다!

ERD 설계

링크 : https://www.erdcloud.com/d/PgfHtzpG9XBrFj3gu

와이어프래임

링크 : https://www.figma.com/file/Zc5uRtODmakGZekh9RLnLP/%EC%98%A4%EC%BD%94%EC%99%84?type=design&node-id=0-1&mode=design

profile
나다운사람

0개의 댓글