Azure IoT 디바이스 개발
Azure IoT는 IoT 디바이스를 연결, 모니터링 및 제어하는 관리형 서비스 및 플랫폼 서비스의 모음입니다. Azure IoT는 개발자에게 포괄적인 옵션 세트를 제공합니다. 이러한 옵션에는 디바이스 플랫폼, 지원 클라우드 서비스, SDK, MQTT 지원 및 디바이스 지원 클라우드 애플리케이션을 빌드하기 위한 도구가 포함됩니다.
이 문서에서는 Azure IoT를 시작하는 개발자를 위한 몇 가지 주요 고려 사항을 간략하게 설명합니다.
디바이스 개발 경로
이 문서에서는 두 가지 일반적인 디바이스 개발 경로를 설명합니다. 각 경로에는 관련 개발 옵션 및 작업 세트가 포함됩니다.
일반 디바이스 개발: 최신 개발 사례에 맞춰 상위 언어를 대상으로 하며, Windows 또는 Linux와 같은 범용 운영 체제에서 실행됩니다.
참고 항목
디바이스에서 범용 운영 체제를 실행할 수 있는 경우 일반 디바이스 개발 경로를 따르는 것이 좋습니다. 다양한 개발 옵션 세트를 제공합니다.
포함 디바이스 개발: 리소스가 제한된 디바이스를 대상으로 하는 개발을 설명합니다. 리소스가 제한된 디바이스를 사용하여 단위 비용, 전력 소비 또는 디바이스 크기를 줄이는 경우가 많습니다. 이러한 디바이스는 실행되는 하드웨어 플랫폼을 직접 제어합니다.
일반 디바이스 개발
일부 개발자는 기존 범용 디바이스를 클라우드에 연결하고 IoT 솔루션에 통합하도록 조정합니다. 이러한 디바이스는 C# 또는 Python과 같은 상위 언어를 지원할 수 있으며, Windows 또는 Linux와 같은 강력한 범용 운영 체제를 지원하는 경우가 많습니다. 일반적인 대상 디바이스에는 PC, 컨테이너, Raspberry Pi 및 모바일 디바이스가 포함됩니다.
일반 디바이스 개발자는 제한된 디바이스를 규모에 맞게 개발하는 대신, 클라우드 솔루션에 필요한 특정 IoT 시나리오를 사용하도록 설정하는 데 중점을 둡니다. 개발자 중 일부는 클라우드 솔루션에 맞는 제한된 디바이스에 집중하고 있습니다. 리소스가 제한된 디바이스를 사용하는 개발자의 경우 포함 디바이스 개발 경로를 참조하세요.
Important
일반 디바이스 개발에 사용할 SDK에 대한 자세한 내용은 디바이스 SDK를 참조하세요.
포함 디바이스 개발
포함 개발은 메모리와 처리가 제한되는 제한된 디바이스를 대상으로 합니다. 제한된 디바이스는 기존 개발 플랫폼과 비교하여 달성할 수 있는 항목을 제한합니다.
포함 디바이스는 일반적으로 RTOS(실시간 운영 체제)를 사용하거나 운영 체제를 전혀 사용하지 않습니다. 범용 운영 체제가 없으므로 포함 디바이스는 하드웨어를 완전히 제어할 수 있습니다. 이러한 사실로 인해 포함 디바이스가 실시간 시스템에 적합합니다.
현재 포함 SDK는 C 언어를 대상으로 합니다. 임베디드 SDK는 운영 체제 또는 Eclipse ThreadX 지원을 제공하지 않습니다. 이러한 SDK는 포함 대상을 고려하여 설계됩니다. 설계 고려 사항에는 최소 메모리 공간에 대한 필요성 및 메모리를 할당하지 않는 디자인이 포함됩니다.
Important
포함 디바이스 개발에 사용할 SDK에 대한 내용은 포함 디바이스 SDK를 참조하세요.
하드웨어 선택
Azure IoT 디바이스는 IoT 솔루션의 기본 구성 요소이며, 환경을 관찰하고 상호 작용하는 역할을 수행합니다. 다양한 유형의 IoT 디바이스가 있으며, 존재하는 디바이스의 종류와 이러한 디바이스가 개발 프로세스에 미치는 영향을 이해하는 것이 좋습니다.
이 문서에서 설명하는 디바이스 유형 간의 차이점에 대한 자세한 내용은 IoT 디바이스 유형 정보를 참조하세요.
SDK 선택
Azure IoT 디바이스 개발자는 디바이스 지원 클라우드 애플리케이션을 빌드하는 데 도움이 되는 다양한 SDK, 프로토콜 및 도구 세트를 제공합니다.
디바이스를 연결하고 IoT Hub와 통신하는 두 가지 주요 옵션이 있습니다.
- Azure IoT SDK를 사용합니다. 대부분의 경우 MQTT를 직접 사용하는 것보다 Azure IoT SDK를 사용하는 것이 좋습니다. SDK는 개발 작업을 간소화하고 디바이스 연결 및 관리의 복잡성을 간소화합니다. IoT Hub는 MQTT v3.1.1 프로토콜을 지원하며, IoT SDK는 MQTT를 사용하여 IoT Hub와 통신하는 프로세스를 간소화합니다.
- MQTT 프로토콜을 직접 사용합니다. MQTT를 직접 사용하도록 IoT Hub 솔루션을 빌드하면 몇 가지 이점이 있습니다. 예를 들어 SDK 없이 MQTT를 직접 사용하는 솔루션은 개방형 MQTT 표준을 기반으로 빌드할 수 있습니다. 표준 기반 접근 방식을 사용하면 솔루션의 이식성이 높아지고 디바이스가 연결 및 통신하는 방법을 보다 세밀하게 제어할 수 있습니다. 그러나 IoT Hub는 모든 기능을 갖춘 MQTT broker가 아니며 MQTT v3.1.1 표준에 지정된 모든 동작을 지원하지는 않습니다. MQTT v3.1.1에 대한 부분적 지원으로 인해 개발 비용과 복잡성이 추가됩니다. 장치 개발자는 IoT 디바이스 SDK를 사용할 때와 MQTT를 직접 사용할 때의 장단점을 고려해야 합니다. 자세한 내용은 MQTT 프로토콜을 사용하여 IoT Hub와 통신을 참조하세요.
디바이스 개발을 위한 세 가지 IoT SDK 세트가 있습니다.
- 디바이스 SDK(상위 언어를 사용하여 IoT 애플리케이션에 기존 범용 디바이스를 연결하는 데 사용)
- 포함 디바이스 SDK(리소스 제한 디바이스를 IoT 애플리케이션에 연결하는 데 사용)
- 서비스 SDK(디바이스를 서비스에 연결하는 Azure IoT 솔루션 빌드용)
Azure IoT 디바이스 또는 서비스 SDK를 선택하는 방법에 대한 자세한 내용은 Azure IoT SDK를 참조하세요.
서비스 선택
개발 프로세스의 주요 단계는 디바이스를 연결할 서비스를 선택하는 것입니다. 디바이스를 연결하고 관리하기 위한 두 가지 기본 Azure IoT 서비스 옵션인 IoT Hub 및 IoT Central이 있습니다.
- Azure IoT Hub - IoT Hub를 사용하여 IoT 애플리케이션을 호스트하고 디바이스를 연결합니다. IoT Hub는 IoT 애플리케이션과 연결된 디바이스 간의 양방향 통신을 위한 중앙 메시지 허브 역할을 하는 PaaS(Platform as a Service) 애플리케이션입니다. 수백만 개의 디바이스를 지원하도록 IoT Hub를 스케일링할 수 있습니다. 다른 Azure IoT 서비스에 비해 IoT Hub는 애플리케이션 디자인에 대한 가장 큰 제어 및 사용자 지정을 제공합니다. 또한 개발 및 관리 복잡성이 다소 증가하는 대신 서비스를 사용할 수 있는 가장 많은 개발자 도구 옵션을 제공합니다.
- Azure IoT Central. IoT Central은 IoT 솔루션 작업 프로세스를 간소화하도록 설계되었습니다. 개념 증명으로 사용하여 IoT 솔루션을 평가할 수 있습니다. IoT Central은 애플리케이션을 만들고 디바이스를 연결 및 관리하는 작업을 간소화하는 웹 UI를 제공하는 SaaS(Software as a Service) 애플리케이션입니다. IoT Central은 IoT Hub를 사용하여 애플리케이션을 만들고 관리하지만 대부분 세부 정보를 사용자에게 투명하게 유지합니다.
디바이스를 연결하고 관리하는 도구
사용할 하드웨어 및 디바이스 SDK를 선택한 후에는 여러 가지 개발자 도구 옵션을 사용할 수 있습니다. 이러한 도구를 사용하여 디바이스를 IoT Hub에 연결하고 관리할 수 있습니다. 다음 표에는 이러한 옵션이 요약되어 있습니다.
도구 | 문서화 | 설명 |
---|---|---|
Azure Portal | Azure Portal을 사용하여 IoT 허브 만들기 | IoT Hub 및 디바이스용 브라우저 기반 포털입니다. IoT Central을 포함하여 다른 Azure 리소스에도 작동합니다. |
Azure IoT Explorer | Azure IoT Explorer | IoT 허브를 만들 수 없습니다. 기존 IoT Hub에 연결해 디바이스를 관리합니다. CLI 또는 포털에서 자주 사용됩니다. |
Azure CLI | CLI를 사용하여 IoT 허브 만들기 | IoT 애플리케이션을 만들고 관리하기 위한 명령줄 인터페이스입니다. |
Azure PowerShell | PowerShell을 사용하여 IoT 허브 만들기 | IoT 애플리케이션을 만들고 관리하기 위한 PowerShell 인터페이스 |
Azure IoT Tools for VS Code | VS Code용 도구를 사용하여 IoT Hub 만들기 | IoT Hub 애플리케이션에 대한 VS Code 확장입니다. |
참고 항목
이전에 나열된 도구 외에도 REST API, Azure SDK 또는 Azure Resource Manager 템플릿을 사용하여 프로그래밍 방식으로 IoT 애플리케이션을 만들고 관리할 수 있습니다. IoT Hub 서비스 설명서에서 자세히 알아봅니다.
다음 단계
디바이스를 Azure IoT에 연결하는 데 사용할 수 있는 디바이스 SDK에 대한 자세한 내용은 다음 문서를 참조하세요.
실습 디바이스 개발을 시작하려면 사용 중인 디바이스와 관련된 디바이스 개발 자습서를 선택합니다. 다음 자습서는 일반 디바이스 개발 또는 임베디드 디바이스 개발을 위한 좋은 시작점입니다.