diff --git a/source/entryjs/api/2024-04-24-ml.md b/source/entryjs/api/2024-04-24-ml.md
index b98e08f2..c89c4f2d 100644
--- a/source/entryjs/api/2024-04-24-ml.md
+++ b/source/entryjs/api/2024-04-24-ml.md
@@ -51,6 +51,7 @@ updated: 2024-04-24
- [dataApi](#dataApi)
+ - [Api 함수 리스트](#Api-함수-리스트)
@@ -259,7 +260,7 @@ this.learningPopup = new Popup({
| --------- | -------------- | ------ | ------------------------------------------ | ------------------------------------------------------------ |
| container | HTMLDivElement | ✔️ | document.createElement('div')
| 팝업을 띄울 DOM 컨테이너 |
| isShow | Boolean | ✔️ | true | 팝업 생성시 노출여부 |
-| dataApi | String | | | 데이터를 받아오기 위한 api url입니다.
자세한 내용은 [dataApi](#dataApi)에서 기술합니다. |
+| dataApi | Class | | | 학습 데이터를 관리하기 위한 api 클래스 입니다.
자세한 내용은 [dataApi](#dataApi)에서 기술합니다. |
| i18n | Object | | | 다국어 정보입니다. [다국어 에셋(i18n)](#다국어-에셋(i18n))에서 데이터를 제공합니다. |
| data | Object | ✔️ | { } | 팝업에 띄울 여러 데이터(ex. 테이블 정보) |
@@ -697,10 +698,217 @@ this.learningPredict.on('stop', () = > {
-## dataApi
+## dataApi > 작성중
-- 작성중
+entry-ml은 Popup 인스턴스를 초기화할 때 dataApi 값을 설정해야 합니다.
+dataApi는 학습 데이터를 관리하기 위한 api들을 포함하는 클래스입니다.
+
+각 클래스의 구현내용은 [entry-ml > dataApi]()(링크 추가 작성중) 에서 확인 가능합니다.
+
+```js
+this.dataApi = new EntryMlDataApi();
+Entry.aiLearning.setDataApi(this.dataApi);
+```
+
+
+
+### Api 함수 리스트
+
+#### getModelSaveUrl
+
+저장할 api의 url을 반환합니다.
+
+tensorflow JS를 사용하는 타입인 'Image', 'Speech', 'ImageClassification', 'LogisticRegression', 'Regression', 'SpeechClassification' 에서 사용합니다.
+
+- return : string
+
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ---- |
+| modelId | String | | | |
+
+
+
+#### getModelDownloadUrl
+
+모델이 저장된 위치의 url을 반환합니다.
+
+실제 모델 파일이 저장된 위치를 의미합니다.
+
+- return : string
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ---- |
+| basePath | String | | | |
+
+
+
+#### loadModel
+
+'학습할 모델 선택하기' > '모델 학습하기' 에서 불러올 본 모델 데이터를 로드합니다.
+
+'saveModel' api 함수로 저장한 데이터를 로드합니다.
+
+- return : Promise< any >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| ------------------------------------------------------------ | ---- | ------ | ------ | ---- |
+| {
model?: File;
weight?: File;
url?: string;
modelId?: string;
} | | | | |
+
+
+
+#### loadModels
+
+'학습할 모델 선택하기' 팝업에서 필요한 모델 메타데이터들을 로드합니다.
+
+'saveModels' api 함수로 저장한 데이터들을 로드합니다.
+
+- return : Promise>
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ---- |
+| project | string | ✔️ | | |
+
+
+
+#### saveModel
+
+tensorflow JS를 사용하지 않는 모델을 저장합니다.
+
+- return : Promise< [IUploadModel]()링크작성중 >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | --------------------------- | ------ | ------ | ---- |
+| modelId | string | | | |
+| project | [IUploadModel]()링크 작성중 | | | |
+
+
+
+#### saveModelFile
+
+tensorflow JS를 사용하는 모델을 저장합니다.
+
+파라미터로 넘겨준 url로 모델파일을 stream 형태로 저장합니다.
+
+```js
+// 압축해제 관련 예시 코드
+```
+
+return : Promise< string >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | -------- | ------ | ------ | ---- |
+| url | string | | | |
+| formData | FormData | | | |
+
+
+
+#### deleteModel
+
+파라미터로 입력받은 id의 모델을 제거합니다.
+
+- return : Promise< void >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | --------------------- |
+| modelId | string | | | 제거할 모델 id입니다. |
+
+
+
+#### copyModel
+
+파라미터로 입력받은 id의 모델을 복사합니다.
+
+- return : Promise< void >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | --------------------- |
+| modelId | string | | | 복사할 모델 id입니다. |
+
+
+
+#### downloadModel
+
+파라미터로 입력받은 id의 모델을 다운로드 합니다.
+
+- return : Promise< void >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ------------------------- |
+| modelId | string | | | 다운로드할 모델 id입니다. |
+
+
+
+#### uploadModel
+
+- return : Promise< [IUploadModel]()링크작성중 >
+
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | -------- | ------ | ------ | ---- |
+| data | FormData | | | |
+
+
+
+#### getGroupData
+
+이미 한 번 이상 학습하여 저장된 데이터 데이터 모델을 가져오는 api입니다.
+
+'학습할 모델 선택하기' 팝업의 '나의 모델' 탭에서 필요한 모델 그룹을 호출합니다.
+
+- return : Promise< [IGroupData]()링크 작성중 >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ---- |
+| modelId | string | | | |
+| groupId | string | | | |
+
+
+
+#### saveData
+
+'speech', 'image' 타입의 모델처럼, '테이블' 이외에 '모델 학습하기'에서 생성한 입력 데이터를 단건으로 서버에 저장합니다.
+
+- return : Promise<{ data:any }>
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ---------------------- | ------ | ------ | ---- |
+| data | [apiData]()링크 작성중 | | | |
+
+
+
+#### deleteData
+
+'speech', 'image' 타입의 모델처럼, '테이블' 이외에 '모델 학습하기'에서 생성한 입력 데이터를 단건으로 제거합니다.
+
+- return : Promise< void >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ---- |
+| key | string | | | |
+
+
+
+#### getImageFile
+
+- return : Promise< File >
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------------------------------------------------------------ | ------ | ------ | ---- |
+| data | {
filename:string;
_id: string;
data: string;
} | | | |
+
+
+
+#### getSoundData
+
+- return : Promise<{url:string;} | {dataUrl: string, buffer: ArrayBuffer}>
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------------------------------------------------------------ | ------ | ------ | ---- |
+| data | {
filename:string;
_id: string;
data: string;
} | | | |
+
+
@@ -938,3 +1146,6 @@ this.learningPredict.on('stop', () = > {
"remove_current_model_fail": "작품에 적용된 모델은 삭제할 수 없습니다.\n먼저 적용을 해제해 주세요"
}
```
+
+
+