# 라이선스 서버 테스트

> Test the Unity Licensing Server to make sure it's properly set up.

이 작업은 [Unity Licensing Server 설정](./server-setup.md)을 위한 포괄적인 프로세스의 일부입니다.

[라이선스 아카이브 파일을 다운로드 및 임포트](./server-setup-lic.md)한 후 다음 수준의 피드백 중 하나를 검색하여 라이선스 서버를 테스트합니다.

* [기본](#basic-test-report): 상태, 마지막으로 시작한 이후 시간, 서버 버전 정보가 포함됩니다.
* [확장](#extended-test-report): 기본 정보에 추가로 머신 바인딩, 라이선스 구성, 데이터베이스 정보가 포함됩니다.

서버를 테스트하려면 다음을 수행합니다.

1. PowerShell 또는 터미널 창에서 Unity 라이선스 서버 시작 디렉토리로 이동하여 다음 커맨드를 실행합니다.

   * **Linux**: `./Unity.Licensing.Server`
   * **Windows**: `.\Unity.Licensing.Server.exe`

2. 다음 두 서버 엔드포인트 중 하나에 액세스합니다.

   * **기본**용: `http[s]://<SERVER-IP-ADDRESS>:<PORT>/v1/status`
   * **확장**용: `http[s]://<SERVER-IP-ADDRESS>:<PORT>/v1/admin/status`

`serverStatus` 정보가 **Healthy**로 나타나면 서버가 제대로 작동하는 것입니다.

## 여러 제품 라이선스 지원

다양한 제품에 대한 라이선스로 서버를 구성할 수 있습니다. 특정 권한 세트가 포함된 라이선스 파일은 각 제품을 나타냅니다. 모든 파일은 아카이브로 제공되며 [import](./server-setup-lic.md) 커맨드를 사용하여 임포트할 수 있습니다.

서버에서 여러 제품 라이선스를 사용할 수 있는 경우 하나의 라이선스를 기본값으로 설정하고 선택적으로 특정 라이선스를 사용하도록 클라이언트 컴퓨터를 설정할 수 있습니다. `toolset` 클라이언트 구성 키를 사용하여 특정 라이선스를 요청하도록 클라이언트를 구성할 수 있습니다. 자세한 내용은 [클라이언트 설정](./client-config.md)에서 [구성 파일 복사](./client-config.md#copying-the-configuration-file)를 참고하십시오.

클라이언트가 특정 제품 라이선스를 요청하도록 구성되지 않은 경우 서버에서 기본 라이선스를 제공합니다. 클라이언트가 특정 제품 라이선스를 요청하도록 구성된 경우에는 특정 제품 라이선스가 사용 가능한 한 서버에서 해당 라이선스를 제공합니다.

## 기본 테스트 보고서##basic-test-report

버전 2.0 이상의 경우 [관리 대시보드](./server-admin-dash.md)를 사용하여 상태를 비롯한 기본 서버 정보를 확인할 수 있습니다. **개요** 페이지 > **서버 상태 보고서**에서 서버 상태가 `Healthy`인지 확인합니다.

모든 버전에서 서버에 대한 기본 정보를 확인하려면
`<PROTOCOL />://<SERVER-IP-ADDRESS>:<PORT>/v1/status`로 이동합니다.

* `<PROTOCOL />`은 설정 시 선택한 프로토콜에 따라 `http` 또는 `https`입니다.
* `<SERVER-IP-ADDRESS />`와 `<PORT>`는 설정 중에 지정한 값입니다.

예:

```bash
http://10.255.255.192:80/v1/status
```

이 엔드포인트에서 확인할 수 있는 정보는 다음과 같습니다.

| **엔트리**        | **설명**                                          |
| -------------- | ----------------------------------------------- |
| serverStatus   | 서버 구성이 올바르고 라이선스를 제공할 준비가 되었음을 나타내는 `Healthy` 값 |
| serverUpTime   | 마지막 서버 시작 이후 경과된 시간과 현재 날짜 시간                   |
| serverUpTimeMs | 마지막 서버 시작 이후 경과된 시간(밀리초 기준)과 현재 날짜 시간           |
| version        | 라이선스 서버 버전                                      |

예를 들어 출력은 다음과 유사합니다.

```json
{
    "serverStatus": "Unhealthy",
    "serverUpTime": "0 days 1 hours 41 minutes 3 seconds",
    "serverUpTimeMs": 6063668,
    "version": "1.7.0.7cc2de3"
}
```

## 확장 테스트 보고서##extended-test-report

버전 2.0 이상의 경우 [관리 대시보드](./server-admin-dash.md)에 `admin`으로 로그인하여 상태를 비롯한 서버에 대한 자세한 정보를 확인할 수 있습니다. **개요** 페이지 > **서버 상태 보고서**에서 **상태** 값이 모두 `Healthy`인지 확인합니다.

모든 버전에서 확장 테스트 보고서에 액세스하려면
`<PROTOCOL />://<SERVER-IP-ADDRESS>:<PORT>/v1/admin/status`로 이동합니다.

* `<PROTOCOL />`은 설정 시 선택한 프로토콜에 따라 `http` 또는 `https`입니다.
* `<SERVER-IP-ADDRESS>`와 `<PORT>`는 설정 중에 지정한 값입니다.

예:

```bash
http://10.255.255.192:80/v1/admin/status
```

확장 테스트 보고서에는 기본 보고서의 정보에 머신 바인딩, 라이선스 구성, 데이터베이스 정보 등 서버에 대한 정보가 추가됩니다.

확장된 테스트 보고서에 액세스하려면 IP 주소가 관리자 IP 허용 목록에 있어야 합니다. 자세한 내용은 [고급 서버 구성](./server-admin.md#advanced-server-configuration)의 `adminIpAllowlist` 키를 참조하십시오. 관리 API에 무단으로 액세스하려고 시도하면 다음과 같은 오류가 반환됩니다.

```bash
"title": "Unauthorized Admin Action"
"status": 401
"detail": "The administrative request could not be completed because the user is not authorized"
```

관리 API의 확장 테스트 보고서 출력은 다음과 비슷합니다.

```json
{
    "serverContext": {
        "data": {
            "FirstPhysicalAddress": "42:01:00:00:00:1b",
            "Platform": "Unix",
            "ProcessorCount": "2",
            "MachineName": "license-server-linux-v1-12"
        },
        "status": "Healthy",
        "statusMessage": "Found 4 out of 4 context values"
    },
    "serverLicenses": {
        "data": [
            {
                "fileName": "/home/lit/.config/unity3d/Unity/licenses/linuxUicFormaEntitlement_1-20221026_852034.xml",
                "status": "Ok",
                "message": "EntitlementGroup: linuxUicFormaEntitlement_1 (from: linuxUicFormaEntitlement_1-20221026_852034.xml) has valid server entitlements",
                "licenseEntitlementGroupId": "linuxUicFormaEntitlement_1",
                "product": "Unity for Enterprise for Product Lifecycle + Forma (Floating)",
                "licenseCount": 100,
                "activeLicenseCount": 0,
                "validFrom": "2022-06-08T00:00:00Z",
                "validTo": "2025-06-08T00:00:00Z"
            }
        ],
        "status": "Healthy",
        "statusMessage": "Found 1 valid server license(s)"
    },
    "licenseSigningCertificateStatus": {
        "status": "Healthy",
        "statusMessage": "Successfully loaded license signing key"
    },
    "serverDelegations": {
        "data": [
            {
                "fileName": "license-server-linux-v1-12.delegation-20221026_852034.xml",
                "status": "Ok",
                "message": "Found valid server delegation: /home/lit/.config/unity3d/Unity/licenses/delegations/license-server-linux-v1-12.delegation-20221026_852034.xml",
                "delegationId": "Delegation",
                "organizationId": "hq.unity",
                "serverId": "license-server-linux-v1-12",
                "delegationStart": "2022-10-25T00:00:00Z",
                "delegationEnd": "2025-06-08T00:00:00Z"
            }
        ],
        "status": "Healthy",
        "statusMessage": "Found 1 valid server delegations"
    },
    "databaseStatus": {
        "data": {
            "connectionStatus": "Open",
            "connectionType": "Microsoft.Data.Sqlite.SqliteConnection"
        },
        "status": "Healthy",
        "statusMessage": "Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open"
    },
    "plugins": {
        "data": [],
        "status": "Healthy",
        "statusMessage": "Plugins"
    },
    "httpConfigStatus": {
        "data": [],
        "status": "Healthy",
        "statusMessage": "HTTP config is healthy"
    },
    "serverStatus": "Healthy",
    "serverUpTime": "369 days 22 hours 41 minutes 20 seconds",
    "serverUpTimeMs": 31963280970,
    "version": "1.12.1+9338cad"
}
```

## 다음 단계

라이선스 서버 설정을 계속하려면 [서비스 설정](./server-setup-svc.md)을 진행합니다.
