신성혁
실무2024.12 ~ 2025.06 (약 6개월)

전력 검침 SNMP 서버

원격검침 IoT 환경의 LTE 모뎀을 관리하는 SNMP 메인 서버를 개발 및 PM으로 이끌었습니다.

4인 (PM 겸임)
팀 규모
27개
관리 테이블
약 6개월
개발 기간

개요

원격검침 IoT 환경에서 현장 LTE 모뎀들을 관리하는 SNMP 메인 서버를 4인 팀에서 개발했고, SNMP 메인 서버 개발과 PM 역할을 함께 맡았습니다. 서버는 초기화·헬스체크 후 별도 스레드에서 SNMP 트랩 리스너를 띄우고, 30분 간격 주기 작업 스케줄링과 MQTT 핸들러, 사용자 명령어 인터페이스를 함께 구동합니다.

트랩 수신은 UDP IPv6 기반으로 받아 ARIA-128-GCM(BouncyCastle, 96비트 인증 태그·12바이트 IV)으로 복호화한 뒤 파싱해 저장하고, SNMP GET/SET 요청은 헤더 파싱과 BER 인코딩으로 PDU를 변환해 처리했습니다. SNMP_DB와 Radius_DB 두 데이터베이스에 OID 매핑을 통해 27개 테이블(SysInfo, SysStatus, 각종 트랩 테이블 등)에 동적으로 삽입하는 DAO를 구현했습니다.

MQTT로는 request/response 토픽을 나눠 GET/SET/UPGRADE 같은 JSON 명령을 비동기로 처리하고, LTE 모뎀 펌웨어는 파일 전송 후 CRC로 검증하고 실패 시 재시도하는 원격 업그레이드 로직을 붙였습니다. 인증은 LTE ID 기반으로 하고 마스터 키 제공자로 암호화 키를 동적으로 관리했습니다.

핵심

  • SNMP 트랩 수신(UDP IPv6) 및 ARIA-128-GCM 복호화
  • SNMP GET/SET 처리, 2개 DB · 27개 테이블 동적 저장 DAO
  • MQTT 기반 명령 처리(JSON)
  • LTE 모뎀 펌웨어 원격 업데이트(CRC 검증, 재시도)

기술 스택

LinuxJavaSNMPv2cSNMP4JMQTTBouncyCastle