← 경력 기술서

hub-api 10분 단위 집계 정보 저장 로직 구현

윌로그 재직 중 사내 공유 문서

배경

  1. hub-api에서 차량 서비스가 시범적으로 구현되면서, 각 고객사에 납품된 하드웨어를 통해 인입되는 온도 및 습도, 위치정보 등을 조회해야 하는 요구사항이 생겼습니다.

    기본적으로 하드웨어를 통해 측정되는 정보들은 결과적으로 InfluxDB에 저장됩니다. 문제는 현재 Platform 서비스는 사실상의 모든 조회 기능 구현을 InfluxDB에 의존합니다. (준)실시간성 정보를 조회하는 경우라면 타당하지만, 과거 시점의 정보를 조회할때 역시 InfluxDB를 사용합니다.

    hub-api를 기반으로 구현되는 비즈니스 도메인도 (준)실시간성 정보를 조회하는 경우라면 InfluxDB에 의존할 수밖에 없습니다. 다만 [1일 전 / 1주일 전 / 1개월 전] 등의 과거시점 정보를 조회하는 경우에 미리 집계를 해둔 정보가 있다면 굳이 InfluxDB에 불필요한 조회 Request를 줄일 수 있다고 판단했습니다.

  2. 회사에서 기획하는 차량 관련 서비스를 운영하기 위해 법적인 준비사항으로 개인 위치정보 사업자 인가를 받아야 했습니다. 이를 위해서는 윌로그의 백엔드 정보 저장소에 위치 정보를 암호화하여 저장해야 하는 요구사항이 있습니다.

    InfluxDB에 적재 및 관리되는 모든 위치정보를 암호화하고, 이를 꺼내 사용할때 복호화 처리하는 것은 기존 Platform 비즈니스에 사이드 이펙트가 가늠이 어려웠습니다. 따라서 InfluxDB가 아닌 새롭게 setup되는 hub-api의 DB에 관련 위치 정보를 집계하여 저장하고, 이때 이 위치정보를 AES로 암호화하여 저장합니다. (현재 해당 값을 사용할때는 서버에서 복호화하여 사용합니다.)

    이 형태의 아키텍처를 제시하여 윌로그는 25년도 11월 경에 개인 위치정보 사업자 인가를 취득했습니다. (상황에 따라서는 관련 기관에서 연단위로 주기적인 check가 들어올 수도 있습니다.)

구현 및 Flow

집계 파이프라인 Flow