---
title: 객체 업데이트 중
slug: docs-kr/parse-graphql/graphql-mutation-update-object
description: Parse GraphQL로 기존 객체 업데이트: 일반 변형과 클래스 변형 활용 가이드
image: https://www.back4app.com/images/logo-social.png
createdAt: 2024-02-26T18:36:28.483Z
---

# Parse GraphQL API를 통한 객체 업데이트

## 문제

Parse GraphQL API를 통해 데이터베이스에 있는 기존 객체를 업데이트하고자 합니다.

## 해결책

Parse GraphQL을 사용하여 데이터베이스에 있는 기존 객체를 업데이트하는 두 가지 방법이 있습니다:

- [일반 변형 사용 ](https://www.back4app.com/docs/parse-graphql/graphql-mutation-update-object#mutation-generic)- 이는 객체의 클래스에 아직 속하지 않는 필드를 설정하려는 경우 사용해야 하는 변형입니다.
- [클래스 변형 사용 ](https://www.back4app.com/docs/parse-graphql/graphql-mutation-update-object#mutation-class)- 이는 객체의 클래스에 이미 업데이트하려는 모든 필드가 있는 경우 권장되는 변형입니다.

## 버전 정보

실행할 Parse 버전에 따라 GraphQL 쿼리, 변형 및 결과가 약간 다를 수 있습니다.
실행 중인 Parse 버전과 함께 올바른 예제를 선택하십시오.

### 일반 변형 사용하기

일반 변형인 <font color="#2166ae">`update`</font>를 사용할 때, Parse Server는 스키마 없는 데이터베이스처럼 동작합니다. 즉, 객체의 모든 필드를 미리 정의할 필요가 없다는 의미입니다. 업데이트하려는 필드만 전송하면 Parse Server는 이를 저장할 뿐만 아니라 학습하고, 이 객체의 클래스에 새로운 필드를 자동으로 생성합니다.

따라서 객체의 <font color="#2166ae">`update`</font> 일반 변형은 객체의 클래스에 아직 속하지 않는 필드를 설정하려는 경우 기존 객체를 업데이트하는 데 반드시 사용해야 하는 방법입니다. 실제로 이 변형을 사용하여 기존 객체를 업데이트할 수 있지만, 객체의 클래스에 업데이트하려는 모든 필드가 이미 있는 경우 [클래스 변형](https://www.back4app.com/docs/parse-graphql/graphql-mutation-update-object#mutation-class)을 사용하는 것이 좋습니다.

:::hint{type="info"}
이 예제는 기존 객체의 <font color="#2166ae">`className`</font>과 <font color="#2166ae">`objectId`</font>를 사용할 때만 작동합니다. [객체 생성](https://www.back4app.com/docs/parse-graphql/graphql-mutation-create-object) 레시피를 사용하여 객체를 생성할 수 있습니다.
:::

## Parse 3.8.0

:::CodeblockTabs
Request

```graphql
1   mutation UpdateObject {
2     update(className: "Hero", objectId: "rR8jmFRnkS", fields: { height: 5.6 }) {
3       updatedAt
4     }
5   }
```

Response

```graphql
1   {
2     "data": {
3       "updateHero": {
4        "updatedAt": "2019-11-04T13:28:44.150Z"
5       }
6     }
7   }
```
:::

### 예제 Parse 3.9.0 및 이후 버전:

Parse 3.9.0 및 이후 버전에서는 일반 메서드 UPDATE가 없습니다. 객체를 업데이트하려면 아래의 특정 메서드를 사용해야 합니다.

### 클래스 변형 사용

응용 프로그램의 스키마에서 객체의 클래스를 이미 생성한 경우(예: [객체 생성](https://www.back4app.com/docs/parse-graphql/graphql-mutation-create-object#mutation-generic) 레시피 사용), Parse Server는 즉시 GraphQL API에 이 클래스의 기존 객체를 업데이트하기 위한 새로운 <font color="#2166ae">`update<ClassName>`</font> 변형을 추가합니다.

따라서 객체의 클래스 변형은 객체의 클래스에 업데이트하려는 모든 필드가 이미 있는 경우 기존 객체를 업데이트하는 데 권장되는 방법입니다. 이 변형은 클래스의 데이터를 알고 있으므로 코드 자동 완성 및 유효성 검사와 같은 추가 기능을 자동으로 사용할 수 있습니다. 또한 클래스 업데이트 변형을 통해 날짜, 포인터, 관계, 파일, 지리적 포인트, 다각형 또는 바이트를 전송할 때 데이터 유형을 지정할 필요가 없습니다.

:::hint{type="info"}
이 예제는 클래스의 변형을 사용하고 <font color="#2166ae">`objectId`</font> 또는 <font color="#2166ae">`id`</font>가 있는 기존 객체를 사용할 때만 작동합니다. [객체 생성](https://www.back4app.com/docs/parse-graphql/graphql-mutation-create-object) 레시피를 사용하여 객체를 생성할 수 있습니다. 객체의 클래스는 업데이트하려는 모든 필드를 가져야 합니다. [일반 변형](https://www.back4app.com/docs/parse-graphql/graphql-mutation-update-object#mutation-generic)을 사용하여 새 필드를 생성할 수 있습니다.
:::

## Parse 3.10.0 및 이후 버전

:::CodeblockTabs
Request

```graphql
1   mutation UpdateObject {
2     updateHero(input: {
3       id: "SGVybzpVRm5TVDM1YnBp"
4       fields: {
5         height: 5.6
6       }
7     }){
8       hero{
9         updatedAt
10      }
11    }
12  }
```

Response

```graphql
1   {
2     "data": {
3       "updateHero": {
4         "hero": {
5           "updatedAt": "2020-02-06T13:31:49.866Z"
6         }
7       }
8     }
9   }
```
:::

## 이전 Parse 서버 버전

::::ExpandableHeading
**Parse 3.9.0**

**클래스 변형:**

:::CodeblockTabs
Parse 서버 3.9.0

```graphql
1   mutation UpdateObject {
2     updateHero(id: "CkhurmMjZW" fields:{
3       height: 5.6
4     }){
5       updatedAt
6     }
7   }
```

결과 Parse 3.9.0

```graphql
1   {
2     "data": {
3       "updateHero": {
4         "updatedAt": "2019-11-04T13:30:20.457Z"
5       }
6     }
7   }
```
:::
::::

::::ExpandableHeading
**파서 3.8.0**

**클래스 변형:**

:::CodeblockTabs
요청

```graphql
1   mutation UpdateObject {
2     updateHero(objectId: "rR8jmFRnkS" fields:{
3       height: 5.6
4     }){
5       updatedAt
6     }
7   }
```

응답

```graphql
1   {
2     "data": {
3       "updateHero": {
4         "updatedAt": "2019-11-04T13:38:46.343Z"
5       }
6     }
7   }
```
:::


::::

::::ExpandableHeading
**파서 3.7.2**

**일반 변형:**

:::CodeblockTabs
파서 서버 3.7.2

```graphql
1   mutation UpdateObject {
2     objects {
3       update(className: "Hero", objectId: "ffyOBOTk85", fields: { height: 5.6 }) {
4         updatedAt
5       }
6     }
7   }
```

결과 파서 3.7.2

```graphql
1   {
2     "data": {
3       "objects": {
4         "update": {
5           "updatedAt": "2019-07-15T05:57:14.416Z"
6         }
7       }
8     }
9   }
```
:::

**클래스 변형:**

:::CodeblockTabs
파서 서버 3.7.2

```graphql
1   mutation UpdateHero {
2     objects {
3       updateHero(objectId: "jJH0aQQjfs", fields: { height: 3.6 }) {
4         updatedAt
5       }
6     }
7   }
```

결과 파서 3.7.2

```graphql
1   {
2     "data": {
3       "objects": {
4         "updateHero": {
5           "updatedAt": "2019-07-15T05:51:25.572Z"
6         }
7       }
8     }
9   }
```
:::
::::

