Jiwon Kim

스마트미터링 현장설치 연동

2022.09 – 2022.10 · 백엔드 개발 (선임) · 하이텍앤솔 ICT개발팀

  • Java
  • Spring 4.3
  • JDBC
  • MySQL

Overview

개요

현장 작업자가 쓰는 모바일 설치 앱과 운영 서버 사이에서, NB-IoT 기기의 설치·AS 정보를 서로 맞춰 주는 연동 작업입니다. 등록되지 않은 기기가 올라오는 것을 미리 걸러 내는 검증 관문을 맡았습니다.

  • 모바일 현장설치 앱의 설치/AS 데이터를 단말 생산 관리 서버와 동기화(상태·이력 반영)
  • 미등록 단말 사전 검증 게이트 — 생산 테이블에 없는 단말 업로드를 차단

Architecture

시스템 아키텍처

현장 설치 앱 흐름: 협력업체 작업자의 앱 로그인부터 중앙서버 설치 확인, NB-IoT 생산정보 대조 분기, AS 횟수 증가까지의 흐름
시스템 데이터 흐름

Metrics

성과 지표

NB-IoT 설치/AS

동기화

미등록 단말 차단

검증 게이트

Troubleshooting

트러블슈팅

미등록 단말 사전 검증 게이트

문제 상황

현장 모바일 앱에서 올라온 설치/AS 데이터가 생산 관리 서버에 등록되지 않은 단말에 대해서도 처리되면, 존재하지 않는 회선이 운영 데이터에 유입될 위험이 있었다.

원인 가설

업로드를 반영하기 전에 단말 생산 테이블에 해당 단말이 존재하는지 먼저 확인하고, 없으면 업로드 자체를 실패 처리하면 미등록 회선 유입을 차단할 수 있다.

검증

업로드 직전 단말 식별자(CTN)로 생산 테이블 존재 여부(COUNT)를 확인하는 검증(productionDeviceCheck)을 추가하고, 미존재 시 앱에 실패 코드(msgCode = -1)가 반환되는지 확인했다.

해결

  • 업로드 전 단말 존재 검증 게이트를 구현해, 생산 테이블에 미등록인 단말은 업로드를 거부하도록 했다.
  • 처리 결과를 XML 응답의 msgCode(0 성공 / -1 미존재)로 구분해 앱에 전달했다.

현장 설치/AS 데이터의 회선 상태 동기화

문제 상황

모바일 현장설치 앱에서 발생한 설치·AS 행위가 단말 생산 관리 서버(별도 DB)에 반영되어야 했으나, 식별자 표기가 제각각이고 상태 전이 규칙이 명확하지 않았다.

원인 가설

식별자(CTN/IMEI/펌웨어)를 정규화하고 행위별 상태 코드(설치/ AS)를 명시적 상태 머신으로 정의해 별도 AS 서버 DB에 직접 반영하면, 현장 데이터와 단말 회선 상태를 일관되게 동기화할 수 있다.

검증

설치 업로드 시 상태=설치, AS 업로드 시 상태=AS·AS 카운트 증가·IMEI/펌웨어 갱신이 의도대로 적용되는지 확인했다. AS action 코드별 분기(교체 건만 서버 처리)와 식별자 정규화(하이픈/점 제거, CTN 변환) 결과를 점검했다.

해결

  • 설치/AS 업로드를 상태 머신(설치/ AS)으로 처리하고, 식별자 정규화 후 별도 AS 서버 DB에 반영했다.
  • 모든 설치/AS 행위를 단말 이력 테이블에 사용자·시각과 함께 적재했다.