사물인터넷(IoT)을 위한 애플리케이션과 디바이스 개발에는 고유의 해결 과제들이 존재한다. IoT 시스템은 수년간 운영될 것으로 예상되기 때문에 개발자들은 설계부터 수명 만료까지 전체 라이프사이클에 대한 계획을 수립해야만 한다.

이 글을 통해 라이프사이클의 각 단계에서 발생하는 문제와 그러한 문제를 해결하는 방법을 탐구하고 IoT 애플리케이션의 구축, 테스트, 배포 및 관리를 위한 클라우드 기반의 통합된 개발 환경을 통해 어떤 이점을 얻을 수 있는지에 대해 다루고자 한다.


미래 예측의 중요성    

산업 및 제조 기업들은 IoT의 가치를 인식하고 있다. 이러한 기업들은 머신 데이터를 확보할 수 있는 역량을 바탕으로 효율성 증대, 운영비용 절감, 혁신 가속화 등을 통해 비즈니스 모델을 최적화해 새로운 수익원을 창출할 수 있다.

IoT 솔루션에 대한 요구가 증가하면서, 보안과 성능을 보장하면서도 애플리케이션을 신속하게 제공해야 한다는 개발자들의 부담이 가중되고 있다. 한편 IoT 개발에는 기존 소프트웨어, 시스템 개발과는 또 다른 과제들이 존재한다. 

기업 고객들은 IoT 시스템이 수년간 운영될 것이며, 그러는 동안 진화하는 기술을 지속적으로 적용하기 위해 정기적인 검사와 잦은 업그레이드가 필요할 것으로 예상하고 있다. 즉 개발자는 향후 어떤 시스템이 필요할 것인가를 미리 예측하고 디바이스와 애플리케이션의 개발, 구성, 배포에서부터 프로비저닝, 관리, 모니터링, 그리고 궁극적으로는 해체까지의 전체 라이프사이클을 설계 단계에서부터 계획해야 한다.

IoT 라이프사이클의 관리는 고도로 복잡한 일이다. IoT 시스템은 종종 연결성을 고려해 설계되지 않았던 기존 디바이스들과의 연결이 수반된다. 개발자는 특히 연결이 이루어지는 모든 경로에 대한 보안이 보장되는지 반드시 확인해야 하며 이를 위해서는 디바이스, 네트워크, 클라우드에 이르는 모든 레벨에 보안을 적용해야 한다. 

디바이스가 안전하게 연결되면, 운영자는 이를 프로비저닝할 방법을 필요로 한다. 이는 말 그대로 오늘날 흔히 썸 드라이브(thumb drive)를 통한 디바이스에서 디바이스로의 이동, 애플리케이션을 로딩하거나 수동으로 업그레이드를 수행하는 것을 의미한다. 마지막으로 IoT 시스템은 데이터를 수집, 분석할 수 있고 디바이스로부터 수집된 데이터에 따라 조치를 취할 수 있는 기업 시스템과의 통합, 그리고 에어 갭(Air Gap)에 의해 분리된 운영 기술(OT: Operational Technology)과 정보 기술(IT: Information Technology) 시스템의 연결이라는 과제에 직면해 있다.

이 과정을 매우 단순하고 효율적으로 처리하기 위해, 개발자와 시스템 운영자는 현장의 디바이스를 원격으로 구성, 프로비저닝하고 관리할 수 있는 방안을 확보해야 한다. 오늘날 많은 조직에서는 게이트웨이를 통해 데이터를 수집하고 디바이스를 연결하는 방법밖에 없고, 제어 명령을 다시 디바이스로 보내는 기능은 부족하다.

또한 단일 IoT 네트워크에 수백 또는 수천 대의 디바이스가 있기 때문에 라이프사이클 관리 비용은 엄청나게 높아지고, 문제 발생의 위험성은 가중되고 있다.

 

라이프사이클 과제 해결방안 확보

개발 프로세스를 간소화, 가속화하고 배포 전에 애플리케이션 성능을 보장하는 한편 원격으로 현장의 애플리케이션을 효율적으로 배포하고 관리, 모니터링 할 수 있는 방법은 무엇일까? 이러한 문제를 해결하는데 필요한 역량에 대해 제대로 이해하기 위해서는 디바이스의 전체 라이프사이클을 살펴보아야 한다.

 

설계 및 배포(Design and Deployment) 
IoT에서 발생하는 새로운 문제들에 대처하려면 개발자가 애플리케이션을 효율적으로 구축하고 여러 디바이스에 배포할 수 있도록 해주는 새롭고 보다 유연한 개발 방법이 필요하다.

디바이스 연결성에 대한 단일 표준이 없는 경우에는, 다양한 플랫폼과 쉽게 통합할 수 있어야 한다. 실제 디바이스를 사용할 필요가 없으며 IoT 환경에 최적화되고, 사전 구성된(Pre-Configured) 개발 플랫폼은 개발 프로세스를 혁신적으로 가속화하고 효율성을 향상시키며 오류와 프로젝트 지연의 위험을 낮춰준다. 

소프트웨어 개발은 팀 내에서 점점 분업화되고 한 곳이 아닌 여러 지역에서 작업이 이루어질 때가 많다. 언제 어디에서나 액세스할 수 있는 환경을 제공하는 클라우드 기반의 개발 플랫폼을 활용하면 팀이 분산되어 있는 경우에도 보다 효과적으로 협업하고 프로세스 진행 속도를 높일 수 있다. 

IoT 개발에서 최대의 관건은 바로 보안이다. 각 레벨에 맞춰 최적화된 엔드 투 엔드(End-to-End) 보안 전략은 반드시 설계 단계에서 애플리케이션 라이프사이클 전반에 걸쳐 포괄적으로 고려되어야 한다. 보안 기능 구축은 레이어의 복잡성 심화시키고, 이는 개발 과정을 지연시킬 뿐만 아니라 결과적으로 애플리케이션의 성능을 저해할 수 있다. 

그러나 개발자는 사전 구성된 통합 소프트웨어 구성 요소를 활용해 플랫폼에 구축함으로써 이를 완화할 수 있으며 이 과정을 통해 많은 보안 문제들을 해결할 수 있다. 이는 복잡성을 낮추고, 시간을 단축하며 잘못된 구성으로 인해 발생할 수 있는 보안 위험성을 경감시킨다. 

 

테스트 및 디버깅(Testing and Debugging) 
산업 부문 및 기업의 IoT 애플리케이션에 많은 가동부(Moving Part)가 포함되어 있고 성능에 대한 기대 수준이 높다는 점을 인식하고, 개발자는 배포 전에 애플리케이션을 규모에 맞게 테스트할 수 있는 방안을 마련해야 한다.

이를 위한 효과적인 방법으로는 실제 하드웨어가 없이도 전체 시스템의 복제와 모델링을 가능하게 하는 시뮬레이션 기술 및 하드웨어 가상화를 적용하는 것이다. 시스템 시뮬레이션은 시스템 라이프사이클의 각기 다른 지점에서 발생할 수 있는 위험 시나리오를 예측하고 계획할 수 있는 매우 유용한 도구이다. 또한 브레이크 포인트(Break Point: 중단점)을 찾기 위해 소프트웨어를 다시 실행할 필요없는 가상 환경에서는 보다 쉽고 효율적인 디버깅이 가능하다.

 

배포(Deployment)  
애플리케이션 테스트가 완료되고 나면 개발자는 이를 현장의 수백 또는 수천 대의 디바이스에 배포해야 한다. 이를 위해서는 원격 커미셔닝(Commissioning), 프로비저닝(Provisioning), 새로운 애플리케이션의 디바이스를 요구 사항에 맞춰 커스터마이제이션(Customization)할 수 있는 기능을 갖추고 있는 개발 플랫폼을 통해 이러한 문제를 해결할 수 있다.

 

관리(Management)  
IoT 시스템에 있어서 가장 핵심적인 가치는 디바이스에서 데이터를 수집, 확인, 추출해 비즈니스 로직 IT 시스템과 공유하고, 분석해 그러한 분석을 바탕으로 의사 결정을 내릴 수 있는 능력을 확보하는 것이다.

이러한 결정은 자동화될 수 있으며, 데이터를 디바이스로 다시 보내 작업을 개선하고 엣지(Edge) 단에서부터 기업까지 커뮤니케이션을 주고 받으면서 그러한 의사 결정 과정이 완료된다. 뿐만 아니라 각 레벨에 대한 엔드-투-엔드 IoT 개발 환경이라면 이러한 과정을 간편하고 원활하게 이루어질 수 있도록 하는 관리 구성 요소를 포함하고 있어야 한다. 시스템 운영자는 원격으로 장치의 상태와 성능을 모니터링하고 보안 취약점을 확인할 뿐만 아니라 정기적으로 업그레이드를 수행할 수 있어야 한다.

 

해체(Decommissioning) 
개발자는 설계 단계부터 디바이스의 라이프사이클 전체를 포괄하는 계획을 세워야 한다. 운영자는 실제로 디바이스의 수명이 다했고 침입자가 악용할 수 있는 취약점을 노출시키지 않는다는 것을 확인하고 원격으로 안전하게 디바이스를 서비스에서 제거할 수 있어야 한다.

 

IoT 개발의 단순화

IoT 개발의 복잡성을 극복하기 위해서는, 시스템 라이프사이클을 각각의 분리된 단계들의 시퀀스가 아니라 전체론적인 관점에서 보는 것이 중요하다. 따라서 시스템의 라이프사이클을 관리하는 주요 기능들이 통합되어야 한다. 이러한 기능에는 다음과 같은 도구가 포함된다.

- 원격 디바이스 관리(Remote Device Management): IoT를 대규모로 적용하는 경우, 현장에서 디바이스를 유지보수하고 업그레이드하기 위해 엔지니어들을 매번 멀리까지 보내기가 현실적으로 쉽지 않다. 시스템 운영자는 프로비저닝부터 수명 만료 시까지 페루프 시스템(Closed Loop System)에서 중앙 집중식으로 디바이스를 관리할 수 있어야 한다. 
- 가상화된 애플리케이션 개발(Virtualized Application Development): 개발자들은 실제 디바이스가 없어도, 추상화된 타깃 하드웨어 플랫폼을 활용해 새로운 애플리케이션을 적용한 디바이스를 요구 사항에 맞춰 커스터마이즈하고, 재구성할 수 있는 있어야 한다.
- 모델링 및 테스트(Modeling and Testing): 개발팀은 전체 라이프사이클에 걸쳐 시스템 전체를 복제할 수 있는 시뮬레이션 모델을 통해 배포 전에 어플리케이션을 테스트하고 디버깅할 수 있는 방법을 필요로 한다.

마지막으로 권한을 가진 개발자들이 언제 어디서나 액세스할 수 있는 안전한 클라우드 환경(내부 서버든 외부 제공자든 상관없이)을 통해 이러한 도구들을 활용할 수 있도록 하면 분산되어 있는 개발팀들이 효율적이고 효과적으로 협업할 수 있다.

 

기술 격차의 해결

최근에 전세계 개발자를 대상으로 실시된 설문조사에서, IoT로 인해 생겨나는 기회에 대해 대다수의 개발자들이 큰 기대를 가지고 있는 반면, 절반가량의 개발자들은 기대 수준을 충족시키기 위해 필요한 기술과 도구를 제대로 갖추고 있는지 불확실하다고 답했다.

이러한 환경적 제약을 극복하기 위해 지능형 커넥티드 디바이스를 위한 소프트웨어 전문성 및 기술력을 보유하고 있는 윈드리버는 IoT를 위한 임베디드 디바이스와 시스템 구축에 있어서의 복잡성을 줄이고자 클라우드 포트폴리오를 제공하고 있다.

즉 IoT 시스템을 개발하고 운영하는 방안을 간소화하고 보다 능률적이고 자동화된 방식을 도입할 수 있도록 언제 어디에서나 개발툴, 랩 및 관리 플랫폼에 액세스할 수 있도록 하는 클라우드 플랫폼을 제공하는 것이다. 클라우드를 기반으로 하므로 각 팀들이 IoT 시스템을 더 신속하게 구축하고 디바이스 라이프사이클을 보다 효과적으로 관리할 수 있다.

클라우드 기반의 소프트웨어 개발 환경을 통해 디바이스 운영 시스템 및 하드웨어 복잡성과 관계없이 애플리케이션을 쉽게 구축할 수 있으며, 소프트웨어 엔지니어와 시스템 운영자가 임베디드 시스템에 대한 전문 지식 없이도 기업의 최신 요구 사항을 충족시킬 수 있도록 배포된 디바이스들을 신속하게 업데이트하고 커스터마이징하는 것이 가능하다.

또한 머신 데이터를 안전하고 효율적으로 확인하고 이를 IT 시스템 및 분석 환경에 연결함으로써 운영자는 여러 종류의 디바이스, 기계, 시스템에서 데이터를 보다 간편하게 수집, 관리 및 통합할 수 있다.

IoT는 기업이 비즈니스를 최적화하고 생산성을 높이고 새로운 수익원을 창출하며 혁신을 이룰 수 있도록 실질적인 가능성을 제공한다. 이는 개발자에게 큰 기회지만, 한편으로는 IoT 개발이 복잡한 문제들을 가중시킬 수 있기 때문에 디바이스와 애플리케이션을 라이프사이클 전반에 걸쳐 관리함으로써 주된 문제들을 해결해야 한다.

고성능 IoT 애플리케이션에 대한 요구를 충족시키고 지속적인 라이프사이클 관리의 문제를 해결할 수 있는 개발자는 성공을 거두게 될 것이다. 개발자는 비용을 조절하고 협력을 강화하기 위해 클라우드를 활용하는 중앙화된 환경 내에서 이루어지는 애플리케이션 개발, 테스트, 배포, 관리의 통합을 통해 이러한 목적을 달성할 수 있다.

 

글 : 한상호 / IIoT 사업부 FAE / 윈드리버
자료제공 : 윈드리버 <www.windriver.com>

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지