---
title: 클라우드 코드 함수
slug: docs-kr/get-started/cloud-functions
description: Back4app을 활용하여 클라우드 코드로 기능 확장 및 API 호출 자동화하기.
image: https://www.back4app.com/_public/img/back4app-og.png
createdAt: 2024-01-23T19:42:51.820Z
---

**클라우드 코드**는 서버에서 JavaScript 함수를 직접 실행할 수 있게 해주는 강력한 도구로, 자체 서버를 관리할 필요 없이 애플리케이션에 고급 기능을 추가할 수 있습니다. Back4app의 환경에서 실행되므로 확장성과 단순성을 보장합니다.

클라우드 코드를 사용하면 다음을 수행할 수 있습니다:

- 이벤트에 응답하여 데이터베이스 작업을 자동화합니다.
- 요청에 대한 사용자 정의 유효성 검사를 생성합니다.
- npm 라이브러리를 사용하여 애플리케이션을 외부 서비스와 통합합니다.

## 전제 조건

:::hint{type="info"}
이 튜토리얼을 완료하려면 Back4app에서 생성된 앱이 필요합니다.&#x20;[새 앱 만들기 튜토리얼](https://www.back4app.com/docs/get-started/new-parse-app)을 따라 Back4app에서 앱을 만드는 방법을 배우세요.
:::

## 목표

- 앱에서 클라우드 함수를 배포하고 실행합니다.

## 1 - 클라우드 코드에 접근하기

Back4app 대시보드에서 **클라우드 코드** 섹션으로 이동합니다. 두 개의 주요 폴더인 `cloud`와 `public`을 찾을 수 있습니다.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/QHCbDWjHiW7Wo3QrIj64o_screenshot-2024-11-15-at-152832.png)



## 2 - main.js 파일 편집하기

main.js 파일은 Cloud Code 함수가 정의되는 곳입니다.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/8ppF7oBa6LFWR4-FpSEFd_screenshot-2024-11-15-at-153229.png)

필요한 경우, 다음을 사용하여 다른 파일에서 함수를 가져올 수 있습니다:

:::CodeblockTabs
main.js

```javascript
require('./fileName.js');
```
:::

## 3 - 첫 번째 Cloud Code 함수 만들기

기본 함수 예제는 다음과 같습니다:

- 간단한 인사 함수:

:::CodeblockTabs
main.js

```javascript
Parse.Cloud.define("hello", async (request) => {
    console.log("Hello from Cloud Code!");
    return "Hello from Cloud Code!";
});
```
:::

- 두 숫자를 더하는 함수:

```javascript
Parse.Cloud.define("sumNumbers", async (request) => {
    return request.params.number1 + request.params.number2;
});
```

## 4- 코드를 서버에 배포하기

함수가 준비되면 **Deploy** 버튼을 클릭하여 Back4app 환경에 게시하세요.&#x20;

## 5 - 클라우드 코드 함수 테스트

cURL 또는 선호하는 SDK와 같은 도구를 사용하여 API를 통해 함수를 직접 테스트할 수 있습니다. 아래는 `hello` 함수를 호출하는 예입니다:

:::CodeblockTabs
```javascript
Parse.Cloud.run('hello')
  .then((result) => {
    console.log(result); // Output: "Hello from Cloud Code!"
  })
  .catch((error) => {
    console.error('Error:', error);
  });
```

Flutter

```dart
ParseCloudFunction function = ParseCloudFunction('hello');
ParseResponse response = await function.execute();

if (response.success) {
  print(response.result); // Output: "Hello from Cloud Code!"
} else {
  print('Error: ${response.error.message}');
}
```

Android

```java
ParseCloud.callFunctionInBackground("hello", new HashMap<>(), new FunctionCallback<Object>() {
    @Override
    public void done(Object result, ParseException e) {
        if (e == null) {
            Log.d("Cloud Code", result.toString()); // Output: "Hello from Cloud Code!"
        } else {
            Log.e("Cloud Code Error", e.getMessage());
        }
    }
});
```

iOS

```swift
ParseCloud.callFunction("hello", parameters: nil) { result in
    switch result {
    case .success(let response):
        print("Response: \(response)") // Output: "Hello from Cloud Code!"
    case .failure(let error):
        print("Error: \(error.localizedDescription)")
    }
}
```

.NET

```csharp
var result = await ParseCloud.CallFunctionAsync<string>("hello", null);
Console.WriteLine(result); // Output: "Hello from Cloud Code!"
```

```php
use Parse\ParseCloud;

try {
    $result = ParseCloud::run("hello");
    echo $result; // Output: "Hello from Cloud Code!"
} catch (Exception $ex) {
    echo "Error: " . $ex->getMessage();
}
```

REST API

```curl
curl -X POST \
-H "X-Parse-Application-Id: APPLICATION-ID" \
-H "X-Parse-REST-API-Key: REST-API-KEY" \
--data-urlencode "" \
https://parseapi.back4app.com/functions/hello
```
:::

## 6 - 추가 기능

- **데이터 조작**: 특정 기능을 사용하여 데이터베이스에서 객체를 생성, 편집 또는 검색합니다. 예를 들어 ToDo 항목을 생성하는 예는 다음과 같습니다:

:::CodeblockTabs
main.js

```javascript
Parse.Cloud.define("createToDo", async (request) => {
    const todo = new Parse.Object('ToDo');
    todo.set('title', request.params.title);
    todo.set('done', request.params.done);
    return await todo.save();
});
```
:::

- **고급 쿼리**: 데이터베이스에서 직접 정보를 검색합니다:

:::CodeblockTabs
main.js

```javascript
Parse.Cloud.define("getListToDo", async (request) => {
    const query = new Parse.Query("ToDo");
    query.equalTo("done", true);
    query.descending("title");
    return await query.find();
});
```
:::

## 결론

Cloud Code를 사용하면 강력하고 맞춤화된 솔루션을 손쉽게 구축할 수 있습니다. 자동화, 통합 및 검증에 이상적이며 Flutter, React Native 또는 REST API와 같은 모든 기술과 원활하게 작동합니다.

문제가 발생하면 [Back4app 지원 팀](https://www.back4app.com/support)이 도움을 드릴 수 있습니다.
