(출처 : 소프트웨어 센터 웹진 자료)
IoT (사물인터넷 : Internet of Things)은 모든 사물이 컴퓨팅 및 통신 기능을 지니는 것을 기반으로 서로 연결되어 다양한 형태의 정보를 주고받음으로써 기존에는 가능하지 않은 ‘ 융합형 응용’ 을 제공해 줄 수 있는 개념이다. 이러한 IoT 의 대두는 세계적인 ICT (Information and Communication Technology) 패러다임을 변화시키고 있으며, 우리나라 정부에서도 미래창조과학부 주관하에 ‘소프트웨어중심사회’ 라는 과제를 진행함으로써 국가산업, 시장, 인력 교육 등의 다양한 분야에서의 범국가적 IoT 융합화를 시도하고 있다.
이러한 IoT 개념을 현실화 및 보급하기 위해서는 IoT 기반 소프트웨어 개발이 선행되어야 하며, 최근 국내 기업들 중심으로 IoT 기반소프트웨어 개발이 활발하게 진행되고 있다. 하지만 IoT 기반의 소프트웨어는 기존의 IT-orient 소프트웨어와는 달리 비 IT 와의 융합을 통해 새로운 형태의 응용을 창출하는 것을 목표로 하고 있으므로, 소프트웨어 요구사항 분석 및 설계 단계에서부터 개발/검증 단계까지 세심한 주의가 필요하다. 이러한 IoT 기반 소프트웨어 개발 시 주의사항에 대해 창신대학교 소프트웨어공학과 김범석 교수로부터조언을 구할 수 있었다.
< 창신대학교 소프트웨어공학과 김범석 교수 >
1. IoT SW의 정의 및 파급력
2. IoT SW의 종류 3. IoT SW 개발 시 주의사항 4. 향후 IoT SW 개발의 방향 |
Q) 현 시점에서 IoT SW가 중요한 이유가 무엇인가요?
IoT SW 는 사물간 통신을 통해 수집되는 방대한 양의 데이터를 기반으로 새로운 형태의 서비스를 창출할 수 있는 SW 로 정의될 수 있습니다. IoT 라는 개념이 있기 전에 SW 는 IT 뿐만 아니라 다른 산업의 생산성을 높일 수 있는 도구로 사용되었지만, 지금은 사회 전반을 이끌어나갈 수 있는 핵심 솔루션 역할을 하고 있죠. 따라서 IoT SW 는 기존에 독립적으로 운용되어오던 응용과의 융합을 위한 키워드가 될 수 있고, 이를 기반으로 새로운 형태의 응용을 개발할 수 있는 계기를 제공하는 역할을 합니다. [ 그림 1 참조 ]
< 그림 1> 스마트 기기들의 증가 추세
자료 : Cisco IBSG, 2011 - http://keminet.net/source/web/about/ac79/index.html
Q) 그렇다면 IoT 의 파급으로 인해 생긴 새로운 SW는 어떤 것들이 있을까요?
IoT 는 모든 사물에게 연산 및 통신 자원을 부여함으로써 상호 간 연결을 통해 각 사물에서 수집되는 방대한 양의 데이터를 가공하여새로운 서비스를 제공하는 일종의 인프라 요소가 강합니다. 즉, IoT 기술의 활용은 전 세계에서 운용되고 있는 모든 영역에 적용 가능하다고 보아도 무방합니다. 실제로 최근 IoT 기술은 의료, 운송, 홈서비스, 공장 등 다양한 방면에서의 융합을 시도하고 있으며, IoT 관련 기기들의 성능 향상 및 보급이 가속화되면서 다양한 서비스로의 IoT 융합을 위한 SW 들의 개발이 시도되고 있습니다. 상세히 살펴보면, 의료 분야에서는 인체정보를 수집할 수 있는 IoT 기기들을 환자에게 장착시켜 실시간으로 환자의 상태를 파악하고 치료할 수 있는 SW 의 개발을 추진 중에 있으며, 운송 분야에서는 차량에 부착된 GPS, 가속도 정보를 공유하여 현재 교통정보를 얻고, 이를 활용하여 교통량을 고려한 신호관리 시스템과 같은 SW 개발을 진행 중에 있죠. 홈서비스 분야에서도 집안에 존재하는 온도, 습도 센서로부터수집되는 정보와 기상청과 같은 외부 날씨 정보를 결합하여, 외출을 하고자 하는 사용자에게 의상을 추천해주는 등의 서비스를 고려하고 있습니다. 뿐만 아니라, 최근 여러 산업에서 주목하고 있는 스마트 공장에서는 공장 내 기계들의 부품 상태 모니터링, 기자재/제고관리 등의 부문에서 IoT 를 활용한 생산성 향상 솔루션들을 개발 중에 있습니다. [ 그림 2 참조 ]
< 그림 2> IoT 기반 융합 가능 사례
자료 : http://www.intel.com/content/www/us/en/internet-of-things/infographics/iot-platform-infographic.html )
Q) IoT SW 개발에 있어 개발자에게 요구되는 사항은 어떤 것이 있나요?
초연결을 지향하는 IoT 에서의 SW는 다양한 요구사항이 존재하게 됩니다.
첫째, IoT 를 구성하는 end-device 인 스마트 기기에서의 시스템 레벨의 프로그래밍 능력이 필요합니다.
IoT 를 위한 스마트 기기들은 기존의 단순한 임베디드 시스템과는 달리 센서와 같은 부가 장치를 장착할 수 있어야 하며, 이를 기반으로 새로운 형태의 서비스를 추가로 적용하여 수행함에 있어 유연성과 확장성을 제공해줘야 합니다. 기존의 펌웨어 기반의 시스템에서는 이러한 요구사항을 만족 시킬 수 없기 때문에 embedded OS 를 적용해야 하며, 이를 위해서는 embedded OS 의 전반적인 이해와더불어, 상용화된 IoT 기기 플랫폼과 OS 레벨의 프로그래밍에 대한 다양한 경험이 필요합니다.
둘째, IoT 스마트 기기에 장착된 다양한 형태의 통신 인터페이스를 위한 네트워크 지식 및 프로그래밍 능력이 필요합니다.
IoT 는 기존의 단일 통신 기술을 사용하는 기기들과는 달리 하나의 기기에 다양한 통신 기술을 적용시킬 수 있으며, 필요에 따라서는새로운 통신 인터페이스를 추가할 수 있어야 합니다. 따라서, 이러한 통신 기술들을 SW 로 구동시키기 위해서는 IoT 기기에 적합한 네트워크 인터페이스 관련 디바이스 드라이버 및 이를 활용한 SW 개발을 위한 지식 및 프로그래밍 능력이 필요하게 됩니다.
셋째, 방대한 양의 데이터를 저장하기 위한 데이터베이스 구축과 융합 서비스의 기초가 되는 정보를 창출하기 위한 데이터 프로세싱이 필요합니다.
IoT 시대에서는 Cloud 를 통해 방대한 양의 데이터를 Big Data 라는 형태로 구축하게 됩니다. 따라서 수집된 데이터를 BigData 에 저장하고 관리하는 기법이 필요하며, 이렇게 수집된 데이터를 기반으로 새로운 형태의 정보를 창출하기 위해 기계학습이나 데이터마이닝과 같은 데이터 프로세싱이 요구됩니다.
마지막으로, End user 가 사용할 수 있는 융합된 형태의 응용 소프트웨어 개발 능력이 요구됩니다.
현재 많이 사용되고 있는 안드로이드, iOS 는 물론, Web 기반의 프로그래밍, embedded OS 기반의 응용 소프트웨어 및 이들을 원활하게 동작하게 할 수 있는 미들웨어 개발 능력도 필요합니다.
Q) IoT SW 개발에 있어 주의사항은 어떤 것이 있나요?
위에서 언급한 요구사항을 기반으로 IoT SW를 개발하는데 있어 개발자가 주의해야 할 사항은 기존의 SW 개발과는 상이한 부분이 있습니다.
먼저, 개발하고자 하는 SW 가 어떤 Data 를 활용하여 어떤 서비스를 제공해 주는 것을 목표로 하는지를 면밀히 검토하여, 이를 기반으로 IoT SW 를 설계하는 것이 중요하게 될 것입니다. 기존의 SW 는 단일 목적으로 개발되는 사례가 대부분이었으며, 이에 따라 SW 설계 부분이 단순화되었습니다. 하지만 IoT 기반의 SW 는 다양한 응용과의 융합을 지향하고 있으므로 상이한 목적을 결합한 새로운 형태의 SW가 되며, 이에 따른 요구사항 및 고려사항의 절대적인 양이 많아지게 되므로 설계 단계의 세밀함이 보다 중요하게 됩니다.
보안 또한 IoT SW 에서 중요한 유의사항이 될 수 있습니다. IoT 기기들은 기존의 기기와는 달리 서로의 연결을 위해 통신 인터페이스를 가지고 있으며, 이를 역이용하여 외부에서의 데이터 변조, 정보탈취는 물론, 기기 자체의 시스템 장악 등의 보안관련 이슈가 일어날수 있습니다. 이를 해결하기 위해서는 기존의 네트워크에서의 보안 뿐만 아니라 기기 자체의 보안 강화가 필요하게 되며, 효율적인 보안 향상을 위해서는 시스템 레벨에서의 보안도 고려되어야 합니다. 실제로 최근 개발되고 있는 ARM 프로세서 기반의 상용 IoT 기기를위한 개발 플랫폼에서는 시스템 레벨의 보안을 위해 TrustZone 을 지원하며, 기기 자체에서의 보안을 위해 TPM (Trusted Platform Module) 을 적용하여 제품을 생산하고 있습니다. 따라서 이와 같은 보안 향상을 위해 추가된 부분에 대한 이해도는 물론, 이를 활용하여 IoT SW 의 높은 보안 수준을 유지할 수 있는 방안을 고려해야 할 것입니다. [ 그림 3,4 참조 ]
< 그림 3> ARM 사의 TrustZone
자료 : 구글 이미 지
< 그림 4> TPM (Trusted Platform Module)
자료 : 구글 이미 지
마지막으로, embedded 기반의 IoT 기기를 위한 SW 개발에 따른 SW 최적화가 필요합니다.
최근 생산되는 IoT SW 를 구동시킬 수 있는 기기들의 성능이 비약적으로 향상되고 있지만, PC 나 Server 와 같은 높은 성능을 지니고있지는 않으며, 오히려 전력, 연산능력, 저장장치의 용량 등의 제약적인 성능을 가지고 있습니다. 특히 IoT framework 의 말단에서 정보를 수집하는 센서는 기존의 스마트 기기에 비해 더욱 제약사항이 많은 특징을 지닙니다. 따라서 SW 자체의 구현 복잡도를 최소화 하고, 구동 성능을 최적화하여 성능의 제약이 많은 기기에서도 개발된 SW 가 정상적으로 동작할 수 있도록 해야할 것입니다.
출처 : http://www.sw-eng.kr/member/customer/Webzine/BoardView.do?boardId=00000000000000040729&currPage=1&searchPrefaceId=&titOrder=&writeOrder=®DtOrder=&searchCondition=TOT&searchKeyword=iot