Business Rules(MyBox) - this-is-spear/numble-mybox GitHub Wiki

용어 정리

영어 한글 설명
File 파일 사용자가 업로드한 데이터를 의미한다.
Direcotry 디렉토리 파일을 담는 폴더를 의미한다. 폴더는 비어있을 수 있다.
Extension 파일 확장자 파일의 확장자를 의미한다.
MEMBER 회원 사용자의 권한 중 회원의 권한을 의미한다.
Authority 권한 사용자가 접근할 수 있는 권한을 의미한다.

모델링

Domain

File

  • 상태
    • 식별자, 파일의 이름, 크기, 파일 확장자, 파일 주인의 정보를 가진다.
      • 식별자는 String 타입이다.
      • 파일의 이름을 비어있을 수 없다.
      • 파일 이름은 특수문자를 허용하지 않는다.
      • 파일 이름은 2 글자 이상 10 글자 이하여야 한다.
      • 크기는 20MB 미만이어야 한다.
      • 파일 주인의 정보는 사용자의 식별자 정보이다.
  • 행위
    • 파일 이름을 변경한다.

Directory

  • 상태
    • 식별자, 디렉토리 이름, 하위 아이템 정보를 가진다.
      • 식별자는 String 타입이다.
      • 디렉토리 이름은 비어있을 수 없다.
      • 디렉토리 이름은 특수문자를 허용하지 않는다.
      • 디렉토리 이름은 2 글자 이상 10 글자 이하여야 한다.
      • 하위 아이템 정보는 자신이 포함하는 파일과 디렉토리의 정보들이다.
  • 행위
    • 디렉토리 이름을 변경한다.

UI

FileController

  • 사용자의 권한과 파일 식별자를 입력받아 파일 정보를 조회한다.
    • 응답 MediaTypeAPPLICATION_JSON이다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 파일 식별자로 입력받는 String 타입은 비어있을 수 없고 20글자가 넘지 않는다.
  • 사용자의 권한과 파일 식별자, 새로운 이름을 입력받아 파일 이름을 수정한다.
    • 요청 MediaTypeAPPLICATION_JSON이다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 새로운 이름은 10글자 이하여야 하며 특수문자는 허용하지 않는다.
    • 파일 식별자로 입력받는 String 타입은 비어있을 수 없고 20글자가 넘지 않는다.
  • 사용자의 권한과 파일 식별자, 디렉토리 식별자를 입력받아 파일을 업로드한다.
    • 응답 MediaTypeAPPLICATION_OCTET_STREAM이다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 사용자 권한에 맞는 허용량을 넘기지 않는지 확인한다.
  • 사용자의 권한과 파일 식별자를 입력받아 파일을 다운로드한다.
    • 응답 MediaTypeAPPLICATION_OCTET_STREAM이다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 파일 식별자로 입력받는 String 타입은 비어있을 수 없고 20글자가 넘지 않는다.
  • 사용자의 권한과 파일 식별자를 입력받아 파일을 삭제한다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 파일 식별자로 입력받는 String 타입은 비어있을 수 없고 20글자가 넘지 않는다.

DirectoryController

  • 사용자의 권한과 디렉토리 식별자를 입력받아 디렉토리를 조회한다.
    • 응답 MediaTypeAPPLICATION_JSON이다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 디렉토리 식별자로 입력받는 String 타입은 비어있을 수 없다,
  • 사용자의 권한과 디렉토리 식별자, 새로운 이름을 입력받아 디렉토리 이름을 수정한다.
    • 요청 MediaTypeAPPLICATION_JSON이다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 새로운 이름은 10글자 이하여야 하며 특수문자는 허용하지 않는다.
    • 디렉토리 식별자로 입력받는 String 타입은 비어있을 수 없다,
  • 사용자의 권한과 기존 디렉토리 식별자를 입력받아 디렉토리를 생성한다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 디렉토리 식별자로 입력받는 String 타입은 비어있을 수 없다,
  • 사용자의 권한과 디렉토리 식별자를 입력받아 디렉토리를 삭제한다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 디렉토리 식별자로 입력받는 String 타입은 비어있을 수 없다,
  • 사용자의 권한과 디렉토리 식별자를 입력받아 디렉토리를 다운로드 한다.
    • 사용자는 MEMEBER 이상 권한을 가져야 한다.
    • 디렉토리 식별자로 입력받는 String 타입은 비어있을 수 없다,

Business

DirectoryCommandService

  • 사용자의 식별자와 상위 디렉토리 식별자, 디렉터리 이름를 입력해 디렉토리를 생성한다.
    • 사용자의 상위 디렉토리 접근 권한(Authority)을 확인한다.
    • 디렉터리 정보를 저장한다.
  • 사용자의 식별자와 디렉터리 식별자를 입력해 디렉토리를 삭제한다.
    • 사용자의 디렉토리 접근 권한(Authority)을 확인한다.
    • 디렉터리 정보를 삭제한다.
  • 사용자의 식별자와 디렉토리 식별자, 새로운 이름를 입력해 디렉토리 이름을 수정한다.
    • 사용자의 디렉토리 접근 권한(Authority)을 확인한다.
    • 디렉터리 이름을 수정한다.
  • 사용자의 식별자와 디렉터리 식별자를 입력해 디렉토리를 다운로드 한다.
    • 사용자의 디렉토리 접근 권한(Authority)을 확인한다.
    • 디렉터리 내부 파일 들을 다운로드한다.
    • 폴더에 감싸 압축한다.

FileCommandService

  • 사용자의 식별자, 디렉토리 식별자, 파일 식별자를 입력해 파일을 업로드한다.
    • 사용자의 현재 디렉토리 접근 권한(Authority)을 확인한다.
    • 파일의 확장자를 식별한다.
    • 파일 시스템에 업로드한다.
    • 파일 정보를 저장한다.
  • 사용자의 식별자와 파일 식별자를 입력해 파일을 다운로드한다.
    • 사용자의 파일 접근 권한(Authority)을 확인한다.
    • 파일 시스템에서 파일을 가져온다.
    • 가져온 파일의 이름을 기존 이름으로 변경한다.
    • 사용자에게 전달한다.
  • 사용자의 식별자와 파일 식별자, 새로운 이름을 입력해 파일 이름을 수정한다.
    • 사용자의 파일 접근 권한(Authority)을 확인한다.
    • 파일 이름을 수정한다.

DirectoryReadService

  • 사용자의 식별자와 디렉토리 식별자를 입력해 디렉토리 정보와 내부 정보를 확인한다.
    • 사용자의 디렉토리 접근 권한(Authority)을 확인한다.

FileReadService

  • 사용자의 식별자와 파일 식별자를 입력해 파일 정보를 조회한다.
    • 사용자의 파일 접근 권한(Authority)을 확인한다.

Infra

CustomFileSystem

  • BoxObject을 업로드한다.
    • BoxObject의 크기가 20MB를 넘어가선 안된다.
  • BoxObject을 다운로드한다.
    • BoxObject의 크기가 20MB를 넘어가선 안된다.