IOT는 어렵다
IOT 제품은 두 가지 요소로 나눌 수 있다.
- 하드웨어, PCB와 MCU 그리고 WiFi를 위한 모듈, 모듈에 의하여 동작하는 기계장치
- 소프트웨어, MCU를 위한 펌웨어와 서버
회로를 설계하는 엔지니어는 소프트웨어를 잘하기 어렵고
펌웨어를 잘하는 개발자는 하드웨어를 잘하기 어렵다.
한 분야를 잘하기에도 많은 시간과 노력, 재능이 필요하기 때문이다.
더구나, 펌웨어를 잘하는 개발자가 서버 개발까지 잘하기 어렵다.
펌웨어를 잘한다는 것은 기기를 위한 핀 맵, 데이터 시트 등을 보고 목적에 맞는 펌웨어 개발을 잘하는 것이지
소켓 프로그래밍을 이용한 서버 개발을 잘하는 것은 아니기 때문이다.
IOT 제품을 개발하는 것에는 두 가지 어려움이 있다.
- 기존의 기기에 네트워크를 연결할 수 있는 보드를 준비하는 것.
- 최초 제품부터 네트워크 연결이 가능한 보드로 준비하는 것.
첫 번째가 두 번째보다 어렵다.
그 이유는 다음과 같다.
- 기기를 분석해야 한다. 그러나, 업체로부터 자세한 데이터를 받기 어렵다.
- 기기에 연결된 전원을 이용해야 한다. 전원이 부족하다면, 시작조차 하지 못한다.
- 이미 사용되고 적게 남은 제한된 핀을 사용해야 한다.
- 기기에 디바이스를 설치해줘야 한다. 출장 및 설치 그리고 AS가 필요하다.
- 다양한 기기에 대응하기 위하여 일반적인 보드와 일대일 대응을 위한 보드 둘 다 필요하다.
특히, 이미 설치가 완료된 기기에 작업을 하는 상황에서 출장, 설치, AS가 강하게 요구되며, 누수, 결빙, 쇼트 및 화재와 같은 위험이 도사리고 있다. 이를 위해 최소 2인 이상이 필요하다. 회로 설계 엔지니어, 펌웨어 개발자가 필수로 출장을 가야 하며, 관리의 대응을 위해 관리자가 필요하기도 하다. 이 인원들이 자리를 비우면 그 시간만큼 새로운 연구개발은 멈추게 된다.
IOT 제품을 위한 사이트나 앱이 필요하다
- 사용자를 위한 인터페이스를 제공하기 위해서 앱 혹은 전용 사이트가 필요하다.
- 서버 개발자가 웹 서버까지 다룰 수 있으나, 앱 개발자는 따로 필요하다.
사용자는 회사가 될 수도 있고 개인이 될 수 있다. 그 둘이 동시에 사용자가 될 수도 있다. 앱 개발자 역시 안드로이드와 IOS를 둘 다 준비해야 할 수 있다. 안드로이드와 IOS 를 동시에 다룰 수 있는 자마린 같은 크로스 플랫폼을 사용해도 어렵다. 또한, 하드웨어와 아주 밀접한 경우, 관리하는 인원에게 추가 교육이 필요하며 문제가 생길 여지가 매우 크다.
하드웨어(기계 및 그 동작)의 품질을 유지하기 어렵다
- 소프트웨어적인 측면에서 오픈소스 및 상용 라이브러리, 상용 툴을 쓰는 것은 세계적 수준의 프로그래머들의 지원을 받는 효과를 누릴 수 있다. AWS를 쓰던, GCP를 쓰던 현 시대를 선도하는 기술을 빌려 쓸 수 있다.
- 하드웨어적인 면은 여러 면이 있다. AVR이나 ESP32 같은 모듈은 시대를 선도하는 모듈이다. 그러나 모듈만 단독으로 동작하는 것이 아니라, 모듈로 여러 기계장치를 제어하는 것이다. 따라서 기계장치의 품질도 중요한데, 높은 품질을 유지하기 어렵다. 업체가 자체적으로 생산하는 것은 한계가 있으므로 필연적으로 외부 업체에 의뢰하므로 고르면서 고품질을 유지하기 어렵다. 때문에 사업체 내부 엔지니어의 추가 작업이 따르며, 엔지니어에게 부하가 걸린다.
그런데도 IOT는 매력적이다.
일단 성공하기는 어려우나, 성공하면 다른 업체보다 상당히 우세한 지위를 획득하기 때문이다. 하드웨어는 그 특성상 적어도 1~2년 이상 별도의 관리 없이 원활하게 동작하기를 기대한다. 그 누구도 실험 대상이 되고 싶지는 않은 것이다. 때문에 내구성을 증명한 회사는 일정 이상의 경쟁력을 유지한다.