# 데이터 다루기 개요

Waveon에서 데이터를 저장하고 관리하는 방법입니다.

***

### 이 섹션에서 다루는 내용

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Data Storage Basics</strong></td><td>데이터 저장 기본 개념</td><td></td></tr><tr><td><strong>CRUD Operations</strong></td><td>생성, 조회, 수정, 삭제</td><td></td></tr><tr><td><strong>Filtering &#x26; Sorting</strong></td><td>데이터 검색, 필터, 정렬</td><td></td></tr></tbody></table>

***

### 데이터 저장 방식

#### 기본 (메모리 저장)

AI가 처음 앱을 생성하면 데이터는 **메모리에만** 저장됩니다.

* 새로고침하면 데이터 사라짐
* 테스트용으로만 사용

#### 서버 저장

데이터를 영구 저장하려면 AI에게 요청합니다.

```
데이터를 서버에 저장할 수 있게 해줘
```

저장 기능 추가 후:

* 새로고침해도 데이터 유지
* 배포 후에도 동일하게 동작
* Waveon 클라우드 DB에 저장

***

### 데이터 저장 요청 예시

#### 기본 저장

```
직원 데이터를 저장할 수 있게 해줘.
폼 제출 시 데이터베이스에 저장하고,
테이블에서 저장된 데이터를 불러와서 보여줘.
```

#### 저장 + 수정 + 삭제

```
데이터를 저장, 수정, 삭제할 수 있게 해줘.

- 폼 제출 → 새 데이터 저장
- 테이블 행 클릭 → 수정 모달
- 삭제 버튼 → 확인 후 삭제
```

#### 특정 조건 조회

```
저장된 직원 중에서 개발팀 직원만 조회해서 보여줘.
부서 필터를 선택하면 해당 부서만 표시되게.
```

***

### 데이터 구조

AI가 자동으로 데이터 구조를 생성합니다.

#### 예시: 직원 데이터

폼 필드 기준으로 데이터 구조가 결정됩니다.

```javascript
// 폼 필드
- 이름 (텍스트)
- 부서 (드롭다운)
- 이메일 (이메일)
- 입사일 (날짜)

// 생성되는 데이터 구조
{
  id: "자동 생성",
  name: "홍길동",
  department: "개발팀",
  email: "hong@company.com",
  joinDate: "2024-01-15",
  createdAt: "자동 생성"
}
```

***

### 에디터 vs 배포 환경 데이터

#### 분리된 환경

| 환경          | 데이터 위치 | 용도    |
| ----------- | ------ | ----- |
| 에디터 Preview | 개발 DB  | 테스트   |
| 배포된 앱       | 운영 DB  | 실제 사용 |

#### 주의사항

* 에디터에서 입력한 테스트 데이터는 배포 앱에 없음
* 배포 후 실제 데이터를 새로 입력해야 함

{% hint style="info" %}
**데이터 마이그레이션**

개발 데이터를 운영 환경으로 이동하려면 Admin에게 문의하세요.
{% endhint %}

***

### 외부 데이터 연동

#### REST API

외부 서비스의 API를 호출할 수 있습니다.

```
외부 API에서 상품 목록을 가져와서 테이블에 표시해줘.
API URL: https://api.example.com/products
```

→ REST API 연동

#### 파일 데이터

Excel, CSV 파일을 업로드하여 데이터를 가져올 수 있습니다.

```
[Excel 파일 업로드]
이 엑셀 파일의 데이터를 테이블에 표시하고,
수정할 수 있게 해줘.
```

***

### 데이터 관련 팁

#### 1. 명확한 필드 정의

```
직원 데이터 필드:
- id: 자동 생성 (수정 불가)
- name: 필수, 텍스트
- email: 필수, 이메일 형식
- department: 필수, 드롭다운 (개발팀/마케팅팀/영업팀)
- joinDate: 필수, 날짜
- status: 기본값 "재직중"
```

#### 2. 유효성 검사 추가

```
폼 제출 시 유효성 검사 추가해줘:
- 이름: 2글자 이상
- 이메일: 올바른 이메일 형식
- 입사일: 오늘 이전 날짜만 가능
```

#### 3. 중복 데이터 방지

```
이메일이 중복되면 저장하지 않고
"이미 등록된 이메일입니다" 에러를 보여줘.
```

***

### 다음 단계


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.waveon.io/guides/undefined.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
