Jiwon Kim

NB-IoT 단말·회선 중앙관리 시스템

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

  • Java
  • Spring 4.3
  • MyBatis
  • MySQL
  • JSP
  • Apache POI
  • JSch (SFTP)

Overview

개요

NB-IoT 검침 기기(단말)의 생산부터 출고, 통신 회선 상태까지 한곳에서 관리하는 중앙 관제 시스템입니다. 기기 생산 등록, 개통부터 해지까지 회선 이력 추적, 비정상 회선 자동 탐지를 설계하고 구현했습니다.

  • NB-IoT 단말 생산→출고→과금→AS→해지 회선 라이프사이클 관리 모듈 풀스택 설계·구현
  • 단말 마스터 + 이력 2-테이블 스키마 설계, 모든 상태 변경 시 이력 적재(upsert + history)
  • 개통 사이트 ≠ 현재 위치 조건으로 비정상·과금 누수 회선 자동 탐지
  • 대량 엑셀(POI) 일괄 업/다운로드 파이프라인(생산/변경/출고) + AS 시스템 회선 연동

Architecture

시스템 아키텍처

개통/출고지 추적 구조: 생산 시 개통사이트와 현장 실제 설치 위치를 비교해 일치 시 정상, 불일치 시 추적 후 정리하는 흐름
시스템 데이터 흐름

Metrics

성과 지표

약 30만 대

NB-IoT 단말

관리 규모

10% 절감

월 회선비

비정상 회선 자동 탐지

생산~해지 라이프사이클

추적

Troubleshooting

트러블슈팅

비정상 회선 자동 탐지로 과금 누수 정리

문제 상황

NB-IoT 검침 단말의 회선은 개통 사이트와 실제 현재 위치가 어긋날 수 있고, 출고·AS·해지 처리가 누락된 회선은 과금이 계속되어 회선비 누수가 발생했다. 대량 단말을 수작업으로 대조하기는 현실적으로 어려웠다.

원인 가설

단말 마스터 테이블에 개통 사이트와 현재 위치를 함께 관리하면, 두 값이 다른 회선을 동적 필터로 추출해 비정상·과금 누수 회선을 자동 식별할 수 있다.

검증

개통 사이트(OPENIG_AREA) ≠ 현재 위치(NOW_AREA) 조건의 동적 검색 필터(differentArea)와 미출고 필터(onlyOutput)를 구성하고, 추출 결과가 실제 비정상 회선과 일치하는지 확인했다.

해결

  • 개통 사이트와 현재 위치가 다른 회선을 추출하는 자동 탐지 필터를 구현했다.
  • 출고 정리 배치(fixOutputCompany)로 출고/AS/해지 상태를 정상화했다.
  • 이를 통해 과금 누수 회선을 정리, 이력서 기준 자회사 월 회선비 약 10% 절감에 기여했다.

단말 생산 등록 엑셀 업서트 + 이력 추적

문제 상황

생산·변경·출고 단말 정보가 대량 엑셀로 들어오는데, CTN/IMEI/일련번호 표기가 일관되지 않았고(괄호·하이픈·접두 변환 등), 중복 등록 시 기존 데이터를 어떻게 처리할지가 모호했다. 또한 상태 변경 이력이 남지 않아 추적이 어려웠다.

원인 가설

식별자 정규화 → upsert(ON DUPLICATE KEY UPDATE) → 변경 이력 적재를 하나의 파이프라인으로 묶으면, 중복 처리와 추적성을 동시에 확보할 수 있다.

검증

엑셀 파싱 시 CTN 변환(예: 특정 접두 패턴 → 단말 식별 코드)·괄호 제거·하이픈 제거 등 정규화 규칙을 적용하고, 처리 결과(총/성공/실패 건수)가 정확히 집계되는지 확인했다. 모든 생산/변경/출고 행위가 이력 테이블에 적재되는지 점검했다.

해결

  • 생산/변경/출고 엑셀 업로드를 POI 기반 파이프라인으로 구현하고, 식별자 정규화 후 단말 마스터 테이블에 upsert 했다.
  • 단말 마스터 + 이력의 2-테이블 스키마를 설계해 모든 상태 변경을 이력 테이블에 적재(행위 구분 컬럼 + 기간 인덱스)했다.
  • 처리 결과를 건수로 반환해 업로드 신뢰성을 확보했다.

AS 접수 시 회선 상태 자동 전이

문제 상황

NB-IoT 단말의 AS가 접수되면 회선의 현재 위치와 상태를 함께 갱신해야 했으나, AS 모듈과 회선 관리 모듈이 분리되어 있어 상태가 어긋날 수 있었다.

원인 가설

AS 접수 처리 흐름에서 통신방식이 NB-IoT인 건에 한해 회선의 위치·상태를 자동 전이하고 이력을 남기면, 두 모듈 간 데이터 정합성을 맞출 수 있다.

검증

NB-IoT 통신방식 AS 접수 시 단말 현재 위치를 회수 거점으로, 상태를 AS로 자동 변경하고 이력이 적재되는지 확인했다. (AS 모듈 본체의 원인분석/상태전이 로직은 원작자 작업이므로, 회선 관리 연동 부분만 본인 기여로 한정.)

해결

  • AS 접수 흐름에 회선 관리 연동을 추가해, NB-IoT 단말의 위치=회수 거점·상태=AS 자동 전이 + 이력 기록을 구현했다.