

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Matter 플러그인
<a name="matter-plugin"></a>

**Topics**
+ [Matter 플러그인이란?](#what-is-matter-plugin)
+ [Matter 플러그인을 빌드하는 방법](#how-to-build-matter-plugin)
+ [빠른 시작: Matter 플러그인 설정 및 실행](#quickstart-setup-run-matter-plugin)
+ [아래 단계는 Raspberry Pi, 즉 커미셔너에서 실행해야 합니다.](#raspberry-pi-commissioner-steps)
+ [지원되는 Matter 디바이스 유형](#supported-matter-device-types)
+ [추가 클러스터에 대한 지원 추가](#adding-support-for-additional-clusters)
+ [다양한 Matter Controller 솔루션 통합](#integrate-different-matter-controller-solutions)

## Matter 플러그인이란?
<a name="what-is-matter-plugin"></a>

Matter 플러그인은 Managed integrations Hub SDK의 [사용자 지정 프로토콜 플러그인](custom-protocol-plugin.md) 기능을 사용하여 구축된 참조 구현입니다. 이를 통해 허브는 Matter 사양에 따라 동일한 네트워크에서 로컬로, 그리고 관리형 통합을 통해 원격으로 Matter 디바이스를 제어할 수 있습니다.

![Managed integrations Hub SDK와의 Matter 플러그인 통합을 보여주는 아키텍처 다이어그램](https://docs.aws.amazon.com/ko_kr/iot-mi/latest/devguide/images/iotmi-matter-plugin.png)


Matter 플러그인은 Hub SDK에 포함되어 있습니다. Matter 디바이스와 통신하고, Matter Controller 기능을 구현하고, 관리형 통합을 통해 원격 제어 경로를 노출합니다.

chip-tool은 [connectedhomeip](https://github.com/project-chip/connectedhomeip)의 명령줄 기반 참조 컨트롤러입니다. Matter 패브릭에서 커미셔너/컨트롤러 역할을 하므로 디바이스를 커미셔닝하고, 속성을 읽고, 쓰고, 명령을 호출할 수 있으며, 개발 및 상호 운용성 테스트를 위한 것입니다. 이 가이드에서 Matter 플러그인은 칩 도구를 사용하여 Matter 디바이스를 제어하고 모바일 앱에서 Matter 커미셔닝을 시연합니다.

이 배포의 범위에는 프로덕션 모바일 애플리케이션이 포함되지 않으며 CSA 랩 테스트 및 인증과 같은 인증 및 프로덕션 활동을 다루지 않습니다. 이는 제품 개발 프로세스의 일부로 유지됩니다.

## Matter 플러그인을 빌드하는 방법
<a name="how-to-build-matter-plugin"></a>

Matter 플러그인에는 Hub SDK 외에도 다음과 같은 종속성이 있습니다.
+ OpenSSL 3.0.x: OpenSSL 버전 요구 사항은 엄격하지 않습니다. 대부분의 경우 시스템의 기본 버전이 정상적으로 작동합니다.
+ [nng](https://github.com/nanomsg/nng) v1.4.0
+ [cJSON](https://github.com/DaveGamble/cJSON) v1.7.18
+ [AWS IoT Device SDK CPP V2](https://github.com/aws/aws-iot-device-sdk-cpp-v2) v1.33.0
+ [AWS SDK CPP](https://github.com/aws/aws-sdk-cpp) 1.11.433

다음 명령을 사용하여 리포지토리를 구성합니다.

```
cd IotMI-DeviceSDK-MatterPlugin  
mkdir build  
cd build  
cmake ..
```

그런 다음 다음 명령을 사용하여 빌드합니다.

```
cmake --build .
```

빌드 후 라이브러리 경로를 LD\_LIBRARY\_PATH에 추가합니다.

```
export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH
```

## 빠른 시작: Matter 플러그인 설정 및 실행
<a name="quickstart-setup-run-matter-plugin"></a>

아래 단계에 따라 Matter 플러그인과 해당 Matter 솔루션을 설정합니다. 이 흐름은 두 시스템, 즉 Hub( Hub SDK \+ Matter 플러그인 실행)와 커미셔닝 및 기본 제어를 위한 "모바일 앱"을 나타내는 Raspberry Pi를 가정합니다.

### 노드 ID 관리
<a name="node-id-management"></a>

특히 디바이스, 컨트롤러, 커미셔너 등 패브릭의 모든 노드에는 고유한 노드 ID가 있어야 합니다. 충돌을 방지하려면 일관된 할당 정책이 필요합니다. 이 가이드에서는 노드 IDs 수동으로 할당되므로 프로덕션 환경에서 노드 IDs 올바르게 관리해야 합니다.

이 문서의 예제에서 Hub의 칩 도구( Matter 플러그인에서 사용)는 기본 노드 ID를 사용하고 Mobile App Raspberry Pi의 `112233`칩 도구는 노드 ID를 사용합니다`123456`. 새로 커미셔닝된 디바이스에는 동일한 패브릭에 충돌하지 않는 노드 IDs가 할당됩니다(예: 빠른 시작 시 101).

### 사전 조건
<a name="prerequisites"></a>

시작하기 전에 다음이 있는지 확인하십시오.
+ Hub는 이미 관리형 통합에 온보딩되어 있으며 Hub SDK가 배포되어 있습니다(스크립트 또는 systemd를 통해). 아직 온보딩되지 않은 경우 [허브 온보딩 설정](managedintegrations-sdk-v2-cookbook-hubsetup.md)에 따라 관리형 통합에 온보딩하고 [관리형 통합 Hub SDK 설치 및 검증](managedintegrations-sdk-v2-cookbook-deployment.md)에 따라 허브 SDK를 실행합니다. 온보딩되면 허브의 관리형 사물 ID를 기록해 둡니다. 이는 나중에 필요합니다.
+ 칩 도구 및 AWS CLI를 모두 실행할 수 있는 Raspberry Pi(또는 모든 시스템)가 있습니다.
+ 테스트용 Matter 디바이스가 있습니다. 실제 문제 디바이스 또는 가상 Matter 디바이스(예: [lighting-app](https://github.com/project-chip/connectedhomeip/tree/master/examples/lighting-app/linux))일 수 있습니다.

### 1단계. Raspberry Pi 준비(모바일 앱을 나타냄)
<a name="step1-prepare-raspberry-pi"></a>
+ AWS CLI 설치 및 칩 도구 빌드 및 설치
+ [공식 칩 도구 빌드 가이드에 따라 칩 도구를 빌드](https://github.com/project-chip/connectedhomeip/blob/master/docs/development_controllers/chip-tool/chip_tool_guide.md#building-from-source)합니다. 확인된 버전은 v1.4.2.0입니다.
+ [공식 지침에](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 따라 AWS CLI를 설치합니다.
+ 칩 도구를 위한 영구 스토리지 준비

  ```
  mkdir -p $HOME/iotmi/matter/
  ```
+ 커미셔너 인증서 체인 생성(이 칩 도구`123456`에 노드 ID 할당)

  ```
  cd connectedhomeip/  
  cd out/chip-tool/  
  ./chip-tool pairing get-commissioner-root-certificate \  
      --commissioner-nodeid 123456 \  
      --storage-directory $HOME/iotmi/matter/
  ```

생성된 체인은 다음 위치에 저장됩니다. `$HOME/iotmi/matter/chip_tool_config.alpha.ini` 

나중에이 파일을 Hub에 복사합니다.

### 2단계. 허브 준비( Matter 플러그인 실행)
<a name="step2-prepare-hub"></a>
+ Hub에 칩 도구를 빌드하거나 설치합니다( Matter 플러그인은 이를 사용하여 Matter 작업을 수행함). [칩 도구 빌드 가이드를](https://github.com/project-chip/connectedhomeip/blob/master/docs/development_controllers/chip-tool/chip_tool_guide.md#building-from-source) 참조할 수 있습니다. 확인된 버전은 v1.4.2.0입니다.

나중에 사용할 수 있도록 칩 도구의 sha256sum도 필요합니다. 다음 명령을 사용하여 sha256sum을 가져올 수 있습니다.

```
sha256sum /path/to/chip-tool
```
+ 스토리지를 준비하고 Raspberry Pi에서 커미셔너 파일을 복사합니다.

  ```
  mkdir -p $HOME/iotmi/matter/  
  # From Raspberry Pi to Hub (example):  
  # scp $HOME/iotmi/matter/chip_tool_config.alpha.ini user@HUB_HOST:$HOME/iotmi/matter/
  ```
+ Matter 플러그인 실행(칩 도구 경로, SHA256 및 스토리지 폴더 제공)

  ```
  ./iotmi_matter_plugin \  
      --chip-tool-path /path/to/chip-tool \  
      --sha256sum SHA256SUM_OF_THE_CHIP_TOOL \  
      --storage-folder $HOME/iotmi/matter/ \
      --node-id 112233
  ```

## 아래 단계는 Raspberry Pi, 즉 커미셔너에서 실행해야 합니다.
<a name="raspberry-pi-commissioner-steps"></a>

### 3단계. Matter 디바이스 커미셔닝(Raspberry Pi)
<a name="step3-commission-matter-device"></a>

칩 도구를 사용하여 디코딩된 QR 코드를 사용하여 디바이스를 커미셔닝하고 Wi-Fi 자격 증명을 프로비저닝합니다. 이 예제에서 디바이스는 노드 ID 101을 사용하고 커미셔너 노드 ID는 입니다`123456`.

```
./chip-tool pairing code-wifi 101 \  
    YOUR_WIFI_SSID YOUR_WIFI_PW  \  
    MT:MFAA0W8C00UFQV2VL00 \  
    --bypass-attestation-verifier 1 \  
    --commissioner-nodeid 123456 \  
    --storage-directory $HOME/iotmi/matter/
```

**참고**:
+ `101`는 디바이스의 Matter 노드 ID입니다(다른 값을 선택할 수 있음).
+ `MT:MFAA0W8C00UFQV2VL00`는 디바이스의 디코딩된 QR 콘텐츠입니다. QR 코드에서 디코딩된 컨텍스트를 가져오려면 QR 코드 앱 또는 라이브러리를 선택하여 디코딩해야 합니다. QR 코드 디코딩 디코딩을 지원하는 웹 서비스를 사용할 수도 있습니다.
+ `-bypass-attestation-verifier 1`는 테스트 전용입니다. 프로덕션의 경우 PAA 스토어를 업데이트하고 증명 검사를 수행합니다.

chip-tool은 Thread 또는 WiFi 디바이스와의 QR 코드 또는 PIN 코드 페어링을 비롯한 다양한 페어링 방법을 지원합니다. [칩 도구 페어링 명령](https://github.com/project-chip/connectedhomeip/blob/master/docs/development_controllers/chip-tool/chip_tool_guide.md#pairing)에 대한 자세한 내용은 공식 설명서를 참조하세요.

### 4단계. 디바이스에 대한 Grant Hub 액세스 권한(ACL 업데이트)
<a name="step4-grant-hub-access"></a>

커미셔닝 후 Hub의 칩 도구가 디바이스를 제어할 수 있도록 합니다. 이 예제에서 노드 ID`123456`(Raspberry Pi)에는 관리자 권한(5)이 있고 노드 ID`112233`(Hub)에는 관리 권한(4)이 있습니다.

```
chip-tool accesscontrol write acl \  
    '[{"fabricIndex":1,"privilege":5,"authMode":2,"subjects":[123456], "targets": null},{"fabricIndex":1,"privilege":4,"authMode":2,"subjects":[112233], "targets": null}]' \  
    101 0 \  
    --commissioner-nodeid 123456  
    --storage-directory $HOME/iotmi/matter/
```

### 5단계. 디바이스에 대한 관리형 사물 생성(사용자 가이드 설정)
<a name="step5-create-managed-thing"></a>
+ 검색 시작( Hub의 관리형 사물 ID로 대체):

  ```
  aws iot-managed-integrations start-device-discovery \  
      --discovery-type CUSTOM \  
      --custom-protocol-detail '{"Name": "Matter", "NodeId":"101", "FabricId":"1"}' \  
      --controller-identifier <HUB_MANAGED_THING_ID>
  ```

샘플 응답에는 사용자 안내 설정 작업 ID가 포함됩니다.

```
{  
    "Id": "USER_GUIDED_SETUP_JOB_ID",  
    "StartedAt": 1753683326.056  
}
```
+ 작업 ID를 사용하여 검색된 디바이스를 쿼리합니다.

  ```
  aws iot-managed-integrations \  
      list-discovered-devices --identifier <USER_GUIDED_SETUP_JOB_ID>
  ```

샘플 응답:

```
{  
    "Items": [  
        {  
            "DeviceTypes": [],  
            "DiscoveredAt": "2025-08-05T06:46:35.407000+08:00",  
            "AuthenticationMaterial": "<AUTH_MATERIAL>"  
        }  
    ]  
}
```
+ AuthenticationMaterial을 사용하여 디바이스에 대한 관리형 사물을 생성합니다.

  ```
  aws iot-managed-integrations create-managed-thing \  
      --role DEVICE \  
      --authentication-material-type DISCOVERED_DEVICE \  
      --authentication-material "<AUTH_MATERIAL>"
  ```

샘플 응답(디바이스의 관리형 사물 ID 사용):

```
{  
    "Id": "DEVICE_MANAGED_THING_ID",  
    "Arn": "arn:aws:iotmanagedintegrations:eu-west-1:228183742813:managed-thing/515cf5a707ec41aaabb9914a1dd2889f",  
    "CreatedAt": "2025-08-06T15:00:08.718000+08:00"  
}
```

### 6단계. 관리형 통합을 통해 디바이스 제어
<a name="step6-control-device"></a>

`send-managed-thing-command` 명령을 사용하여 관리형 사물에 명령을 보냅니다.

```
json=$(jq -cr '.|@json' <<EOF  
[  
  {  
    "endpointId": "1",  
    "capabilities": [  
      {  
        "id": "matter.OnOff@1.4",  
        "name": "On/Off",  
        "version": "1",  
        "actions": [  
          {  
            "name": "Toggle",  
            "parameters": {}  
          }  
        ]  
      }  
    ]  
  }  
]  
EOF  
)  
aws iot-managed-integrations send-managed-thing-command \  
    --managed-thing-id "DEVICE_MANAGED_THING_ID" \  
    --endpoints "$json"
```

### 7단계. 디바이스 상태 읽기
<a name="step7-read-device-state"></a>

다음 명령을 전송하여 디바이스 상태를 가져옵니다.

```
aws iot-managed-integrations get-managed-thing-state \  
    --managed-thing-id "DEVICE_MANAGED_THING_ID"
```

샘플 결과:

```
{  
    "Endpoints": [  
        {  
            "endpointId": "1",  
            "capabilities": [  
                {  
                    "id": "matter.OnOff@1.4",  
                    "name": "On/Off",  
                    "version": "1.4",  
                    "properties": [  
                        {  
                            "value": {  
                                "lastChangedAt": "2025-08-14T13:16:02.132Z",  
                                "propertyValue": false  
                            },  
                            "name": "OnOff"  
                        }  
                    ]  
                }  
            ]  
        }  
    ]  
}
```

### 8단계. 허브에서 관리형 사물 제거
<a name="step8-remove-managed-thing"></a>
+ 다음 명령을 사용하여 허브에서 관리형 사물을 제거합니다.

  ```
  aws iot-managed-integrations delete-managed-thing \  
      --identifier "DEVICE_MANAGED_THING_ID"
  ```
+ Raspberry Pi의 패브릭에서 디바이스를 페어링 해제합니다(원하는 경우).

  ```
  ./chip-tool pairing unpair 101 \  
      --commissioner-nodeid 123456 \  
      --storage-directory $HOME/iotmi/matter/
  ```

## 지원되는 Matter 디바이스 유형
<a name="supported-matter-device-types"></a>


| Matter 디바이스 유형 | 지원되는 기능 | 
| --- | --- | 
| [OnOffLight](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/OnOffPlug-inUnit.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [DimmableLight](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DimmableLight.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [ColorTemperatureLight](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/ColorTemperatureLight.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml), [색상 제어(0x0300)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/ColorControl.xml) | 
| [OnOffPlug-InUint](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/OnOffPlug-inUnit.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [DimmablePlug-InUnit](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DimmablePlug-InUnit.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [OnOffLightSwitch](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/OnOffLightSwitch.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml) | 
| [DimmerSwitch](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DimmerSwitch.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [ColorDimmerSwitch](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/ColorDimmerSwitch.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [켜기/끄기(0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml), [레벨 제어(0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml), [색상 제어(0x0300)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/ColorControl.xml) | 
| [DoorLock](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DoorLock.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [문 잠금(0x0101)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/DoorLock.xml) | 
| [온도 조절기](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/Thermostat.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [온도 조절기(0x0201)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Thermostat.xml) | 
| [WaterLeakDetector](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/WaterLeakDetector.xml) | [식별(0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [부울 상태(0x0045)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/BooleanState.xml) | 

## 추가 클러스터에 대한 지원 추가
<a name="adding-support-for-additional-clusters"></a>

Matter 플러그인을 확장하여 추가 디바이스 유형 및 기능을 지원하려면 다음 패턴에 따라 **matter\_action\_converter.cpp**를 수정합니다.

**구현 패턴:**

1. 열거형 및 비트맵에 대한 매핑 정의

1. 쓰기 가능한 속성에 대한 UpdateState 로직 추가

1. 클러스터 작업에 대한 명령 처리 추가

1. 상태 보고를 위한 속성 구문 분석 추가

**기존 클러스터를 템플릿으로 사용:**

1. **OnOff 클러스터** - 기본 열거형, 쓰기 가능한 속성, 명령 및 속성 보고가 있는 네 가지 구성 요소를 모두 보여주는 가장 간단한 참조

1. **DoorLock 클러스터** - 여러 열거형 유형, 비트맵 필드, 구조체 파라미터, 선택적 명령 파라미터 및 광범위한 속성 적용 범위를 보여주는 복잡한 예제

지원되는 모든 클러스터(Identify, OnOff, LevelControl, DoorLock, 온도 조절기, ColorControl, BooleanState)는이 구조를 따릅니다. matter\_action\_converter.cpp의 기존 구현을 검토하여 전체 패턴을 이해합니다.

## 다양한 Matter Controller 솔루션 통합
<a name="integrate-different-matter-controller-solutions"></a>

이 섹션에서는 다양한 Matter Controller 솔루션을 Matter 플러그인과 통합하는 방법에 대한 지침을 제공합니다. 가능한 접근 방식과 중요한 고려 사항을 간략하게 설명하지만 자세한 구현 코드는 제공하지 않습니다.

Matter Controller 솔루션을 통합하는 두 가지 주요 방법이 있습니다. 첫 번째는 Matter 플러그인을 사용자 지정된 칩 도구와 함께 사용하는 것입니다. 두 번째는 원하는 Matter Controller를 사용하고 사용자 지정 프로토콜 라이브러리를 통해 관리형 통합과 통합하는 것입니다.

### 사용자 지정 칩 도구와 함께 Matter 플러그인 사용
<a name="using-matter-plugin-customized-chip-tool"></a>

이 접근 방식에서는 Matter 플러그인이 Chip-Tool의 사용자 지정 버전으로 작동하도록 확장됩니다. 이를 위해 Matter 플러그인 소스 코드를 수정하고 추가 로직을 도입해야 할 수 있습니다.
+ STDIO 구문 분석 로직 조정: 사용자 지정된 칩 도구가 다른 패턴의 로그를 생성하는 경우 그에 따라 구문 분석 로직을 업데이트합니다.
+ 보안 스토리지 구현: Matter 플러그인은 디바이스 정보를 위한 파일 기반 스토리지 메커니즘을 제공합니다. 프로덕션 환경에서 사용하려면 이를 보다 안전한 스토리지 구현으로 바꾸거나 데이터에 암호화를 적용합니다. 또한 Matter 플러그인을 제거할 때 적절한 정리 절차가 필요합니다.
+ 바이너리 서명 및 무결성 보호 구현: 프로덕션 배포에서는 사용자 지정 칩 도구 및 확장된 Matter 플러그인 모두에 무결성 보호를 적용해야 합니다. 여기에는 소프트웨어 릴리스 프로세스의 일부로 바이너리 서명, 시작 중 서명 확인, 보안 부팅 또는 OS 수준 무결성 도구와 같은 플랫폼 보안 기능 통합이 포함됩니다.
+ 작업/이벤트 속도 제한 도입: 과부하를 방지하려면 Matter 플러그인에 적절한 작업 및 이벤트 속도 제한이 포함되어 있는지 확인합니다. 프로덕션 배포에서는 기본 지표 및 모니터링을 추가하여 비정상적인 업데이트 패턴을 감지하고 영향을 받는 디바이스 또는 구독을 일시적으로 제한하거나 일시 중지해야 합니다. 이 회로 차단기와 유사한 동작은 참조 구현에서 제공하지 않으므로 고객이 구현해야 합니다.
+ 칩 도구 기본 함수 로직을 직접 통합: STDIO에 의존하지 않으려면 칩 도구의 기본 함수를 Matter 플러그인에 통합할 수 있습니다. 그런 다음 표준 입력/출력 로직을 ChptoolProc 클래스의 읽기/쓰기 함수에 연결할 수 있습니다.
+ 코드 생성 지원: 코드 생성을 통해 Matter 사양 버전 업데이트를 처리하는 메커니즘을 구현합니다.
+ 다음을 포함한 Matter 관리 기능 구현:
  + 커미셔너, 컨트롤러 및 Matter 디바이스에 노드 IDs 할당.
  + 여러 패브릭 관리.

칩 도구 측에서는 다음과 같은 개선 사항도 권장됩니다.
+ 보안 스토리지 사용: 칩 도구는 로컬 디렉터리에 Matter 인증서, 프라이빗 키 및 통계를 저장합니다. 이를 안전한 구현으로 바꿉니다.
+ 병렬 처리 활성화: 기본적으로 Chip-Tool은 한 번에 하나의 명령을 실행합니다. 병렬 실행 지원을 추가하면 특정 시나리오의 효율성이 향상될 수 있습니다.

### 관리형 통합과 함께 기존 Matter Controller 사용
<a name="using-existing-matter-controller-iot-managed-integration"></a>

Matter Controller가 칩 도구(예: Python 기반 구현 또는 함수 호출 기반 솔루션)를 기반으로 하지 않는 경우 STDIO 접근 방식이 적합하지 않을 수 있습니다. 이러한 경우 Matter 플러그인을 참조로 사용[사용자 지정 프로토콜 플러그인](custom-protocol-plugin.md)하면서를 사용하여 관리형 통합과 직접 통합할 수 있습니다. 다음 사항을 고려하세요.
+ 패브릭 및 노드 IDs 유지 관리: 디바이스 추가/제거 및 캐싱 속성과 같은 디바이스 메타데이터가 일관되게 유지 관리되는지 확인합니다.
+ 구독 관리: 각 디바이스는 상태를 지속적으로 업데이트할 수 있도록 최대 하나의 활성 구독을 유지해야 합니다.
+ 상태 변경 전파: 디바이스가 상태를 업데이트하면 변경 사항을 확인하고 관리형 통합에 이벤트를 전파합니다.
+ Matter 데이터 모델 변환기 구현: 관리형 통합은 Matter 데이터 모델을 사용하지만 표현은 JSON 형식입니다. Matter 데이터 모델 형식과 JSON 표현을 매핑하려면 변환기가 필요합니다.