최근 수년간 출시된 스마트 폰과 태블릿 제품들의 현대적인 터치(Touch) UI는 소비자들에게 특유의 풍부한 표현력과 직감적인 사용자 경험을 제공해왔습니다. 이러한 한 차원 높은 GUI를 제공하고 있는 기술의 흐름은 다른 여러 산업 분야 에도 커다란 영향을 주고 있습니다.

특히 의료, 보안, 공작기계, 공장 자동화 및 기계설비 HMI, 국방, 셋탑 박스 및 기타 다양한 가전 제품 등을 망라하는 ‘임베디드 제품군’에서 Touch UI 기반의 세련되고 직관적인 GUI를 갖추는 것이 제품 경쟁력의 기본 요소가 되어가고 있습니다. 

 

시장의 선택에는 이유가 있습니다. 임베디드 개발에 Qt의 장점은? 
지금까지 Qt가 GUI 개발뿐만 아니라 프로그램 개발 전반을 커버하는 멀티 플랫폼 프레임워크 라는 것을 알 수 있었습니다.

그러나 임베디드 개발은 데스크탑이나 모바일 환경의 애플리케이션 개발과는 다른 개발 타겟이 되는 하드웨어에 적합한 개발환경을 구축하는 작업이 개발이 있어서 커다란 장애물로 존재합니다. Qt가 이러한 임베디드 개발 환경에서 어떠한 강점을 보이고 있는지 소개 해드리도록 하겠습니다.  

[그림 10] Qt Creator 에서 Boot to Qt 를 이용해 임베디드 개발 타겟을 선정하는 모습

첫 번째는 Yocto Project에 기반한 ‘Boot to Qt’이라는 이름의 SW SDK Stack 제공입니다. 임베디드 개발 환경을 구축하는 작업은 그 자체로 하나의 독립 프로젝트로 느껴질 만큼 보드선정, 디바이스 드라이버 개발 등의 하드웨어 인터페이스 구축, SDK 선정 및 개발 등의 작업은 본격적인 제품 개발을 위해 반드시 필요한 어려운 일련의 작업 입니다.

Qt 상용 솔루션에서 제공되는 Boot to Qt는 Yocto Project에서 제공되는 각각의 하드웨어 레시피에 기반해 리눅스와 Qt이 합쳐진 System image를 제공합니다. 

Qt은 시스템 레벨에서 하드웨어 와 직접 인터페이스 하므로 Qt Creator에서 제공하는 편리한 타겟 개발 환경을 통해서 Windows Host – Embedded Target 개발 환경을 구축하고 에뮬레이터와 디버깅을 이용하여 빠르고 효율적인 개발을 진행할 수 있습니다. 

둘째로 Qt GUI와 non-GUI 기능들을 포함하는 강력한 미들웨어 기능입니다. 미들웨어로 Qt가 제공하는 UI 버튼과 View들, 국제화 기능과 입력 기능들, 웹브라우저와 멀티미디어 기능 등 수많은 요소들이 Qt을 이용해서 사용하기 쉽고 빠르고, 효율적인 제품 개발을 가능하게 만들어 줍니다. OpenGL ES2.0 대응에 의한 고급 그래픽 처리를 실현할 수 있습니다. 

최근 임베디드에서는 GPU가 당연히 탑재되어 있으며 풍부한 UI를 제공하는 강력한 그래픽 처리를 GPU에 맡기는 것으로 메인처리에 부담을 주지 않고 GUI 응용 프로그램을 만들 수가 있습니다. 

[그림 11] Qt 하드웨어 인터페이스

 

또한 기존의 Qt Webkit을 넘어서는 새로운 QtWebEngine은 HTML5를 완벽하게 지원하기 때문에 예를 들어 임베디드 장치에서 클라우드에 있는 데이터를 HTML5 로 표시해 달라는 정도의 요구사항도 간단하게 구현이 가능합니다.

Qt는 플러그인 아키텍쳐를 사용하고 있기 때문에 원하는 OS에 해당하는 기능 등을 플러그인 형태로 개발하여 추가할 수 있습니다. Qt을 이용하면 각각의 커널과 저레벨 기능들의 인터페이스를 일일이 고려할 필요 없이 순수한 제품 개발에 몰두 할 수 있습니다.

마지막으로 임베디드에서도 통용되는 Qt의 크로스 플랫폼 지원을 통한 장점입니다. 한번의 개발(단일 소스 코드)에서 여러 플랫폼에 배포할 수 있는 점은 Qt의 대표적인 강점이며 임베디드 개발에서도 뛰어난 장점으로 이용됩니다. 즉 기존 개발 자산을 그대로 이용 가능하며 개발 공수를 대폭 줄일 수 있을 뿐만 아니라 인적 자원을 활용할 수 있는 것을 의미합니다. 

 

[그림 12] 임베디드 개발용 Qt Device Creation 개발자 제공 구성

 

예를 들어 데스크톱 분야의 GUI 개발 엔지니어라도 Qt를 이용하면 프레임 워크를 통해 위화감 없이 임베디드 GUI를 개발할 수 있습니다. 당연히 실제 HW가 완성되기 이전에 PC 에서 UI 위주의 선행 개발 및 테스트를 진행하는 것이 가능하고 HW에 접목 시키기 전에 품질 수준을 향상 시켜 놓을 수 있습니다.  

현재 Qt에서 지원하는 크로스 플랫폼은 iOS와 Android, WinRT와 같은 모바일 OS를 비롯 제조 현장의 공장 자동화 기기에서 동작하는 Embedded Linux 및 Windows Embedded 역시도 완벽하게 지원합니다. 이 밖에 PC용 Lunux와 Windows, 맥용 OS X를 비롯해 고신뢰도 영역의 VxWorks와 QNX 같은 RTOS 까지 지원합니다. 즉 임베디드 기기환경에서 제작된 프로그램을 아주 작은 노력만으로도 모바일 APP와 PC 버전으로도 동일한 application을 제작하여 고객에게 배포할 수 있습니다.  
의료 산업 제품 개발에 있어서 Qt 의 활용 
Qt가 실제 산업분야에서 어떻게 적용되고 효율적으로 이용될 수 있는지 의료 산업 분야의 제품 개발에 있어서 Qt을 활용한 실제 사례를 통해 확인해 보도록 하겠습니다.

Eykona Tenology의 ‘Eykona Wound Measurement System’ 
영국 옥스퍼드 대학 연구실에서 스핀 아웃 한 기업인 Eykona Tenology는 Qt를 이용해 ‘Eykona Wound Measurement System’을 제작하였습니다.

이 시스템은 당뇨나 압박성 궤양 환자들의 외상처럼 쉽게 치료하기 어려운 외상 환부 이미지를 3D 스캐닝 하여 외상의 크기와 피부 조직 손상 상태를 모니터링 하여 보다 과학적이고 효율적인 치료 및 회복 프로세스를 수립할 수 있도록 도와주는 첨단 기기입니다.

손으로 들고서 촬영할 수 있는 임베디드 장치인 Eykona Wound Measurement System은 환부의 천연 색상의 3D 상처 이미지를 환자의 기록 이력에 저장하고 원격 처방을 가능하게 해줍니다. Eykona Tenology는 수많은 그래픽 UI 애플리케이션 프레임워크를 검토한 결과 강력한 크로스 플랫폼 지원 기능과 GUI 개발 성능으로 인해 Qt를 선택하였습니다.  

Eykona Tenology의 CTO Dr. James Paterson 박사에 의하면 “Qt를 이용한 덕분에 제품의 하드웨어 플랫폼이 완성되기 이전에 임베디드 리눅스 애플리케이션을 선 개발하여 개발 기간을 극적으로 단축할 수 있었다”고 합니다. 

또 윈도우 호스트로 애플리케이션을 개발하고 바로 리눅스 플랫폼으로 컴파일 하는 개발 프로세스를 이용했으며 “Qt가 없었다면 최초의 제품 출시까지 6개월에서 최장 9개월의 개발 기간이 더 추가적으로 필요 했을 것”이라고 밝히고 있습니다. 

Qt 자체의 기술적인 제공 사항과 더불어 상용 버전 구매 고객에 대한 The Qt Company의 기술 지원과 광범위한 Qt 개발자 커뮤니티를 통해 얻은 정보들도 개발에 큰 도움이 되었다고 합니다. 

 

Orzone의 ‘ORCAMP Medical Simulation’ 
Orzone의 ORCAMP는 외과 수술 팀을 위한 시뮬레이션 장치입니다. 극도로 현실적인 훈련 환경을 제공하며 최적의 시뮬레이션 경험을 만들어 내기 위해서 다양한 분야의 시뮬레이션 기술들을 통합한 첨단 제품입니다. 

 

[그림 13] Qt 로 제작된 Orzone 의 ORCAMP Medical Simulation

 

수술 의사, 마취과 의사와 수술에 참여하는 간호사들을 포함한 모든 팀들은 수술에 동반되는 기술적이고 기술외적인 협력 과정의 팀워크를 안전한 환경에서 훈련할 수 있습니다. ORCAMP 의료 시뮬레이션 기기는 환자의 안전과 의료진의 실력과 생산성 향상에 기여하여 개선된 의료 서비스 환경을 구축해 주고 있습니다. 

ORCAMP의 제품화에는 직관적이면서 자연스러운 User Interface 의 구성이 무엇보다 중요한 요소였습니다. 오퍼레이팅 테이블을 비롯 C-arm과 그 밖의 모든 컨트롤 기능 등 각종 임베디드 로봇 기술과 이미지 처리 기술을 결합하는 과제도 쉽지 않은 일이었습니다.

이 모든 개발상의 요구사항을 만족 시켜줄 수 있는 프레임워크로 오랜 검토 끝에 Orzone의 개발팀은 Qt를 선택했고 성공적인 제품화로 이어졌습니다.

ORCAMP의 GUI는 각종 컨트롤을 가능하게 하고 상태 정보를 전달하는 중요한 역할을 합니다. Orzone의 개발진은 .NET framework과 C#의 조합대신에 C++와 Qt를 택했습니다. Orzone 개발팀의 리더인 Daniel Svensson은 “우리는 실시간 시뮬레이션을 다루고 있으며, C++과 Qt가 최고의 GUI 프레임워크 임을 확신했습니다”라고 말합니다. 

Qt는 Orzone의 개발팀이 프로젝트 초기부터 개발 환경 구축을 인한 소모적인 시간을 최소화하고 제품 자체의 가치를 높일 수 있는 개발에 집중할 수 있도록 해주었습니다.

Svensson은 “Qt의 풍부한 GUI 라이브러리는 우리의 초급 개발자 들이 빠른 시간에 model/view 프로그래밍 개념을 잡을 수 있도록 도와줬으며 C++ 프로그래밍에 수반되는 수많은 포인터의 위험을 방지할 수 있도록 지원했습니다”라고 말했습니다. 

Qt의 크로스-플랫폼 기능도 Orzone이 Qt를 선택하는데 중요한 요소가 되었습니다. ORCAMP의 제품군이 최초의 OS 플랫폼에서 성공적으로 제품화가 이루어진 이후, Orzone은 iOS와 WindowsRT 플랫폼으로의 추가 전개를 고려하고 있습니다.

Orzone의 개발팀장인 Daniel Svensson은 “타블렛과 스마트폰의 시대가 도래하면서 제품 개발을 통해 얻은 Qt 관련 지식을 외부 컨설턴트의 도움 없이도 모바일 플랫폼으로 이식하는 것이 가능해졌습니다”라고 말했습니다. 

아무리 훌륭한 SW 개발 도구라도 선택하기 까지 국내에서의 개발 지원 체제가 제대로 갖추어져 있지 않으면 쉽게 선택하기가 어렵습니다. 보드 선정부터 개발 툴체인을 구성하는 일이 필요한 임베디드 개발에 있어서 개발 지원은 가장 중요한 포인트라고 해도 과언이 아닙니다.

The Qt Company의 국내 유일 파트너사인 오큐브는 10년전부터 Qt응 이용해 다양한 프로젝트를 진행해 왔으며 50여명이상의 Qt 엔지니어를 보유하고 있습니다. 올해부터는 국내에서 유일하게 Qt의 총판을 맡아 교육, 컨설팅, 개발 용역, 라이센싱 등의 분야에서 종합적인 서비스를 지원하고 있습니다.

또 오큐브는 Qt의 도입을 검토하고 있는 고객들에게 기본적인 기능이나 사용법을 배울 수 있는 Qt 프로그래밍 체험 세미나를 정기적으로 개최하고 보다 실천적인 프로그래밍 기술을 배울 수 있는 유료 교육 또한 실시하고 있습니다. Qt에 대해서 더 알고 싶거나 제품 개발에 Qt를 검토/도입해 보고 싶은 경우에 국내에서는 오큐브가 가장 좋은 대안이 될 것입니다. 

 

글 : 조용준 차장 / Qt 본부팀장 / 오큐브
자료제공 : 오큐브

최태우 기자  desk@epnc.co.kr

<저작권자 © EP&C News, 무단 전재 및 재배포 금지>