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

# getHealth 사용 방법

> getHealth 사용 사례, 코드 예제, 요청 매개변수, 응답 구조 및 팁을 학습하세요.

[`getHealth`](https://www.helius.dev/docs/api-reference/rpc/http/gethealth) 엔드포인트는 Solana RPC 노드의 현재 상태를 확인하는 데 사용됩니다. 정상적인 노드는 일반적으로 작동 중이며 클러스터의 나머지 부분과 적절히 동기화된 것으로 간주됩니다 (특히 최신 클러스터 확인 슬롯과 특정 슬롯 거리 이내인 경우 `HEALTH_CHECK_SLOT_DISTANCE`).

이 엔드포인트는 특히 RPC 노드의 가용성과 신뢰성에 의존하는 애플리케이션이나 인프라에서 노드 상태를 모니터링하는 데 중요합니다.

## 작동 원리

`getHealth` 메소드는 표준 JSON-RPC POST 메커니즘을 사용하여 `getHealth` 메소드를 사용합니다. 이 메소드는 RPC 노드가 건강하고 Solana 클러스터와 동기화된 상태인지 확인합니다.

## 일반적인 사용 사례

* **노드 모니터링:** RPC 노드의 건강 상태를 정기적으로 확인하여 작동 및 동기화를 보장합니다.
* **부하 분산:** 부하 분산 설정에서 노드가 트래픽을 받아야 하는지 여부를 결정하는 데 건강 검사를 사용합니다.
* **페일오버 시스템:** 주요 노드가 건강하지 않은 경우 백업 노드로 페일오버를 트리거합니다.
* **연결 문제 디버깅:** RPC 노드가 응답 가능한지 빠르게 확인합니다.

## 요청 매개변수

이 메소드는 매개변수를 필요로 하지 않습니다.

## 응답 구조

* **JSON-RPC `getHealth` POST의 경우:**
  * **`result`**: 노드가 정상일 경우 `"ok"`을 반환합니다.
  * 건강하지 않은 경우, 오류 객체나 다른 문자열 값(`"behind"` 또는 `"unknown"` 등)을 반환할 수 있지만, 건강하지 않은 노드의 정확한 오류 응답은 불안정하거나 제공자 간에 다를 수 있습니다.

## 예시

### 1. JSON-RPC를 사용하여 노드 상태 확인 (cURL로 POST)

<CodeGroup>
  ```bash cURL (JSON-RPC POST) theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getHealth"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function checkRpcHealth(rpcUrl) {
      const connection = new Connection(rpcUrl);
      try {
          const health = await connection.rpcRequest('getHealth', []);
          console.log(`getHealth result for ${rpcUrl}:`, health);
          return health.result;
      } catch (error) {
          console.error(`Error calling getHealth for ${rpcUrl}:`, error.message);
          return null;
      }
  }

  // Example usage:
  checkRpcHealth('https://mainnet.helius-rpc.com/?api-key=<api-key>');
  ```
</CodeGroup>

**기대되는 JSON-RPC 응답 (정상 노드의 경우):**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": "ok",
  "id": 1
}
```

## 개발자 팁

* **건강의 정의:** "정상"이란 일반적으로 노드가 응답 가능하고 클러스터 팁에서 크게 뒤처지지 않는 것을 의미합니다. 정확한 슬롯 차이(`HEALTH_CHECK_SLOT_DISTANCE`)는 노드에서 구성할 수 있습니다.
* **`"behind"` 또는 `"unknown"` 해석:** `"behind {distance}"` 또는 `"unknown"`을 받으면 노드는 작동 중이지만 완료되지 않거나 클러스터와의 상태를 확인할 수 없을 수 있습니다. 애플리케이션 요구사항에 따라 이러한 상태를 다르게 처리할 수 있습니다.
* **제공자 차이:** 건강하지 않은 노드에 대한 정확한 동작 및 응답 코드/본문은 RPC 제공자 간에 약간 다를 수 있습니다.
* **오류 처리:** 네트워크 문제나 노드 문제로 인해 요청이 완전히 실패할 수 있으므로 `getHealth` 호출 시 항상 올바른 오류 처리를 구현하십시오.

이 가이드는 Solana RPC 노드의 상태를 모니터링하기 위해 `getHealth` 엔드포인트를 사용하는 데 필요한 정보를 제공합니다.
