> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Embeddable은 앱에 빠르고 인터랙티브하며 완전히 맞춤화된 분석 경험을 직접 구축할 수 있도록 지원하는 개발자 툴킷입니다.

# Embeddable을 ClickHouse에 연결하기

export const CommunityMaintainedBadge = () => {
  return <div className="CommunityMaintainedBadge">
            <div className="CommunityMaintainedIcon">
            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256">
                <path d="M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z"></path>
            </svg>
        </div>
            커뮤니티에서 관리
        </div>;
};

<CommunityMaintainedBadge />

[Embeddable](https://embeddable.com/)에서는 [데이터 모델](https://docs.embeddable.com/data-modeling/introduction)과 [컴포넌트](https://docs.embeddable.com/development/introduction)를 코드로 정의하고(자체 코드 리포지토리에 저장), **SDK**를 사용해 팀이 강력한 Embeddable **노코드 빌더**에서 이를 활용할 수 있도록 합니다.

그 결과, 제품에 빠르고 인터랙티브한 고객 대상 분석 기능을 직접 제공할 수 있습니다. 제품 팀이 설계하고, 엔지니어링 팀이 구축하며, 고객 접점 팀과 데이터 팀이 유지 관리합니다. 말 그대로 이상적인 방식입니다.

기본 제공되는 행 수준(row-level) 보안을 통해 각 사용자는 허용된 데이터만 정확히 볼 수 있습니다. 또한 완전히 구성 가능한 두 단계의 캐싱을 통해 대규모 환경에서도 빠른 실시간 분석을 제공할 수 있습니다.

<Steps>
  <Step title="연결 세부 정보 수집" id="1-gather-your-connection-details">
    HTTP(S)로 ClickHouse에 연결하려면 다음 정보가 필요합니다.

    | 매개변수                      | 설명                                                         |
    | ------------------------- | ---------------------------------------------------------- |
    | `HOST` and `PORT`         | 일반적으로 TLS를 사용하는 경우 포트는 8443, TLS를 사용하지 않는 경우 8123입니다.      |
    | `DATABASE NAME`           | 기본적으로 `default`라는 이름의 데이터베이스가 제공되며, 연결할 데이터베이스 이름을 사용하십시오. |
    | `USERNAME` and `PASSWORD` | 기본 사용자 이름은 `default`입니다. 사용 사례에 맞는 사용자 이름을 사용하십시오.         |

    ClickHouse Cloud 서비스의 연결 정보는 ClickHouse Cloud 콘솔에서 확인할 수 있습니다.
    서비스를 선택한 다음 **Connect**를 클릭하십시오.

    <div className="ch-image-md">
      <Frame>
        <img src="https://mintcdn.com/private-7c7dfe99/CFFsa2agBPbviR4r/images/_snippets/cloud-connect-button.webp?fit=max&auto=format&n=CFFsa2agBPbviR4r&q=85&s=ec0a298a33ca841e947fa5e8bae47362" alt="ClickHouse Cloud 서비스 연결 버튼" width="998" height="932" data-path="images/_snippets/cloud-connect-button.webp" />
      </Frame>
    </div>

    **HTTPS**를 선택하십시오. 연결 정보가 예시 `curl` 명령으로 표시됩니다.

    <div className="ch-image-md">
      <Frame>
        <img src="https://mintcdn.com/private-7c7dfe99/CFFsa2agBPbviR4r/images/_snippets/connection-details-https.webp?fit=max&auto=format&n=CFFsa2agBPbviR4r&q=85&s=cb0fbd98aa2b5b7ca484c9f53395ee07" alt="ClickHouse Cloud HTTPS 연결 정보" width="1320" height="1184" data-path="images/_snippets/connection-details-https.webp" />
      </Frame>
    </div>

    자가 관리형 ClickHouse를 사용하는 경우 연결 정보는 ClickHouse 관리자가 설정합니다.
  </Step>

  <Step title="ClickHouse 연결 유형 생성" id="2-create-a-clickhouse-connection-type">
    Embeddable API를 사용해 데이터베이스 연결을 추가합니다. 이 연결은 ClickHouse 서비스에 접속하는 데 사용됩니다. 다음 API 호출로 연결을 추가할 수 있습니다.

    ```javascript title="Query" theme={null}
    // 보안상의 이유로, 이 코드는 클라이언트 측에서 *절대* 호출해서는 안 됩니다
    fetch('https://api.embeddable.com/api/v1/connections', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        Accept: 'application/json',
        Authorization: `Bearer ${apiKey}` /* API Key를 안전하게 보관하십시오 */,
      },
      body: JSON.stringify({
        name: 'my-clickhouse-db',
        type: 'clickhouse',
        credentials: {
          host: 'my.clickhouse.host',
          user: 'clickhouse_user',
          port: 8443,
          password: '*****',
        },
      }),
    });
    ```

    ```text title="Response" theme={null}
    Status 201 { errorMessage: null }
    ```

    위 내용은 `CREATE` 작업을 나타내지만, 모든 `CRUD` 작업을 사용할 수 있습니다.

    `apiKey`는 Embeddable 대시보드 중 하나에서 "**Publish**"를 클릭하면 확인할 수 있습니다.

    `name`은 이 연결을 식별하는 고유한 이름입니다.

    * 기본적으로 데이터 모델은 "default"라는 연결을 찾습니다. 하지만 서로 다른 데이터 모델을 서로 다른 연결에 연결할 수 있도록 모델에 다른 `data_source` 이름을 지정할 수 있습니다(모델에서 data\_source 이름만 지정하면 됩니다).

    `type`은 Embeddable에서 어떤 드라이버를 사용할지 지정합니다

    * 여기서는 `clickhouse`를 사용하면 되지만, 하나의 Embeddable 워크스페이스에 여러 데이터 소스를 연결할 수 있으므로 `postgres`, `bigquery`, `mongodb` 등 다른 유형도 사용할 수 있습니다.

    `credentials`는 드라이버에 필요한 자격 증명을 포함하는 JavaScript 객체입니다

    * 이 정보는 안전하게 암호화되며, 데이터 모델에 정의한 데이터를 정확히 가져오는 데만 사용됩니다.
      Embeddable은 각 연결마다 읽기 전용 데이터베이스 사용자를 생성할 것을 강력히 권장합니다(Embeddable은 데이터베이스에서 읽기만 하며, 쓰기는 하지 않습니다).

    prod, qa, test 등 여러 환경의 서로 다른 데이터베이스에 연결해야 하거나(또는 고객별로 서로 다른 데이터베이스를 지원해야 하는 경우), 각 연결을 환경에 할당할 수 있습니다([Environments API](https://docs.embeddable.com/data/environments) 참조).
  </Step>
</Steps>
