

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

# coreMQTT 라이브러리
<a name="coremqtt"></a>

**참고**  <a name="out-of-date-message"></a>
이 페이지의 내용은 최신 상태가 아닐 수 있습니다. 최신 업데이트는 [Freertos.org 라이브러리 페이지](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)를 참조하세요.

## 소개
<a name="coremqtt-introduction"></a>

coreMQTT 라이브러리는 [MQTT](https://en.wikipedia.org/wiki/MQTT)(Message Queue Telemetry Transport) 표준의 클라이언트 구현입니다. MQTT 표준은 TCP/IP를 기반으로 실행되는 간단한 게시/구독(또는 [PubSub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)) 메시징 프로토콜을 제공하며 M2M(시스템 간) 및 사물 인터넷(IoT) 사용 사례에서 주로 사용됩니다.

coreMQTT 라이브러리는 [MQTT 3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html) 프로토콜 표준을 준수합니다. 이 라이브러리는 메모리 사용량을 줄이도록 최적화되었습니다. 이 라이브러리의 설계에는 QoS 0 MQTT PUBLISH 메시지만 사용하는 리소스가 제한된 플랫폼부터 TLS(전송 계층 보안) 연결을 통한 QoS 2 MQTT PUBLISH를 사용하는 리소스가 풍부한 플랫폼에 이르기까지 다양한 사용 사례가 포함됩니다. 이 라이브러리는 특정 사용 사례의 요구 사항에 정확히 맞도록 선택 및 결합할 수 있는 구성 가능한 함수 메뉴를 제공합니다.

**C**로 작성되었으며 [ISO C90](https://en.wikipedia.org/wiki/ANSI_C#C90) 및 [MISRA C:2012](https://misra.org.uk/product/misra-c2012-third-edition-first-revision/)를 준수하도록 설계되었습니다. 이 MQTT 라이브러리는 다음을 제외하고 추가 라이브러리에 종속되지 않습니다.
+ 표준 C 라이브러리
+ 고객이 구현한 네트워크 전송 인터페이스
+ (선택 사항) 사용자가 구현한 플랫폼 시간 함수

이 라이브러리는 간단한 송수신 전송 인터페이스 사양을 제공하여 기본 네트워크 드라이버와 분리됩니다. 애플리케이션 작성자는 기존 전송 인터페이스를 선택하거나 해당 애플리케이션에 맞게 자체 전송 인터페이스를 구현할 수 있습니다.

이 라이브러리는 MQTT 브로커에 연결하고, 주제를 구독/구독 취소하고, 주제에 메시지를 게시하고, 수신 메시지를 수신할 수 있는 고급 API를 제공합니다. 이 API는 위에서 설명한 전송 인터페이스를 파라미터로 사용하고 이 인터페이스를 통해 MQTT 브로커와 메시지를 주고 받습니다.

또한 라이브러리는 하위 수준 serializer/deserializer API를 제공합니다. 이 API는 다른 오버헤드 없이 필요한 MQTT 기능의 하위 집합으로만 구성된 간단한 IoT 애플리케이션을 구축하는 데 사용할 수 있습니다. serializer/deserializer API는 소켓과 같은 사용 가능한 모든 전송 계층 API와 함께 사용하여 브로커와 메시지를 주고 받을 수 있습니다.

IoT 애플리케이션에서 MQTT 연결을 사용할 때는 TLS 프로토콜을 사용하는 것과 같은 보안 전송 인터페이스를 사용하는 것이 좋습니다.

이 MQTT 라이브러리는 스레딩 또는 동기화와 같은 플랫폼 종속성이 없습니다. 이 라이브러리에는 안전한 메모리 사용과 힙 할당 없음을 보여주는 [증거](https://www.cprover.org/cbmc/)가 있어 IoT 마이크로컨트롤러에 적합할 뿐만 아니라 다른 플랫폼으로도 완벽하게 이식할 수 있습니다. 이 라이브러리는 자유롭게 사용할 수 있으며 [MIT 오픈 소스 라이선스](https://freertos.org/a00114.html)에 따라 배포됩니다.


****  

| coreMQTT 코드 크기(ARM Cortex-M용 GCC로 생성된 예제) | 파일 | -O1 최적화 | -Os 최적화 | 
| --- | --- | --- | --- | 
| core\$1mqtt.c | 4.0K | 3.4K | 
| core\$1mqtt\$1state.c | 1.7K | 1.3K | 
| core\$1mqtt\$1serializer.c | 2.8K | 2.2K | 
| 총 추정치 | 8.5K | 6.9K | 