Qt IoT
Qt Features

 

 

Qt IoT
Qt Features

사물 인터넷 (IoT) : 세상을 연결하는 기술 Qt

사물 인터넷 (IoT) : 세상을 연결하는 기술 Qt

– The Qt Company가 발간한 Building the Internet of Things and How Qt Can Help 를 The Qt Company 한국 공식 파트너사인 Ocube 가 실정에 맞게 번역 및 수정 하였습니다.

사물인터넷(Internet of Things 혹은 IoT) 이라는 용어가 모든 곳에서 들려오기 시작했습니다. 제법 유행어가 되어버린 사물 인터넷이라는 단어를 사용하지 않고는 새로운 기술에 대한 대화를 이어나가기가 어렵게 되었습니다. 낭만적인 공상 과학 소설 애호가들에게 IoT는 세상 모든 물건들에 이식된 먼지만한 크기의 컴퓨터를 떠올리게 할 지도 모릅니다. 하지만 대다수의 개발자들에게 IoT는 오래된 산업을 이끌어 온 분야를 새로운 유행어로 대체한 느낌일 지도 모르겠습니다. 바로 네트워크를 통해 서로 연결된 임베디드 시스템(connected embedded system)이 그것입니다. 결국 우리는 IoT라 불리는 것들을 지난 수십 년간 만들어 왔던 것은 아닐까요? 정답은 ‘yes’ 이면서 또 동시에 ‘no’ 입니다.

IoT 장치라는 것은 일반적으로 – 항상 그렇지는 않아도 – 모바일이 그 중심이 되며, 기기 사이를 연결해주는(Machine to Machine) 일명 M2M 장치와 연관이 깊습니다. 많은 수의 임베디드 장치들이 역시나 같은 특성을 지니고 있지만, IoT가 제시하는 그림은 이렇게 장비들이 언제나 연결되어 있어서 기기들이 보다 똑똑하게 동작하기 위해서 필요한 모든 정보들을 계속하여 주고 받을 수 있는(always on communication) 모습입니다. 이렇게 일상의 사물들에 정보를 주입하고 서로 네트워킹 할 수 있도록 만드는 단계가 된다면 다음과 같은기술적인 혜택이 가능할 것 입니다. 즉, 센서가 삽입된 생체 의류, 스스로 일정에 맞추어 움직이는 배송용 드론, 자동 진단 및 관리 홈 시스템, 신선도가 자동 표시되는 식료품, 자율 주행/주차 차량, 스스로 진단하고 재배되는 농작물 등 다양한 기술/제품이 가능할 것입니다.

IoT의 이러한 미래 비전을 실현하려면 컴퓨터가 더욱더 작아져야 하고, 더욱 스마트해져야 하고 그리고 보다 더 긴밀히 연결되어야 합니다. 많은 사람들이 하드웨어적인 기술의 진보에 대해서는 충분히 이해하고 공감하고 있지만, 소프트웨어적인 측면에서 IoT를 실현하기 위해서는 어떠한 소프트웨어에서의 중대한 기술 진보가 수반 되어야 하는 지에 대해서는 충분히 많은 이야기가 되지 못하고 있는 것으로 보입니다.

일상 사물들에 정보를 주입하고, 인간과 기계 사이의(Human to Machine, H2M) 혹은 기계와 기계 사이의 (Machine to Machine, M2M) 보다 직관적이고 자연스러운 의사소통을 위해서 필요한 복잡한 소프트웨어 기술에 대해서는 여전히 많은 부분 부족한 것이 현실입니다.

IoT를 위한 소프트웨어를 개발하는 것에는 그 자체로 상당한 필요 조건들이 요구됩니다.

사물 인터넷(IoT) 구축을 위한 소프트웨어 요구사항

IoT 구축을 위해서 필요한 소프트웨어의 특성을 구분 짓기 전에, 지능적이고 연결된 시스템을 만들어 내는 작업에 응용될 수 있는 수 많은 소프트웨어 기술들이 있기 때문에 어디에서부터 이러한 분류를 시작해야 할 지 감을 잡기가 어려울 수 도 있습니다. 우리는 먼저 이상적인 소프트웨어 프레임워크의 조건 – 혹은 최소한의 요구사항에서 시작해 보았습니다.

우리는 간추린 IoT 개발에 필요한 소프트웨어의 특성들을 기준으로 오늘날의 인기 있는 임베디드 개발용 프로그래밍 언어들을 아래에 분류해 보았습니다.

다소 전문적이고 기술적인 용어들이 등장하겠지만, 소프트웨어 개발에 있어서 필수적인 다양한 프로그래밍 언어들을 제외하고 소프트웨어 기술에 대해서는 언급한다는 일은 불가능할 것입니다.

오래된 역사를 가지고 있는 C언어는 데스크탑 환경의 소프트웨어 개발에서 누렸던 왕좌를 이제 새로운 프로그래밍 언어들에 내주었을지 모릅니다. 그러나 여전히 임베디드 개발에 있어서는 무시할 수 없는 영향력을 행사하고 있습니다. 다만 C언어의 가장 큰 문제는 IoT와 같은 새로운 개발 패러다임을 요구하는 분야에 있어서 주도권을 빼앗겨 버렸다는 것입니다. 통합 개발환경(Integrated Development Environment, IDE), 고속  응용 프로그램 개발(Rapid Application Development, RAD), 프레임워크 그리고 개발 커뮤티니 자체에 있어서도 C언어는 신규 개발 언어들에 자리를 내어주고 있습니다.

아파치 Cordova 아래 HTML5(혹은 HTML + CSS + 자바스크립트)를 사용하는 것은 다수의 크로스 플랫폼 개발 옵션에서 높은 채택률을 보이고 있음에도 IoT 시스템 개발에 적용하기엔 너무 덩치가 크고 차선책일 수 밖에 없습니다. 대부분의 HTML5 프레임워크는 너무 빈번하고 급격한 변화들이 적용되고 있어서 끊임없이 새로운 기능들을 선택할 수 있는 환경에서는 적합할 지 모르지만 IoT 장치들처럼 안정적인 코드베이스에 기초한 업데이트를 통해서 꾸준히 관리되어야 하는 경우에는 적합하지 않을 수 있습니다.

C#과 .NET은 매우 뛰어난 성과를 보여왔습니다. 하지만 C++와 비교할 때 충분히 효율적이고, 간소하며, 최적화 되어 있다고 보기는 어려울 것입니다. .Net 진영의 Mono 프로젝트에도 불구하고 크로스-플랫폼 호환성을 온전히 지원한다고 보기에는 어렵습니다. 관련한 커뮤니티는 활동적이지만 오픈 소스 옵션만큼 활발하다고 보기에는 어렵겠습니다.

안드로이드는 매우 능력있는 소프트웨어 기술입니다. 하지만 다소 무거운 덩치와 제품 자원을 요구합니다. 그러나 안드로이드의 가장 큰 단점은 크로스-플랫폼 지원기능에 관한 것입니다. 안드로이드 개발도구로 만들어진 앱은 오직 안드로이드 운영체제에서만 동작하며 다른 기기에서는 동작하지 않습니다. 따라서 동일한 코드베이스를 다른 플랫폼으로 전개하고자 한다면 한계를 가지게 될 수 밖에 없습니다.

확실히 C++은 뛰어난 기능과 최적화에 있어서 가장 강력한 힘을 발휘하는 프로그래밍 언어일 것입니다. 여러가지 이유로 C++는 임베디드 프로그래밍 언어의 챔피언입니다. C++/STL은 개발상의 표현력을 매우 높여줄 수 있는 방법이지만, 네트워크 연결성에 있어서는 큰 도움이 되지 못하고 있습니다. 다양한 네트워크 소켓, 블루투스, 혹은 Wifi 라이브러리들을 이용할 수 있지만 IoT가 요구하는 굉장히 다양한 개발 환경에 모두 적용이 가능한 솔루션이라고 보기엔 어렵습니다. C++/STL은 또한 보다 빠른 개발 프로세스 (Rapid Development)나 사용자 경험 (UX) 개발에는 적합하지 않습니다.

C++를 프로그래밍 언어로 고수하고 STL을 Boost로 대체하는 방법은 더 나은 네트워크 연결성을 갖출 수 있는 방법일 수 있습니다. 하지만 Boost는 여전히 단순한 라이브러리 수준에 머물고 있으며, 개발 환경이라고 간주되기에는 부족한 점이 많습니다. 또한 표준적인 UX 개발을 위한 도구들이 부재합니다.

마지막으로 C++ 과 Qt를 결합하는 방식은 어떨까요? Qt는 C++ 자체의 온전한 기능을 최적으로 활용할 수 있도록 하는 동시에 빠른 개발과 UX 개발을 위한 컴포넌트들을 제공해 줍니다. UX 개발을 위한 컴포넌트들은 크로스-플랫폼 전개를 위해 다양하게 디자인되어 있어 하나의 소스 베이스로 여러 플랫폼에 전개할 수 있으며, 통합 개발환경(IDE)과 열렬한 개발자 커뮤니티가 운영되고 있어서 모든 카테고리에 있어서 IoT 개발에 잘 부합되고 있는 솔루션입니다.

사물인터넷(IoT) 과 소프트웨어 개발 난제들

우리가 비교한 바로는 합당한 이유로 Qt가 IoT개발을 위한 최적의 솔루션으로 판명되었지만, 최고의 IoT툴킷을 결정하는 요소가 단지 얼마나 적은 기본 코드 베이스를 이용했는지 혹은 얼마나 많은 개발자들이 관련 생태계에 종사하고 있는지로 판명될 수는 없습니다.

빠르고 효과적으로 IoT 제품을 개발하고자 하는 개발자가 개발 툴킷의장점들을 얼마나 잘 활용할 수 있느냐가 본질적으로 중요한 요소가 될 수 밖에 없습니다.

최적의 IoT 개발 소프트웨어 프레임워크로 선택되기 위해서는 어떠한 도전과제들이 있으며, Qt가 제공하는 해결방식은 어떤 것인지 알아 보도록 하겠습니다.

임베디드 개발

많은 수의 임베디드 개발은 모바일이나 애플리케이션 개발 환경에 비해 상대적으로는 ‘구석기 시대’ 수준에 머물고 있다고 할 수 있습니다. 현대적인 리포저터리플러그드, 자동 완성 기능, 컬러 구문 표시, 통합 디버깅, 플러그인 호스팅,클라우드와 접속되어 있는 통합 개발환경에 비해 임베디드 개발 환경은 여전히 검은색 바탕화면에 녹색으로 깜박이는 커서로 대비됩니다. 마치 오래된 구식 트럭과 각종 센서가 탑재된 첨단 전기차량의 대비를 보는 것과 같습니다. 물론 임베디드 개발 환경의 터미널 세션, 콘솔 스크립트 그리고 Vi/Emacs 개발은 분명 그만의 구별되는 독창성이 있습니다만, GUI 개발 환경이 훌륭하게 갖추어진 지 이미 33년이 지났습니다.

이 상황에서 Qt는 커다란 장점을 가지고 있습니다. Qt Creator 통합 개발환경(IDE)은 모든 플랫폼에서 동작하고, 모든 종류의 익스텐션들과, 플러그인들, 시간을 절약해줄 수 있는 모든 개발팁을 제공해 줍니다. 그리고 Qt Creator는 개발자가 선택하는 대부분의 플랫폼에 크로스 컴파일이 가능하게 해줍니다. Qt Creator는 또한 디버깅을 위한 도구들을 포함하고 있습니다. 프로파일링, 분석기능과 코드의 디자인도 가능합니다. 지원 가능한 모든 환경이 호환되기 때문에, Windows가 설치되어 있는 데스크탑이나 노트북에서 빠르게 프로토타입을 개발한 후 만족스러운 수준까지 개발 결과물을 다듬은 후에 임베디드 타겟에 직접 빌드해 볼 수 있습니다.

Qt의 통합 개발 환경 도구인 Qt Creator에는 Qt Quick Designer와 같은 다양한 개발 툴을 가지고 있습니다. Qt Quick Designer를 이용해 다양한 UI의 프로토타입을 쉽게 제작할 수 있습니다.

만약 그동안 Qt에 대해 어렴풋이 알고 있던 임베디드 개발자라면 Qt가 오직 UX를 구축하는데 사용되는 GUI 툴킷이라고만 생각해 왔을지도 모릅니다. 하지만 그렇지 않습니다. Qt는 개발자가 편리하게 사용할 수 있는 1,300여개가 넘는 라이브러리의 집합으로 제품의 언어를 다양하게 확장할 수 있는 국제화 기능, 문자열 처리, 멀티프로세스 통신을 위한 스레드, XML과 JSON 파싱, 데이터 베이스, 소켓, 블루투스, 각종 센서들, NFC, 이벤트 관리, 그리고 이 외에도 IoT 개발에 필요한 필수적인 기능들을 미들웨어 컴포넌트로 제공하고 있습니다.

오늘날의 대부분의 개발자들은 단 하나의 플랫폼만을 위한 독립적인 제품을 개발하는 여유로움을 즐길 틈이 없습니다. 제품은 다양한 플랫폼으로 전개되며, 다른 플랫폼이나 장치에서 공통으로 지원되는 기능을 소스코드상으로 공유해야 하는 일도 많습니다. 이것이 바로 강력한 UX 기능을 지닌 임베디드 개발 도구를 확보하는 것이 중요한 이유가 됩니다. 스크린이 있거나 혹은 없는 다양한 IoT 장치들을 지원하고, 제품의 가장 핵심이 되는 라이브러리들을 데스크탑과 모바일 제품과 연결하며, 동일한 IoT 생태계 안에서 다양한 부분의 분산 개발을 하는 다른 IoT 개발자들과 소스코드를 공유하는 개발 활동이 원활히 지원된다면 IoT 개발에 있어서 뛰어난 경쟁력을 확보할 수 있습니다.

Qt는 이 모두를 가능하게 해줍니다. Qt를 이용해 UX가 없는 임베디드 장치를 위한 기본 코드 베이스를 빠르게 구성합니다. 이후, 데스크탑이나모바일 혹은 타블렛 장치를 위한 정교한 UX 레이어를 코드에 추가하여 다양한 IoT 제품들로 전개해 나갈 수 있습니다.

빅 데이터

빅데이터는 IoT만큼이나 대단한 유행어가 되었지만 사실은 IoT의 비전에 있어서 빅데이터는 너무도 중요한 역할을 합니다.

수백만 개의 장치들을 통해 모인 데이터들이 축적되어 새로운 세상에 대한 더 나은 통찰을 가능하게 해줍니다. 아마 많은 사람들이 빅데이터는 클라우드 저장소에 주로 쌓여 있는 커다란 크기의 데이터를 의미한다고 생각할지 모릅니다. 클라우드가 빅데이터를 처리하는 중요한 역할을 하는 것이 틀렸다고는 할 수 없습니다. 하지만 그 규모에 있어서는 다를 수 있습니다.

당신의 IoT 임베디드 시스템은 엑사바이트(exabyte) 수준의 데이터를 다루지는 않겠지만 여전히 데이터를 수집해야 하고, 저장하고, 정렬하며, 필터링 하고 기가바이트의 데이터를 처리해야 할 것입니다.

이러한 작업량을 감당하기 위해서는 메모리 보존을 위한 데이터 처리가 필요하며, 효율적인 데이터 타입 변환이 필요 합니다. 그리고 지속적인 데이터 저장소를 확보해야 합니다.

C++ 프로그래밍 언어를 이용해서 프로그래머는 데이터 저장 타입에 대한 직접적인 권한을 가지고 있습니다. 따라서 부수적인 메타데이터 타입 확보 혹은 가비지 컬렉션(garbage collection) 을 필요로 하지 않습니다. 결과적으로 메모리를 긴밀하게 다룰 수 있다는 것은 C++가 가진 커다란 장점이며, Qt를 포함한 C++ 에 기반하고 있는 어떠한 프레임워크도 동일한 혜택을 제공합니다. 그러나 데이터 타입간의 변환에는 센서들 간에 아주 적은 양의 배터리를 소모하여 MQTT, JSON 혹은 원시적인 바이너리 데이터를 보내고 받는 과정이 필요합니다.

Qt는 C++기반이면서 이러한 레벨 단위의 작업도 간편하게 처리해줄 수 있는 독보적인 라이브러리를 제공합니다.

빅데이터의 관리에는 필연적으로 데이터베이스를 만들고 저장하고 참조할 수 있는 기능들이 필수적입니다. Qt는 SQL – MySQL, Postgres, 혹은 SQLite 와 같은 – 에 대한 인터페이스를 제공합니다. 결과적으로 수집된 데이터들을 쉽게 저장하고 가공할 수 있는 기능들을 제공합니다.

빅데이터터를 다루기 위해서 고려해야할 또 다른 중요한 요소가 있습니다. 바로 데이터 시각화입니다. 비록 최종 사용자에게 이러한 작업이 필요한 경우는 드물게 발생하지만, 데이터 시각화는 발생된 데이터들을 관찰하고 해석해야 하는 데이터 과학자들에게는 필수적인 것입니다.

Qt는 시각화만을 위해 개발된 모듈을 제공합니다. 2D와 3D 챠트를 수많은 방식으로 시각화 할 수 있도록 해줍니다. 간단한 작업만으로 소중한 데이터를 여러가지 방식으로 표현하고 새로운 통찰을 얻어낼 수 있도록 해줍니다.

고객 사용자 경험

여러분의 IoT 장치는 결코 독립적이지 않습니다. 스마트홈 컨트롤 패널과 같은 어떤 IoT 장치들은 인터넷에 접속이 가능한 커다란 터치스크린 그래픽을 가지고 있기도 하지만, 대다수의 장치들이 그렇다고 볼 수는 없습니다. 사용자들은 각각의 장치들과 데이터를 주고 받을 수 있는 방법을 필요로 합니다. 장비의 작동 환경을 설정하고, 데이터를 다운로드 받으며 혹은 상태를 모니터링 하고 변경하기도 해야할 것입니다. 온전한 IoT 장비의 UX 요구사항은 단순히 깜빡이는 LED가 붙어 있다던가 하나의 버튼정도가 존재하는 인터페이스를 완전히 넘어서는 것들입니다. 인간과 장치의 상호작용은 소비자 경험의 핵심적인 요소라고 할 수 있기 때문에, 만족스럽고 정교하게 설계된 IoT 장치의 UX를 구축하는 것은 IoT의 성공을 위해서 매우 중요한 과제 입니다. 오늘날 아직 대다수의 IoT 장비들은 데스크탑이나, 모바일 혹은 타블렛의 UI를 통해서만 사용자와 데이터를 주고 받을 수 있는 수준에 머무르고 있습니다.

Qt는 20여년전 최초로 개발될 때부터 유저 인터페이스를 디자인할 수 있는 소프트웨어로서 출발하였습니다. Qt의 고유한 GUI 디자인 능력은 IoT 제품 개발에 있어서 대체할 수 없을 중요한 역할을 합니다. Qt를 이용해 개발자는 간단하거나 정교하고 복잡하거나, 전통적이거나 혹은 현대적인 UI를 일반화된 방식 혹은 고유의 방식으로 제작할 수 있습니다. 하지만 가장 중요한 것은 Qt를 이용해 제작된 모든 것은 크로스 플랫폼 전개가 가능하다는 것입니다. 제품의 사용자가 Microsoft 사의 옹호자들이건, Apple 사의 열렬한 팬이건 혹은 Linux 전문가들이건 상관없이 Qt로 개발된 IoT 인터페이스는 모든 데스크탑에서 동작할 수 있습니다. 같은 원리로 iPhone과 Android 플랫폼 에서도 마찬가지 입니다.

오직 단 하나의 플랫폼을 통한 인터페이스만을 지원하는 IoT장치는 해당 플랫폼을 사용하는 사용자만을 대상으로 할 수 밖에 없습니다. 비록 iPhone 과 Android 만큼은 아니지만, Windows, Tizen 혹은 BlackBerry 를 사용하는 스마트폰 사용자도 전체 스마트폰 사용자의 7~8프로나 됩니다. Qt를 이용하면 고객이 주로 사용하는 운영체제나, 모바일 폰 제조사등과 관계 없이 단 하나의 소스 코드 베이스를 이용해 모든 종류의 고객을 지원할 수 있습니다.

단 하나의 소스 코드 베이스라는 관점에서 IoT 와 Qt의 관계를 바라본다면, 임베디드 디바이스의 펌웨어와 장치를 사용하기 위한 애플리케이션간에 동일한 소스를 공유할 수 있는 커다란 장점이 Qt를 사용함으로써 가능해진다는 것을 알 수 있습니다. 과거에는 예를들어 고속 응용 프로그램 개발(Rapid Application Development,RAD)를 위해서는데스크탑용 프로그래밍 언어와 데이터베이스로는 Visual Basic 이나 Delphi를 활용하고, 임베디드 개발은 전형적으로 C외에는 대안이 없었습니다. 이것이 의미하는 것은 동일한 코드가 전혀 다른 두개의 시작점을 가질 수 밖에 없었다는 것입니다. 즉 두개의 프로그래밍 언어로, 두가지 다른 API들을 사용하면서, 두개의테스팅 환경을 구축하고, 또한 디버깅을 위한 두개의 전혀 다른 접근을 필요로 했습니다. Qt를 이용한다면, 개발자의 소스코드가 작동되는 모든 플랫폼에서 공유할 수 있는 단 하나의 데이터 파싱 모듈, 환경 설정 라이브러리 혹은 프로토콜 스택을 디자인하고, 빌드하고, 테스팅 할 수 있게 됩니다.

확장성

어떤 개발 팀도 새로운 모든 IoT 제품에 맞추어 완전히 새로운 소프트웨어를 개발할 수 는 없습니다. 높은 비용도 문제지만 그런 방식으로는 새로운 제품의 제작 기간이 너무 길어져 버리기 때문입니다. 하지만 이런 여러 가지 이유에도 불구하고 우리는 간혹 완전히 새로운 소프트웨어 디자인에서 설계를 다시 시작하는 경우를 종종 발견하게 됩니다. 그것은 제품이 진화하며 예측하지 못했던 새로운 요구사항들 때문에 새로운 소프트웨어 디자인이 불가피한 경우가 발생하기 때문입니다.

정말 고통스러운 일은 제품을 설계하는 동안에 통찰력의 부족으로 이러한 일이 발생하는 경우입니다. 최악의 경우는 소프트웨어 개발팀 내부가 아닌 호환성의 문제가 함께 동작하는 다른 소프트웨어 혹은 다른 하드웨어에서 발생하는 경우입니다. 해당 소프트웨어와 의존관계에 있는 제품이 단종되는 경우 혹은 판매 부진으로 시장에서 퇴출되는 상황등이 그것입니다.

모든 상황에 항상 해결책을 줄 수 있는 만능인 소프트웨어 언어 혹은 소프트웨어 프레임워크란 존재하지 않습니다. 결국 미래를 완벽하게 예측한다는 것은 불가능하기 때문입니다. 개발자는 과거의 경험과 노하우를 기반으로 손쉽게 확장될 수 있고 수정되고 새롭게 적용될 수 있는 소프트웨어를 설계하여 미래를 대비해야 합니다.

변화하는 환경 상황에 소프트웨어가 잘 적응할 수 있도록 Qt가 어떤 방법으로 기여할 수 있는지 알아 보도록 하겠습니다.

이미 존재하는 모듈 방식(그것이 Qt건 혹은 다른 어떤 프레임워크 이던)을 새롭게 개발하는 시스템에 결합하는 일은 개발의 처음부터 이루어져야 합니다. 하지만 개발자가 사용하는 개발 프로세스 또한 도움이 될 수 있습니다. 예를 들어 애자일 개발(Agile Development) 은 확장성있는 시스템을 구축하는데 알맞습니다. 왜냐하면 근본적으로 시스템을 확장하는 방식의 모델을 따르고 있기 때문입니다. 어떠한 개발 프로세스 또는 프레임워크를 이용하건, 손쉽게 검사될 수 있는 모듈 방식으로 코드를 작성하고, 레이어간에 최소한의 결합이 일어나도록 하며, 모듈간의 의존성을 최대한으로 낮추어야 IoT 소프트웨어를 유연하고 생기있게 오랜 기간 유지할 수 있게 됩니다.

요약

이전에 비해 더욱 IoT 환경은 더 스마트하고 더욱더 긴밀히 연결된 디바이스를 제작하기 위해서 소프트웨어에 의존하고 있습니다.

이 글을 읽는 분이 IoT 개발자라면 프레임워크를 선택하는 기준이 본 기고에서 제시된 기준과 상당히 부합할 수도 또는 그렇지 않을 수도 있습니다. 그러나 만약 프로젝트가 강력하고, 최적화되어 있으며, 잘 연결되어 있고, 빠르게 개발이 가능한 크로스 플랫폼 기능의 유저인터페이스와 기능들을 요구한다면, Qt를 고려하지 않을 수 없을 것입니다. 게다가 소프트웨어 결정을 추진하는 요인은 단지 이러한 기본적인 속성들 때문은 아닙니다. 대부분의 IoT 소프트웨어는 Qt가 제공하는 자연스러운 특성으로 한단계 높은 혜택을 받을 수 있습니다.

임베디드 개발의 편리성이나 빅데이터를 유연하게 처리하는 방식, 긍정적인 고객 경험을 이끌어 내기 위한 준비, 그리고 여러분의 소프트웨어를 항상 유연하고 확장성 있게 유지할 수 있도록 해주는 것이 바로 그것입니다. 여러분의 IoT 소프트웨어가 필요로 하는 것이 무엇이건, 아주 오랜 시간에 걸쳐서 기능을 발휘하고 사람들의 삶속에서 사용될 소프트웨어 프레임워크를 구축해야 한다는 사실을 잊지 마시기 바랍니다.