본문 바로가기 주메뉴 바로가기
국회도서관 홈으로 정보검색 소장정보 검색

목차보기

표제지

목차

국문초록 10

I. 서론 12

II. 배경 17

2.1. SmartThings 17

2.2. 스마트 앱 18

2.2.1. 스마트 앱의 구조 18

2.2.2. 스마트 앱의 이벤트 20

2.3. 디바이스 핸들러 20

III. 관련 연구 25

IV. 주요 기능 및 시스템 구조 29

4.1. 주요 기능 29

4.2. 주요 정보 30

4.3. 시스템 구조 32

V. 구현 및 결과 34

5.1. 스마트 앱 분석 및 코드 삽입 34

5.1.1. 의존관계 구현 35

5.1.2. input 삽입 35

5.1.3. 이벤트, 이벤트 핸들러 모니터링 코드 삽입 36

5.1.4. 액션 모니터링 코드 삽입 37

5.1.5. 웹 기반 코드 삽입 툴 38

5.2. 모니터 핸들러와 웹 서버 39

5.2.1. 모니터 핸들러 39

5.2.2. 웹 API 서버 39

5.3. 모니터링 40

5.3.1. 실시간 모니터링 정보 40

5.3.2. 프로파일 정보 41

5.4. 프로버넌스 43

5.4.1. 프로버넌스 정보 43

5.4.2. 프로버넌스 구현 53

VI. 실험 결과 55

VII. 결론 및 향후 연구 70

참고문헌 72

ABSTRACT 75

〈표 1〉 스마트 앱 분류 57

[그림 1] SmartThings 플랫폼 구조 17

[그림 2] 디바이스 핸들러 구조 22

[그림 3] "Simple Outlet" 타일 화면 24

[그림 4] SmartThings IDE의 로그 데이터 25

[그림 5] 시스템 구조 33

[그림 6] 웹 기반 Code Instrumentation 툴 38

[그림 7] 실시간 모니터링 정보 41

[그림 8] 프로파일 정보 42

[그림 9] 이벤트 프로버넌스 정보 44

[그림 10] 액션 프로버넌스 정보 44

[그림 11] 이벤트에서 이벤트까지의 패턴 정보 45

[그림 12] 이벤트에서 액션까지의 패턴 정보 46

[그림 13] 액션에서 이벤트까지의 패턴 정보 47

[그림 14] 액션에서 액션까지의 패턴 정보 48

[그림 15] 이벤트 다수 패턴 조회 정보 49

[그림 16] 액션 다수 패턴 조회 정보 50

[그림 17] 이벤트 선택 시 프로버넌스 정보 51

[그림 18] 액션 선택 시 프로버넌스 정보 52

[그림 19] 스마트 앱 분류 차트 56

[그림 20] "Dry the Wetspot" 스마트 앱 트레이스 정보 60

[그림 21] "Bon Voyage" 스마트 앱 프로버넌스 정보 62

[그림 22] "Garage Door Opener" 스마트 앱 프로버넌스 정보 64

[그림 23] "Smart Conveyor" 스마트 앱 프로버넌스 정보 65

[그림 24] "Hue Mood Lighting" 스마트 앱 프로버넌스 정보 67

[그림 25] "Flood Alert" 스마트 앱 프로버넌스 정보 68

초록보기

 IoT 애플리케이션은 일반적으로 클라우드 내에서 실행되는 특성을 가지며 이벤트 발생 - 이벤트 핸들러 실행 - 액션 실행과 같이 이벤트의 발생에 따라 프로그램의 흐름이 이어지는 이벤트 기반의 구조를 가진다. 또한 액션의 실행은 다른 이벤트의 발생을 트리거할 수 있기에 IoT 애플리케이션이 동작하면 큰 트레이스 데이터가 생성될 수 있다. 이러한 이유로 사용자는 클라우드에서 실행되는 애플리케이션의 동작과정을 시각적으로 확인하기 어렵다. 그리고 애플리케이션에서 발생한 특정 액션의 원인이나 특정 이벤트에서 파생된 액션 정보, 애플리케이션에서 발생할 수 있는 패턴 정보 등 사용자가 알고자하는 정보를 큰 트레이스 데이터로부터 쉽게 찾기 어렵다.

본 연구에서는 이러한 문제점에 주목하여 IoT 애플리케이션 모니터링 및 프로버넌스 시스템을 구현하였다. IoT 애플리케이션 모니터링 및 프로버넌스 시스템은 실시간 모니터, 프로파일, 프로버넌스 정보를 제공한다. 실시간 모니터는 이벤트 발생, 이벤트 핸들러 실행, 액션 실행이 있을 때 실시간으로 해당 정보를 확인할 수 있는 기능이다. 프로파일 정보는 과거에 발생했던 이벤트, 이벤트 핸들러, 액션 정보와 월별로 몇번의 데이터가 발생했는지에 대한 그래프 정보를 의미한다. 프로버넌스 정보란 이벤트 또는 액션 정보만 보여주는 필터링 정보, 특정 액션의 원인 정보, 특정 이벤트에서 파생된 액션 정보, 액션이 트리거한 이벤트 정보, 패턴 정보이며 이는 프로파일 데이터를 분석하여 얻을 수 있다. 이와 같은 기능을 제공함으로써 사용자는 IoT 애플리케이션의 동작 과정을 시각적으로 확인하고 앱에서 어떠한 일이 왜 발생하게 되었는지 찾을 수 있다. 그리고 앱이 사용자의 본래 의도에 맞게 동작하는 지 알 수 있다.

본 연구에서 구현한 시스템은 IoT 플랫폼 중 스마트 홈을 타겟으로 한 SmartThings의 IoT 애플리케이션인 스마트 앱을 대상으로 한다. 하여 구현한 시스템이 사용자가 스마트 앱의 실행 과정을 이해하고 발생 상황을 쉽게 추적할 수 있도록 하는지 검증하기 위하여 SmartThings Github에서 제공하는 public 스마트 앱 88개를 대상으로 실험을 진행하였다. 실험 결과에 따라 스마트 앱을 4가지 패턴으로 분류할 수 있었다. 이벤트 발생 - 이벤트 핸들러 실행 - 액션 실행의 단일 플로우를 가지는 경우, 이벤트 발생 후 다른 이벤트가 트리거 되어 복수의 플로우를 가지는 경우, 다수의 이벤트가 하나의 이벤트 핸들러를 사용하는 경우, 다수의 액션이 동시에 실행되는 경우이다. 4가지 패턴은 이벤트 기반 구조로 인하여 연쇄 작용이 일어날 수 있는 스마트 앱의 다양한 상황을 표현한다. 이를 통해 사용자가 스마트 앱의 실행 흐름을 이해하고 상황에 대한 추적을 하는 데 도움을 줄 수 있다.