# Application Functions

## 개발이 완료된 기능들

### 유저 관리

* 유저의 Type은 다음과 같이 나뉩니다
  * Client
    * 자신의 Workspace에 한해 파일 및 디렉토리를 관리할 수 있습니다.
    * 개인 정보를 수정할 수 있습니다.
  * Admin
    * Client 기능은 물론, 다른 Client 계정을 관리할 수 있습니다
    * 계정을 선택할 때 사용 용량을 선택할 수 있습니다(5GB, 20GB, 500GB) 하지만 수정은 불가능합니다.

### 파일 및 디렉토리 관리

* 파일을 여러 개 업로드 할 수 있습니다.
* 파일과 디렉토리를 한꺼번에 다운받을 수 있습니다. 이 때의 추출물은 압축파일(zip)이 됩니다.
* 파일 공유
  * 오직 해당 계정만 접근할 수 있는 파일을 외부에서도 공유할 수 있습니다.
  * 공유 기간은 약 7일이며 기한이 지나면 접근할 수 없습니다.

## 차기 버전에 개발될 기능들 및 개선 방향 (v0.2.x)

### Data 검색 기능

* 파일 이름 및 타입에 따른 검색 &#x20;

### <mark style="color:red;">Web UI를 반응형 웹으로 싹 갈아엎을 예정</mark>

## 언젠간 개발될 기능 (over 0.3.x)

### Data Backup 기능 (0.3.0)

* Application 이 불가피하게 삭제가 되더라도 Database Source와 Working Directory가 남아 있다면 언제든지 복구를 할 수 있습니다.

{% hint style="info" %}
단 이 기능은 외부 Database와 외부 Storage가 있어야 사용 가능한 기능입니다.
{% endhint %}

### 태그 시스템 도입 (0.3.0)

* 파일 및 디렉토리에 여러개의 태그를 달 수 있음
* 태그 검색 가

### 데이터 분석 기능 (0.4.0)

* 파일  디렉토리 분석
* 파일 타입에 따른 분포 분석 및 시각화
* Access Time을 비교하여 쓰지않는 파일 및 디렉토리 체크

### Embeded Programming Module

* &#x20;코드를 접 작성하거나 작성된 코드를 업로드를 하고 그 상태에서 코드를 실행해서 결과값을 얻을 수 있습니다.
* 이렇게 되면 자신이 직접 만든 간단한 기능들을 자신이 로컬에서 직접 명령어를 입력하는 것이 아닌 몇 번의 클릭으로 결과물을 얻을 수 있습니다.
* 대상 언어는 아래와 같습니다(주로 Interpreter 계열을 사용합니다.)
  * Python
  * Javascript(Node.js)
* 단순히 프로그램 수행이 아닌 수행 시간과 메모리 사용 용량 도 측정할 수 있습니다.

### Plugin System 도입

* 확장 프로그램 Install를 위한 Plugin System 도입
* 공통 인터페이스를 사용해 주 어플리케이션과 Third  Party간의 통신

### API Library System 개발
