> ## 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.

> iOS 또는 iPadOS에서 ProbeDeck을 ClickHouse Cloud 또는 자체 호스팅 ClickHouse 서버에 연결합니다.

# ProbeDeck을 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>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<CommunityMaintainedBadge />

ProbeDeck은 ClickHouse 서버의 상태를 확인하고 `system` 테이블을 살펴보며 SQL을 실행할 수 있는 iOS 및 iPadOS 클라이언트입니다. 기기
네트워크 또는 SSH 배스천을 통해 ClickHouse HTTP 인터페이스에 연결하며, 릴레이 서버는 필요하지 않습니다.

<div id="before-you-begin">
  ## 시작하기 전에
</div>

* [App Store에서 ProbeDeck을 설치하십시오](https://apps.apple.com/app/id6791261174).
* iOS 또는 iPadOS 17.0 이상을 사용하십시오.
* 네트워크, VPN 또는
  SSH 배스천을 통해 기기에서 ClickHouse HTTP 또는 HTTPS 엔드포인트에 연결할 수 있도록 하십시오.
* 쿼리할 데이터베이스에 액세스할 수 있는 ClickHouse 사용자를 생성하십시오.
* 모니터링을 위해 관련 `system` 테이블에 대한 `SELECT` 권한을 사용자에게 부여하십시오.

| ProbeDeck | ClickHouse Cloud | 자체 호스팅 ClickHouse | 참고                                                                |
| --------- | ---------------- | ----------------- | ----------------------------------------------------------------- |
| 1.1.7 이상  | 현재 서비스           | 특정 최소 서버 버전 없음    | HTTP(S) 인터페이스를 사용합니다. 연결을 테스트하고 서버 버전 및 권한에 따라 각 모니터링 섹션을 확인하십시오. |

일부 모니터링 섹션은 선택적 로그 테이블이나 최신 시스템 테이블에 의존합니다. 예를 들어,
ProbeDeck이 구성된 메모리 제한을 확인하는 데 사용하는 `system.server_settings`는 ClickHouse
23.3 이상에서 사용할 수 있습니다. 소스를 사용할 수 없으면 ProbeDeck은 해당 섹션을 제한됨으로 표시합니다.

<div id="how-it-works">
  ## 작동 방식
</div>

1. ProbeDeck은 ClickHouse HTTP(S) 엔드포인트로 SQL 요청을 전송합니다.
2. 구성된 ClickHouse 사용자로 `system` 테이블에서 모니터링 데이터를 읽습니다.
3. 앱은 기기에 쿼리 결과와 모니터링 화면을 표시합니다. 엔드포인트에 기기에서 직접 연결할 경로가 없으면 SSH 배스천을 통해
   동일한 HTTP(S) 연결을 사용할 수 있습니다.

<div id="connect-to-clickhouse-cloud">
  ## ClickHouse Cloud에 연결
</div>

<Steps>
  <Step title="서비스 연결 정보 확인" id="gather-cloud-details">
    ClickHouse Cloud 콘솔에서 서비스를 열고 **Connect**를 선택한 다음 **HTTPS**를 선택하십시오.

    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/EDr8ydtGBgFPOQea/images/_snippets/cloud-connect-button.webp?fit=max&auto=format&n=EDr8ydtGBgFPOQea&q=85&s=97d6a020a443f1b365b017488b39d0c8" 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/EDr8ydtGBgFPOQea/images/_snippets/connection-details-https.webp?fit=max&auto=format&n=EDr8ydtGBgFPOQea&q=85&s=80369fc90cd1ac3108fe455f2426c19a" alt="ClickHouse Cloud HTTPS 연결 정보" width="1320" height="1184" data-path="images/_snippets/connection-details-https.webp" />
      </Frame>
    </div>

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

  <Step title="ProbeDeck에 연결 추가" id="add-cloud-connection">
    1. **Connections** 화면에서 \*\*+\*\*를 탭하십시오.
    2. 연결 이름과 `https://`를 제외한 호스트를 입력하십시오.
    3. **Port**를 `8443`으로 설정하고 **TLS**를 활성화하십시오.
    4. **Connect** 대화 상자에 표시된 데이터베이스 사용자 이름과 비밀번호를 입력하십시오. 데이터베이스 이름은
       선택 사항입니다.
    5. **Test Connection**을 탭하십시오. 연결 테스트에 성공하면 ProbeDeck에 서버 버전과 왕복 시간이
       표시됩니다.
    6. **Save**를 탭하십시오.

    ProbeDeck은 이 데이터베이스 자격 증명을 사용하여 서비스 엔드포인트에 대한 SQL 요청을 인증합니다.
    ClickHouse Cloud는 Cloud API 및 Query API 엔드포인트에 **API Keys** 페이지의 조직 수준 키를 사용합니다.
    ProbeDeck의 SQL 연결 과정에서는 이러한 키를 사용하지 않습니다.

    <Image img="https://mintcdn.com/private-7c7dfe99/-GwTwl23hJZldEaZ/images/integrations/sql-clients/probedeck-add-connection.png?fit=max&auto=format&n=-GwTwl23hJZldEaZ&q=85&s=ced2eba375eed25880131fd1be03bf23" size="sm" border alt="ClickHouse 사용자 이름을 사용해 포트 8443에서 HTTPS용으로 구성된 ProbeDeck 연결 양식" width="1320" height="2160" data-path="images/integrations/sql-clients/probedeck-add-connection.png" />
  </Step>
</Steps>

<div id="connect-to-self-hosted-clickhouse">
  ## 자체 호스팅 ClickHouse에 연결하기
</div>

<Steps>
  <Step title="HTTP 엔드포인트 선택" id="choose-self-hosted-endpoint">
    기본 비암호화 HTTP 인터페이스에는 포트 `8123`을 사용하십시오. HTTPS를 사용하려면 **TLS**를 활성화하고
    서버에 구성된 포트를 사용하십시오. 일반적으로 `8443`을 사용합니다.

    <Note>
      포트 `9000` 및 `9440`은 네이티브 ClickHouse 프로토콜용입니다. ProbeDeck는 HTTP(S)
      인터페이스를 사용하므로 서버의 HTTP 포트를 입력하십시오.
    </Note>
  </Step>

  <Step title="연결 추가 및 테스트" id="add-self-hosted-connection">
    1. **Connections** 화면에서 \*\*+\*\*를 탭하십시오.
    2. URL scheme를 제외한 서버 호스트를 입력하십시오.
    3. HTTP(S) 포트와 TLS 옵션을 설정하십시오.
    4. ClickHouse 사용자 이름, 비밀번호 및 선택 사항인 데이터베이스를 입력하십시오.
    5. **Test Connection**을 탭한 다음 **Save**를 탭하십시오.

    로컬 네트워크의 서버에 연결할 때 iOS에서 로컬 네트워크 권한을 요청할 수 있습니다. 엔드포인트가 회사 네트워크에서만 연결 가능한 경우, 먼저 디바이스를 VPN에 연결하십시오.
  </Step>
</Steps>

<div id="connect-through-an-ssh-bastion">
  ## SSH 배스천을 통한 연결
</div>

연결 양식에서 **SSH Tunnel**을 활성화하고 다음을 입력하십시오.

1. 배스천 호스트와 SSH 포트(기본값: `22`)
2. SSH 사용자 이름
3. SSH 비밀번호 또는 private key

ProbeDeck은 배스천에서 **Server** 섹션에 지정된 ClickHouse 호스트 및 HTTP(S)
포트로 SSH `direct-tcpip` 채널을 엽니다. 처음 연결할 때는 수락하기 전에 배스천의 SHA-256 호스트 키
지문을 서버 관리자에게 확인한 값과 비교하십시오.

<div id="configure-authentication-and-tls">
  ## 인증 및 TLS 구성
</div>

ProbeDeck은 데이터베이스 사용자 이름과 비밀번호를 `X-ClickHouse-User` 및
`X-ClickHouse-Key` 요청 헤더로 전송합니다. 자격 증명은 URL에 포함하지 않습니다.

상호 TLS를 사용하려면 **TLS Client Certificate**를 활성화하고 클라이언트 인증서와 private key가 포함된
PKCS#12 (`.p12`) 파일을 가져온 다음 패스프레이스를 입력하십시오.

자체 호스팅 엔드포인트가 self-signed 인증서 또는 private
CA에서 발급한 인증서를 제시하면 ProbeDeck은 SHA-256 지문, 발급자, 주체 및 유효 기간을 표시합니다. 수락하기 전에
지문을 서버 관리자가 제공한 값과 비교하십시오. ProbeDeck은 해당 결정을 해당 연결에 고정합니다. 인증서가 변경되면 검토할 때까지 연결이 중단됩니다.

ProbeDeck은 연결 시크릿과 가져온 키 자료를 기기의 iOS Keychain에 저장합니다.

<div id="monitor-clickhouse">
  ## ClickHouse 모니터링
</div>

저장된 연결을 열고 **모니터링**을 선택하십시오. 대시보드에서 다음 소스를 요약해 볼 수 있습니다.

| 영역                            | ClickHouse 소스                                                             |
| ----------------------------- | ------------------------------------------------------------------------- |
| 실행 중인 쿼리, 경과 시간, 메모리 및 읽은 행 수 | `system.processes`                                                        |
| 복제 상태 및 큐                     | `system.replicas`, `system.replication_queue`                             |
| 디스크, 파트 및 머지                  | `system.disks`, `system.parts`, `system.merges`                           |
| 뮤테이션                          | `system.mutations`                                                        |
| 메모리 및 서버 메트릭                  | `system.metrics`, `system.asynchronous_metrics`, `system.server_settings` |
| 쿼리 및 디스크 처리율 이력               | `system.metric_log`, `system.asynchronous_metric_log`                     |

<Image img="https://mintcdn.com/private-7c7dfe99/-GwTwl23hJZldEaZ/images/integrations/sql-clients/probedeck-dashboard.png?fit=max&auto=format&n=-GwTwl23hJZldEaZ&q=85&s=e139ac9115a93bbcbca9d344d8c94534" size="sm" border alt="실행 중인 쿼리, 복제, 디스크, 파트, 뮤테이션, 머지, 쿼리 처리율 및 메모리를 표시하는 ProbeDeck 모니터링 대시보드" width="1320" height="2868" data-path="images/integrations/sql-clients/probedeck-dashboard.png" />

**실행 중인 쿼리**를 선택하여 활성 쿼리를 경과 시간순으로 정렬하고 메모리 사용량과 읽은 행 수를 확인하십시오.

<Image img="https://mintcdn.com/private-7c7dfe99/-GwTwl23hJZldEaZ/images/integrations/sql-clients/probedeck-running-queries.png?fit=max&auto=format&n=-GwTwl23hJZldEaZ&q=85&s=b9e6312428cebde1a446e469a702dde4" size="sm" border alt="경과 시간순으로 정렬된 ProbeDeck 실행 중인 쿼리 목록" width="1320" height="2868" data-path="images/integrations/sql-clients/probedeck-running-queries.png" />

<div id="query-the-uk-property-price-dataset">
  ## UK Property Price 데이터셋 쿼리
</div>

이 예시에서는 [UK Property Price 데이터셋](/docs/ko/get-started/sample-datasets/uk-price-paid)을 사용합니다.
데이터셋을 `uk_price_paid`에 로드한 후 다음을 수행하십시오.

1. 연결을 열고 **데이터**를 선택합니다.
2. SQL Editor를 엽니다.
3. 범위가 제한된 읽기 전용 쿼리를 실행합니다.

```sql theme={null}
SELECT
    town,
    count() AS sales,
    round(avg(price)) AS average_price
FROM uk_price_paid
GROUP BY town
ORDER BY sales DESC
LIMIT 10
```

결과에는 거래 건수와 평균 가격이 포함된 10개 도시가 표시됩니다.

<div id="known-limits">
  ## 알려진 제한 사항
</div>

* ProbeDeck는 iOS 및 iPadOS 17.0 이상에서 실행됩니다.
* 무료 사용자는 한 번에 연결 1개만 저장할 수 있습니다. 연결을 삭제하면 슬롯이 비워지며, ProbeDeck Pro에서는
  연결을 무제한으로 저장할 수 있습니다.
* 네이티브 프로토콜이 아닌 ClickHouse HTTP(S) 인터페이스를 지원합니다.
* ProbeDeck는 SQL 결과를 한 페이지당 200행씩 로드하며, 각 요청은 최대 10,000행으로 제한됩니다. 대규모 테이블에는
  선택성이 높은 `WHERE` 절과 `LIMIT`를 사용하십시오.
* 모니터링에 표시되는 정보는 ClickHouse 사용자의 권한과 선택적 로그 테이블에 따라 달라집니다.
* 기기에서 네트워크, VPN 또는 기본 제공 SSH 터널을 통해 엔드포인트에 연결할 수 있어야 합니다.
* 모니터링 및 읽기 전용 SQL에는 인앱 구매가 필요하지 않습니다. `KILL QUERY`, `KILL MUTATION`,
  쓰기 및 DDL SQL 문, 기타 운영 작업에는 ProbeDeck Pro가 필요합니다.

<div id="troubleshooting">
  ## 문제 해결
</div>

<Accordion title="인증에 실패했습니다">
  데이터베이스 사용자 이름과 비밀번호를 다시 복사하십시오. ClickHouse Cloud 서비스 엔드포인트에는
  서비스의 **Connect** 대화 상자에 표시된 데이터베이스 자격 증명을 사용하십시오. ClickHouse Cloud **API Keys** 페이지의
  조직 수준 키를 대신 사용하지 마십시오.
</Accordion>

<Accordion title="연결이 거부되었거나 시간이 초과되었습니다">
  디바이스에서 호스트 및 HTTP(S) 포트에 연결할 수 있는지 확인하십시오. Cloud IP 액세스 목록, VPN,
  방화벽 및 포트 매핑을 확인하십시오. 네이티브 프로토콜 포트 `9000` 또는 `9440`은 사용하지 마십시오.
</Accordion>

<Accordion title="모니터링에 제한된 권한이 표시됩니다">
  ClickHouse 사용자가 하나 이상의 필수 `system` 테이블을 읽을 수 없습니다. 서버 관리자에게
  사용하려는 모니터링 영역에 필요한 최소 `SELECT` 권한을 요청한 후 다시 연결하십시오.
</Accordion>

<Accordion title="TLS 지문이 변경되었습니다">
  새 지문을 수락하기 전에 서버 관리자에게 인증서 교체 여부를 확인하십시오.
  예기치 않은 변경은 다른 엔드포인트나 TLS 가로채기 경로를 의미할 수 있습니다.
</Accordion>

<div id="next-steps">
  ## 다음 단계
</div>

* 제품별 세부 정보는 [ProbeDeck 웹사이트](https://probedeck.app)를 참조하십시오.
* 서버 구성에 대해서는 [ClickHouse HTTP 인터페이스 문서](/docs/ko/concepts/features/interfaces/http)를 참조하십시오.
