분리된 내부망의 IoT 카메라 통합 관리 웹

웹 · 엣지 디바이스 · 네트워크 설계2025.07 ~ 2025.10

서로 끊긴 여러 내부망에 흩어진 카메라를 서버 한 대에서 찾아내고, 녹화 스케줄과 설정을 한 곳에서 거는 웹을 만들었습니다.


과제 배경

카메라가 여러 내부망에 나뉘어 있어 망마다 따로 들어가 상태를 보고 설정을 바꿔야 했습니다. 망이 분리되어 있으면 가운데서 한꺼번에 볼 방법이 없어, 장애가 나도 아는 데까지 시간이 걸립니다.

주요 설계 결정

망 분리

고정 서버 한 대가 각 내부망을 노드와 링크로 보고 훑도록 설계했습니다

망을 트는 것은 보안 결정이라 우리가 정할 수 없습니다. 망을 그대로 두고 서버 쪽에서 닿는 구조로 풀었습니다.

상태 판정

Alive/Dead 만 보지 않고 CPU 온도와 자원 사용량을 함께 올립니다

살아 있다는 신호와 정상이라는 것은 다릅니다. 죽기 전에 먼저 뜨거워집니다.

영상 전달

녹화본은 지정한 sFTP 로 보내고 실시간 확인은 RTSP 뷰어로 나눴습니다

보관과 확인은 요구가 다릅니다. 한 경로로 합치면 둘 다 어중간해집니다.

제공 기능

제공 기능
기능내용
멀티 네트워크 스캔분리된 내부망을 각각 훑어 카메라를 찾고 망 그룹별로 묶습니다.
녹화 스케줄과 카메라 설정녹화 시작 시각과 기간, 해상도와 화이트밸런스와 감마를 원격에서 겁니다.
상태 모니터링과 라이브 뷰CPU 온도와 사용량을 위젯으로 보고, RTSP 로 현장 영상을 바로 봅니다.

수행 결과

  • 망마다 따로 하던 설정을 한 화면에서 겁니다.
  • 장애 징후를 자원 사용량으로 먼저 봅니다.
  • Docker 이미지로 묶어 설치 환경에 상관없이 같은 것이 뜹니다.

화면 구성

화면의 구조와 기능을 보여주는 시안이며, 색과 서체를 포함한 디자인은 다음 단계에서 정합니다.

기기녹화설정

기기 목록

  • A망 12대 정상
  • B망 8대 중 1대 응답 없음
이름상태CPU 온도

기기 목록

망 그룹별로 카메라 상태를 한눈에 봅니다

CAM-A-03

RTSP 라이브 화면
  • CPU 62도
  • RAM 48%
  • 마지막 응답 3초 전
적용

카메라 상세

한 대의 상태를 보고 설정을 바꿉니다

녹화 스케줄

녹화본은 지정한 sFTP 로 보냅니다

기기스케줄마지막 전송

녹화 스케줄

언제 찍고 어디로 보낼지 정합니다

시스템 구성도

사용자와 기기서버저장소와 외부HTTPS스캔/설정RTSP녹화본운영자 웹Next.jsPC 와 모바일에서 봅니다AP CAMLinux 엣지 + CSI내부망마다 흩어져 있습니다고정 서버Docker망을 훑고 설정을 겁니다sFTP 보관소녹화본이 쌓이는 곳기기 목록과 상태망 그룹별로 묶습니다

점선은 외부 서비스를 사용하는 항목입니다.

설계 원칙

설계 원칙과 적용 방법
원칙적용 방법
살아 있다는 신호와 정상은 다르다CPU 온도와 자원 사용량을 함께 올려 판정합니다
설치 환경이 달라도 같은 것이 뜬다Docker 이미지로 묶어 배포합니다

적용 기술

Next.jsRaspberry PiLinuxRTSPDockerSpringsFTP

관련 프로젝트