---
title: Back4app에 연결하기
slug: docs-kr/get-started/parse-sdk
description: 이 가이드는 Parse SDK를 프로젝트에 설치하고 Back4app 서버에 연결하는 방법을 다룹니다.
image: https://www.back4app.com/_public/img/back4app-og.png
createdAt: 2024-01-18T15:18:12.638Z
---

이제 Back4app에서 애플리케이션을 생성했으므로, 백엔드 기능을 사용하기까지 몇 단계만 남았습니다. 이 가이드는 Parse SDK 또는 REST API를 사용하여 앱을 Back4app의 서버에 연결하는 방법을 안내합니다.

## 전제 조건

:::hint{type="info"}
**이 튜토리얼을 완료하려면 다음이 필요합니다:**

- **애플리케이션 생성**: [Back4app에서 새 앱 만들기](https://www.back4app.com/docs/get-started/new-parse-app) 아직 하지 않았다면.
- **애플리케이션 키 접근**: **서버 설정 > 핵심 설정 > 앱 ID 및 키**로 가서 키를 찾으세요. 이 키를 사용하여 Back4app에 인증합니다.
:::

## 1 - Parse SDK 설치

작업 중인 플랫폼에 따라 아래 설치 방법 중 하나를 따르세요:

### JavaScript (웹 또는 Node.js)

:::BlockQuote
\# Parse SDK 설치
$ npm install parse --save
:::

### React Native

:::BlockQuote
\# React Native용 Parse 및 AsyncStorage 설치
$ npm install parse @react-native-async-storage/async-storage --save

\# iOS용 pod install 실행
cd ios && pod install
:::

### Flutter

Parse SDK를 `pubspec.yaml`

:::BlockQuote
dependencies:
&#x20; parse\_server\_sdk\_flutter: ^latest\_version
:::

:::hint{type="info"}
최신 버전을 확인하려면 [여기.](https://pub.dev/packages/parse_server_sdk_flutter)
:::

### 안드로이드

당신의 `build.gradle` 파일(Module: app)을 열고 다음 종속성을 추가하세요:

:::BlockQuote
repositories \{
&#x20;   mavenCentral()
&#x20;   jcenter()
&#x20;   maven \{ url 'https\://jitpack.io' }
}
dependencies \{
&#x20;   implementation 'com.github.parse-community.Parse-SDK-Android\:parse\:latest\_version'
}
:::

:::hint{type="info"}
최신 버전을 확인하려면 [여기.](https://github.com/parse-community/Parse-SDK-Android)
:::

### iOS

1. CocoaPods 설치

:::BlockQuote
sudo gem install cocoapods
:::

&#x20;   2\.  Podfile에 Parse SDK 추가:

:::BlockQuote
pod 'ParseSwift'
:::

:::hint{type="info"}
Swift Package Manager(SPM) 또는 Carthage를 사용하여 ParseSwift를 설치할 수도 있습니다. 더 알아보려면 [여기](https://github.com/parse-community/Parse-Swift?tab=readme-ov-file#installation)를 클릭하세요.
:::

### PHP

1. 프로젝트 루트에 다음 내용을 포함한 `composer.json` 파일을 생성하세요:

:::BlockQuote
\{
&#x20; "require": \{
&#x20;   "parse/php-sdk": "latest\_version\_here"
&#x20; }
}
:::

그런 다음 실행하세요:

:::BlockQuote
composer install
:::

&#x20;   2\. 또는 GitHub에서 클론하세요: &#x20;

:::BlockQuote
git clone https\://github.com/parse-community/parse-php-sdk.git
:::

:::hint{type="info"}
자세한 내용은 [이 가이드](https://docs.parseplatform.org/php/guide/#installation)를 참조하세요.
:::

### .NET

1. NuGet 패키지에서 Parse SDK 추가: Visual Studio를 열고, 솔루션 탐색기로 이동하여, 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 `NuGet 패키지 관리...`
2. Parse를 검색하고 설치하세요.

:::hint{type="info"}
자세한 내용은 [이 가이드](https://github.com/parse-community/Parse-SDK-dotNET)를 참조하세요.
:::

## 2 - Parse SDK 초기화&#x20;

SDK가 설치되면 앱에서 초기화합니다. 각 플랫폼에 대한 예시는 다음과 같습니다:

:::CodeblockTabs
```javascript
// Import Parse SDK
const Parse = require('parse/node');

// Initialize with your Back4app keys
Parse.initialize("YOUR_APP_ID", "YOUR_JS_KEY");  // Replace with your App ID and JS Key
Parse.serverURL = 'https://parseapi.back4app.com';
```

RN

```javascript
import Parse from 'parse/react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';

// Set AsyncStorage
Parse.setAsyncStorage(AsyncStorage);

// Initialize Parse
Parse.initialize("YOUR_APP_ID", "YOUR_JS_KEY");  // Replace with your App ID and JS Key
Parse.serverURL = 'https://parseapi.back4app.com';
```

Flutter

```dart
import 'package:parse_server_sdk_flutter/parse_server_sdk_flutter.dart';

void main() async {
  await Parse().initialize(
    'YOUR_APP_ID',    // Replace with your App ID
    'https://parseapi.back4app.com',
    clientKey: 'YOUR_CLIENT_KEY',  // Replace with your Client Key
  );
}
```

Android

```java
Parse.initialize(new Parse.Configuration.Builder(context)
    .applicationId("YOUR_APP_ID")  // Replace with your App ID
    .clientKey("YOUR_CLIENT_KEY")  // Replace with your Client Key
    .server("https://parseapi.back4app.com")
    .build()
);
```

iOS

```swift
import ParseSwift

ParseSwift.initialize(applicationId: "YOUR_APP_ID", 
                     clientKey: "YOUR_CLIENT_KEY", 
                     serverURL: URL(string: "https://parseapi.back4app.com")!)
```

```php
require 'vendor/autoload.php';

ParseClient::initialize('YOUR_APP_ID', 'YOUR_REST_KEY', 'YOUR_MASTER_KEY');
ParseClient::setServerURL('https://parseapi.back4app.com', '/');
```

.NET

```csharp
ParseClient.Initialize(new ParseClient.Configuration {
    ApplicationId = "YOUR_APP_ID", // Replace with your App ID
    Key = "YOUR_MASTER_KEY"
    ServerURI = "https://parseapi.back4app.com/"
});
```
:::

## 3 - 첫 번째 데이터 객체 저장 및 읽기

연결이 올바르게 설정되었는지 확인하려면 Back4app 앱에서 테스트 객체를 저장하고 검색하세요. 다음은 예시입니다:

:::CodeblockTabs
```javascript
// Create and save a test object
const Person = new Parse.Object("Person");
Person.set("name", "Jon Snow");
Person.set("age", 30);

Person.save()
  .then(() => console.log("Successfully connected to Back4app!"))
  .catch((error) => console.error("Connection error:", error.message));
```

RN

```javascript
// Create and save a test object
const testConnection = async () => {
  const Person = new Parse.Object("Person");
  Person.set("name", "Jon Snow");
  Person.set("age", 30);

  try {
    await Person.save();
    console.log("Successfully connected to Back4app!");
  } catch (error) {
    console.error("Connection error:", error.message);
  }
};

testConnection();
```

Flutter

```dart
import 'package:parse_server_sdk_flutter/parse_server_sdk_flutter.dart';

// Test connection by saving an object
void testConnection() async {
  var person = ParseObject('Person')
    ..set('name', 'Jon Snow')
    ..set('age', 30);

  var response = await person.save();

  if (response.success) {
    print("Successfully connected to Back4app!");
  } else {
    print("Connection error: ${response.error?.message}");
  }
}

testConnection();
```

Android

```java
import com.parse.ParseObject;
import com.parse.SaveCallback;
import com.parse.ParseException;

// Test connection by saving an object
ParseObject person = new ParseObject("Person");
person.put("name", "Jon Snow");
person.put("age", 30);

person.saveInBackground(new SaveCallback() {
    @Override
    public void done(ParseException e) {
        if (e == null) {
            Log.i("ParseConnection", "Successfully connected to Back4app!");
        } else {
            Log.e("ParseConnection", "Connection error: " + e.getMessage());
        }
    }
});
```

iOS

```swift
import ParseSwift

// Test connection by saving an object
struct Person: ParseObject {
    var objectId: String?
    var name: String?
    var age: Int?

    // Required ParseObject properties
    var createdAt: Date?
    var updatedAt: Date?
    var ACL: ParseACL?

    init() {
        // Default empty initializer
    }
}

func testConnection() {
    var person = Person()
    person.name = "Jon Snow"
    person.age = 30

    person.save { result in
        switch result {
        case .success:
            print("Successfully connected to Back4app!")
        case .failure(let error):
            print("Connection error: \(error.localizedDescription)")
        }
    }
}

testConnection()
```

```php
require 'vendor/autoload.php';

// Create and save a test object
$person = new ParseObject("Person");
$person->set("name", "Jon Snow");
$person->set("age", 30);

try {
    $person->save();
    echo "Successfully connected to Back4app!";
} catch (ParseException $error) {
    echo "Connection error: " . $error->getMessage();
}
```

.NET

```csharp
using Parse;

// Create and save a test object
var person = new ParseObject("Person");
person["name"] = "Jon Snow";
person["age"] = 30;

await person.SaveAsync().ContinueWith(t => {
    if (t.IsCompletedSuccessfully) {
        Console.WriteLine("Successfully connected to Back4app!");
    } else {
        Console.WriteLine("Connection error: " + t.Exception?.Message);
    }
});
```

REST API

```curl
//Saving your First Data Object on Back4App

curl -X POST \
-H "X-Parse-Application-Id: APPLICATION_ID" \
-H "X-Parse-REST-API-Key: REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"John Snow","age":27}' \
https://parseapi.back4app.com/classes/Person

//Reading your First Data Object from Back4app

curl -X GET \
-H "X-Parse-Application-Id: APPLICATION_ID" \
-H "X-Parse-REST-API-Key: REST_API_KEY" \
https://parseapi.back4app.com/classes/Person/OBJECT-ID-HERE
```
:::

:::hint{type="info"}
이 코드 스니펫을 실행한 후, Back4app 대시보드를 확인하여 객체가 성공적으로 저장되었는지 확인하세요. 이는 Back4app과의 연결이 작동하고 있음을 확인합니다.
:::

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/3z1v07mHc4n6l-sslZStt_screenshot-2024-11-08-at-115652.png)

## 다음에 할 일은 무엇인가요?

빠른 시작 후, 아래 가이드를 확인하여 Back4app의 주요 기능을 계속 탐색하는 것을 권장합니다.

::::LinkArray
:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/pEkmfq5PdkxC3lmfRzYsE_1.png"}
&#x20;          **[리액트 네이티브](https://www.back4app.com/docs/react-native/parse-sdk/react-native-sdk)**
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/tPONkoW1aPPhiAdTvbvrx_sem-nome-rectangle-sticker-landscape.png"}
&#x20;               **[플러터](https://www.back4app.com/docs/flutter/parse-sdk/parse-flutter-sdk)**
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/vqJJw7ljIhPJ1Yfz7mD9n_3.png"}
&#x20;            [안드로이드 ](https://www.back4app.com/docs/android/android-project-with-source-code-download)
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/rzkB1YU-Feimt_SWfZUuC_4.png"}
&#x20;                  [iOS](https://www.back4app.com/docs/ios/ios-app-template)
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/GsQE6ru-jj2rRbUt7P3Tr_5.png"}
&#x20;          **[자바스크립트](https://www.back4app.com/docs/javascript/parse-javascript-sdk)**
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/35IqTes9QhdmijlReYBYZ_6.png"}
&#x20;              [그래프QL](https://www.back4app.com/docs/parse-graphql/graphql-getting-started)
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/D4RecbrtvjfbKUfb4yRbP_7.png"}
&#x20;                [아이오닉](https://www.back4app.com/docs/js-framework/ionic/ionic-template)
:::

:::LinkArrayItem{headerType="IMAGE" headerImage="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/yOia2J8LzE-r1WSHQ7ZSQ_8.png"}
&#x20;             [자마린](https://www.back4app.com/docs/xamarin/xamarin-templates)
:::
::::

&#x20;
