이전 회차에서는 라즈베리파이의 온습도 센서 데이터를 와탭 프로젝트에 저장하는 방법을 알아보았습니다. 이번에는 와탭의 Open API를 활용하여 저장된 데이터를 조회하고, Flutter를 사용해 모바일 앱에서 시각화하는 방법을 살펴보겠습니다. 개발 환경으로는 Android 시뮬레이터를 사용할 예정입니다.
1) Open API
와탭 Open API를 사용하기 위해서는 다음 세 가지 정보가 필요합니다:
자세한 설정 방법은 와탭 공식 문서를 참고하시기 바랍니다.
2) MXQL
MXQL은 와탭의 성능 데이터(메트릭스)를 조회하기 위한 와탭의 전용 쿼리 언어입니다. 3부에서 살펴본 것처럼, MXQL을 사용하면 수집된 데이터를 차트로 시각화할 수 있습니다.
위의 예제와 같이 저장된 데이터를 단순 조회 할 수 있습니다.
3) MXQL Open API
Open API를 통하여 MXQL을 호출하고 결과를 수신 할 수 있습니다. (MXQL Open API 사용 안내)
준비된 정보를 바탕으로 데이터를 조회해 보는 테스트를 진행합니다.
최근 7일간 데이터를 3개 제한으로 조회합니다.
결과는 위와 같습니다.
Flutter는 구글이 개발한 크로스 플랫폼 프레임워크입니다. 단일 코드베이스로 iOS와 Android 앱을 모두 개발할 수 있어 효율적입니다. 특징은 다음과 같습니다:
Flutter 개발을 위해 다음 도구들을 설치해야 합니다:
자세한 설치 방법은 Flutter 공식 웹사이트의 가이드를 참조하시기 바랍니다.
Android Studio에서 새로운 Flutter 프로젝트를 생성하면 기본적으로 카운터 앱 예제가 포함됩니다. 이 예제 코드는 lib/main.dart 파일에서 확인할 수 있습니다.
프로젝트에 필요한 주요 라이브러리는 다음과 같습니다:
이 두 라이브러리를 사용하여 와탭의 API를 호출하고 온습도 데이터를 차트로 표시하겠습니다.
lib/main.dart 를 간결하게 정리합니다.
자동 생성되는 불필요한 코드를 정리한 뒤 빈 화면입니다.
와탭 Open API 통신 코드를 작성합니다.
와탭 Open API 테스트 코드를 작성합니다.
AndroidStudio 콘솔에 수신한 데이터가 정상 출력되는 것을 확인합니다.
데이터 모델 클래스를 작성합니다.
차트가 표시되는 UI 화면을 수정합니다.
이번 프로젝트에서는 IoT 디바이스의 데이터를 와탭에 저장하고 모바일 앱으로 시각화하는 전체 과정을 살펴보았습니다. 현재 구성은 기본적인 데모를 위한 것으로, 실제 활용을 위해서는 다음과 같은 기능을 추가로 고려해볼 수 있습니다:
이 프로젝트의 전체 소스 코드는 GitHub 저장소에서 확인하실 수 있습니다.
와탭은 사용자 데이터 저장, 알림 설정, Open API를 통한 데이터 조회 등 다양한 기능을 제공합니다. 이러한 기능들을 활용하면 기존의 서버 모니터링, APM 솔루션과 연계하여 더욱 포괄적인 모니터링 시스템을 구축할 수 있습니다.