---
title: SDK로 연결된 Apps 호출하기
description: 신뢰할 수 있는 TypeScript 백엔드 코드에서 호스팅된 Connector 클라이언트를 사용하여 OOMOL 계정에
  연결된 Apps를 호출하세요.
lang: ko
canonical_url: https://oomol.com/ko/docs/connector-client/
markdown_url: https://oomol.com/ko/docs/connector-client.md
---

# SDK로 연결된 Apps 호출하기

백엔드 코드가 자신의 OOMOL 계정에 연결된 Apps를 호출해야 할 때 `Connector`을 사용하세요. 이 경로는 호스팅된 OOMOL Connector 게이트웨이와 `api_…` 형태의 개인 API 키를 사용합니다.

## SDK 설치

```sh
npm install @oomol-lab/connector
```

SDK는 Node 18 이상이 필요합니다. 표준 `fetch` 및 `AbortController` API를 제공하는 다른 환경에서도 실행되지만, 개인 API 키는 신뢰할 수 있는 백엔드 환경에 유지해야 합니다.

## 개인 API 키 생성

[OOMOL Console](https://console.oomol.com/api-key)에서 키를 생성한 다음 백엔드 시크릿으로 저장하세요:

```sh
export OOMOL_API_KEY=api_...
```

이 키를 브라우저 번들, 모바일 클라이언트, 공개 리포지토리, 프롬프트 또는 클라이언트 측 로그에 두지 마세요.

## 첫 번째 액션 실행

```ts
import { Connector } from "@oomol-lab/connector";

const oomol = new Connector({ apiKey: process.env.OOMOL_API_KEY! });

const result = await oomol.execute("gmail.search_threads", {
  query: "is:unread",
});
```

네임스페이스 형식도 동일한 액션을 실행합니다:

```ts
const result = await oomol.gmail.search_threads({ query: "is:unread" });
```

`executionId`, `actionId` 및 로그나 지원을 위한 응답 메시지도 필요할 때 `executeRaw`를 사용하세요.

## 연결된 계정 선택

동일한 제공자에 여러 연결이 있을 때 `connectionName`로 하나를 선택하세요:

```ts
await oomol.execute(
  "gmail.search_threads",
  { query: "from:ceo" },
  { connectionName: "work" },
);
```

`oomol.apps.list()`를 사용하여 현재 OOMOL 계정에서 사용 가능한 연결을 확인하세요. 연결 생성 및 제거는 OOMOL Console에서 수행됩니다.

## 액션 탐색

카탈로그를 사용하여 제공자, 액션 및 해당 런타임 스키마를 확인하세요:

```ts
const providers = await oomol.catalog.providers({ q: "mail" });
const actions = await oomol.catalog.actions("gmail");
const action = await oomol.catalog.action("gmail.search_threads");
```

업스트림 엔드포인트에 모델링된 액션이 없을 때 `proxy`을 사용하여 선택한 연결을 통해 호출하세요.

## 레퍼런스로 계속하기

정확한 액션 유형, 구성 우선순위, 재시도, 타임아웃, 취소, 프록시 동작, 오류 및 전체 `Connector` API는 [TypeScript SDK 레퍼런스](/ko/docs/connector-sdk/)를 참조하세요.

제품의 각 사용자가 별도 계정을 연결해야 할 때는 대신 [ProjectConnector](/ko/docs/project-connector/)를 사용하세요.
