프로젝트 목록

프로젝트

KRMS

KAON Remote Management Solution

IPTV 셋톱박스와 네트워크 장비의 프로비저닝, OTA, 원격 제어와 모니터링을 위한 Go 백엔드를 개발했습니다.

담당 영역

Go 백엔드 개발

프로젝트 개요

KRMS는 IPTV 셋톱박스와 라우터·리피터 같은 네트워크 장비를 원격으로 관리하는 솔루션입니다. 프로비저닝과 OTA, 원격 제어, 데이터 수집·가공, 실시간 모니터링을 통해 서비스 사업자의 장비 관리와 서비스 품질 향상을 지원합니다.

Go 백엔드 개발

Go 기반 백엔드 개발에 참여했습니다. 장비에서 전달되는 데이터와 제어 요청을 다루며, 외부 연동과 내부 서비스 통신, 장비별 통신 프로토콜을 함께 사용하는 시스템입니다.

서비스는 Domain Driven Design을 적용한 MSA 구조입니다. 외부에는 REST API를 제공하고, 내부 서비스 간 통신에는 gRPC를 사용합니다.

설계와 통신 구조

프런트엔드 API와 장비 API, WebSocket 연동을 서비스 그룹과 연결합니다. 서비스 그룹에서 장비 제어 작업을 처리하고, Task와 Device Front를 거쳐 장비와 통신합니다.

장비 연동에는 TR-069, XMPP, MQTT를 사용합니다. API 요청, 비동기 메시지, 장비 통신을 구분해서 읽을 수 있도록 아래 도식에 서비스의 주요 경계를 정리했습니다.

KRMS의 API, gRPC 서비스 그룹, 메시지 큐와 장비 통신 계층을 구분한 구조도

서비스 구성 개요. 그림을 선택하면 확대할 수 있습니다.

데이터와 메시징

MariaDB, MongoDB, Redis를 데이터 저장과 처리에 사용하고, RabbitMQ를 메시지 큐로 사용합니다. 서로 다른 저장소와 메시지 전달 방식을 함께 사용하는 백엔드 환경입니다.

배포 환경

Docker와 Kubernetes 기반으로 서비스를 배포·운영합니다. 배포 환경은 Ubuntu·CentOS·Rocky Linux 기반 On-Premise와 AWS이며, CI/CD에는 GitLab, TeamCity, Harbor를 사용합니다.