OpenAQ, Sensor.Community, Grafana.
이 이름 셋을 Agent에 주면 완성되어 보이는 방안을 쉽게 얻는다. 데이터를 연결하고 형식을 통일해 그래프로 보여 준다는 것이다. 데이터 원천과 시각화 도구가 있는 거의 모든 프로젝트에 맞는다. 정작 작업 내용을 결정하는 부분은 아직 나오지 않았다.
OpenAQ는 실시간에 가까운 대기질 데이터와 과거 데이터, 메타데이터를 제공한다. Sensor.Community는 기여자들이 구성한 환경 센서 네트워크이며, Grafana는 데이터 조회와 표시에 쓰인다. 각각 이미 역량이 있지만 이를 조직하는 방식에 따라 다른 제품이 된다.OpenAQ API, Sensor.Community, Grafana 기초
ToWow의 과거 후보 기록은 이 도구 조합에 데이터 변환, 차이 탐침, 대기질 도표 모음이라는 세 경로를 제안했다. 당시 모두 자료 근거가 있는 미검증 설계였다. 본문은 이 후보를 따라 어떤 제품을 고르면 다음 작업이 어떻게 달라지는지 분석한다.
어댑터는 반복 가능한 데이터 경로를 전달한다
사용자는 이미 분석법이 있고 다른 형태의 입력을 매번 손으로 처리하고 싶지 않을 수 있다. 우선 전달해야 하는 것은 안정된 변환 결과다.
필요한 일은 필드 매핑이다. 측정 대상을 어떻게 나타내고 시간표시에 어떤 규칙을 쓰며 원출처를 어떻게 남기고 필드가 없을 때 어떻게 처리할지 정한다. 원천 필드가 대상에 대응 위치를 갖지 못할 수도 있다. 그 정보가 어디에 놓였는지 어댑터가 설명해야 한다.
첫 검토 산출물은 작아도 된다. 입력 표본 하나, 그에 대응하는 변환 결과, 필드별 매핑 설명이다. 사용자는 변환 프로그램의 뜻을 다시 추측하지 않고 그 결과로 다음 단계를 진행할 수 있어야 한다.
이 방향의 가치는 반복 연결 작업을 줄이는 데 있다. 기존 커넥터나 짧은 스크립트와 비교하기 적합하다. 같은 입력에서 어느 쪽이 올바른 변환을 유지하기 쉬운가, 원천이 바뀌면 얼마나 고쳐야 하는가를 본다.
차이 탐침은 조사할 만한 기록을 전달한다
탐침의 사용자는 다르다. 양쪽 데이터를 이미 얻었고 어떤 차이를 더 살펴볼지 알고 싶다.
필요한 중간물은 비교표일 수 있다. 아래는 가상 필드로 설명한 설계이며 프로젝트의 실제 API 형식이나 관측을 뜻하지 않는다.
| 원천 A 기록 | 원천 B 기록 | 대응 조건 | 후속 행동 |
|---|---|---|---|
| 어느 위치, 시간대의 측정 | 근처 위치, 같은 시간대의 동종 측정 | 단위는 같으나 위치 간 거리가 있음 | 거리와 표집 조건을 남기고 차이 조사 |
| 한 시간 평균 | 어느 1분의 순간값 | 시간 통계 기준이 다름 | 같은 시간 기준부터 확보 |
| 측정값은 있으나 장비 설명 없음 | 측정값과 장비 정보 있음 | 차이를 설명할 배경 부족 | 메타데이터 추가 조사 |
표는 단순히 그래프를 그려서는 정해지지 않는 것을 남긴다. “왜 함께 비교하는가”다. 차이가 나타나면 값 자체 때문인지 시간, 위치, 장비, 처리 방식의 차이인지 되물을 수 있다.
처음에는 한 장소와 짧은 시간만 다루고 원기록, 매핑 과정, 대응하지 못한 이유를 남길 수 있다. 첫 목표는 한 사용자가 조사할 만한 관측을 찾게 하는 것이다. 사용자가 모든 데이터를 다시 정제해야 한다면 비교표가 핵심 작업을 받지 못한 셈이다.
여기서 Grafana 연결은 표시 방식의 선택이고 비교 가능한 관계를 정의하는 것이 탐침의 핵심이다. 비교표부터 제대로 만들면 평범한 표로 보기만 해도 유용한 방향인지 검증할 수 있다.
도표 모음은 독립해서 읽을 수 있는 설명을 전달한다
독자는 파이프라인을 유지하거나 이상을 하나씩 조사하려는 사람이 아닐 수 있다. 어떤 장소에서 일정 기간 무슨 변화가 있었는지 이해하고 싶다.
따라서 내보낼 수 있는 스냅샷에는 위치, 기간, 측정 대상, 단위, 출처, 그림 이해에 필요한 설명이 있어야 한다. 이미지를 저장해 원래 시스템 밖에서 보더라도 무엇을 묘사하는지 알아야 한다.
그러면 시각화 구성도 바뀐다. 기본 대시보드는 조작자가 필터를 계속 바꾸기에 적합하다. 다른 사람이 읽는 도표 모음에서는 작성자가 관점을 고르고 볼 만한 변화에 주석을 달며 원기록으로 돌아가는 입구를 남겨야 한다. 스크린샷은 전달물의 일부이며 설명도 일부다.
한 장소, 한 시간 창으로 시작해 대상 독자에게 줄 수 있다. 무엇을 읽어 냈고 어디서 추가 질문이 필요한지 관찰한 뒤 상호작용이나 범위를 늘릴지 결정한다. 페이지 수나 그래프 수보다 한 번의 정확한 이해가 목적에 더 가깝다.
먼저 중간물 하나를 고르기
세 경로는 배타적이지 않지만 함께 착수할 필요도 없다. 어댑터는 반복 가능한 변환을, 탐침은 조사할 수 있는 대응을, 도표 모음은 독립적으로 읽을 설명을 먼저 만든다. 코드, 데이터, 사용자에 대한 요구가 각기 다르다.
과거 실행은 이후 세 프로젝트 문서 스냅샷의 목록을 만들고 바이트 수, 행 수, 제목, 해시를 집계했다. 자료 준비를 마친 것이며 관측 데이터는 아직 얻지 않았다. 따라서 세 경로의 다음 검증은 모두 실제 입력과 목표 사용자에서 시작해야 한다. 그 과거 산출물의 세부 사항은 출처 기록에 남겼다.
생성 시스템의 후보 제안이 이 정도로 구체적이길 바란다. 첫 전달물은 무엇이며, 누가 그것으로 어느 단계를 수행하고, 어떤 피드백이 방향을 바꾸게 하는가. 그때 도구 이름의 나열이 비로소 진행할 수 있는 일이 된다.