Abstract
Internet-of-Things(IoT) is the computing paradigm converged with different technologies, where diverse devices are connected via the wireless network, acquire environmental information from their equipped sensors, and are actuated. IoT applications provide smart services to users by interacting with multiple devices connected to the network. IoT devices provide the simple set of the information and also offer smart services by collaborating with other devices. That is, IoT applications always interact with IoT devices which are becoming very popular at a fast pace. However, due to this fact, developing IoT application results in unconventional technical challenges which have not been observed in typical software applications. Moreover, since IoT computing has its own characteristics which are distinguished from other former paradigms such as embedded computing and mobile computing, IoT applications also reveal their own technical challenges. Therefore, we analyze technical challenges occurring in developing IoT applications and present effective solutions to overcome the challenges. To verify identified issues and presented solutions, we present the result of performing a case study of developing an IoT application. Through the case study, we verify how the unconventional technical issues are raised in a real domain and analyze effectiveness of applying the solutions to the application.
사물 인터넷(Internet-of-Things, IoT)은 무선 인터넷을 기반으로 다양한 디바이스를 연결하고 센서를 통해 환경 정보를 획득하고 이를 기반으로 제어하는 여러 기술이 융합된 컴퓨팅 패러다임이다. IoT 환경에서 애플리케이션은 네트워크에 연결된 여러 디바이스들을 이용하여 사용자에게 유용한 정보와 편의를 제공할 수 있다. IoT 디바이스들은 단순한 정보를 제공하기도 하고, 다수의 디바이스들의 협업에 의한 서비스를 제공하기도 한다. 즉, IoT 애플리케이션은 빠르게 보급되고 있는 IoT 디바이스와 같이 상호작용한다. 이런 이유로 IoT 애플리케이션의 개발은 소프트웨어 기능만으로 구성된 소프트웨어 시스템 개발에는 나타나지 않는 비전형적인 기술적 이슈를 가지고 있다. 나아가 임베디드 컴퓨팅, 모바일 컴퓨팅 등의 패러다임과도 구별되기 때문에, 기존 형태의 시스템 개발에서 볼 수 없었던 이슈를 가지고 있다. 본 논문은 IoT 애플리케이션 개발에서 발생하는 기술적 어려움을 분석하고, 이들을 효과적으로 해결할 수 있는 기법들을 제시한다. 제시된 이슈들과 기법들을 검증하기 위하여, IoT 애플리케이션을 개발한 사례연구 결과를 보여준다. 이를 통하여, IoT 애플리케이션 개발의 비전형적인 기술적 이슈들이 구체적으로 어떻게 발생하여, 제시된 솔루션들이 어떻게 효과적으로 적용되었는지 분석한다.