콘텐츠로 이동

릴리스 노트

각 릴리스에서 변경된 내용을 엣지 박스를 운영하는 운영자에게 중요한 부분으로 추려 정리했습니다. 사용 중인 장치에서 버전이 어떻게 보고되는지는 버전 및 업데이트를 참조하세요.

  • Logs 페이지가 한 추론 틱에 속한 모든 줄을 묶어 보여줍니다. 각 줄에는 입력 및 출력 데이터소스 칩이 표시되며, 틱 칩을 누르면 입력 읽기부터 각 출력 쓰기까지 그 틱의 모든 줄이 열립니다. 모니터링을 참조하세요.
  • 실시간 페이지를 열고 닫을 때 생기는 연결 로그가 더 이상 Logs 페이지를 뒤덮지 않습니다.
  • 입력 태그 매핑이 채널당 고정된 한 행으로 열립니다. 태그 찾아보기 후 빈 채널 채우기는 비어 있는 행만 채웁니다. 탐색 순서가 항상 모델의 입력 순서와 같지는 않으므로 저장 전에 순서를 확인하세요.
  • 일부만 매핑해도 저장되며, 아직 매핑되지 않은 채널 수를 알려줍니다. 플로우를 활성화하려면 여전히 모든 채널이 매핑되어 있어야 합니다.
  • 업데이트는 업데이트 전 백업을 만들기 전에 데이터베이스에 쓰는 모든 컨테이너를 중지하므로, 백업이 일관된 상태로 만들어집니다.
  • 업데이트가 성공하면 박스는 최신 백업 3개(AIBOARD_BACKUP_KEEP, 0이면 모두 보관)와 현재 및 이전 릴리스의 이미지만 남기고 나머지를 삭제합니다.
  • 사이드바 항목이 펼친 상태와 접은 상태에서 같은 스타일을 사용합니다.
  • 메모리 카드가 스왑을 포함한 장비 전체를 보여주고, 추론 서비스가 실행 중인 메모리 한도 대비 사용량도 표시합니다.
  • 새 스토리지 상태 카드가 디스크 사용량과 데이터베이스 크기를 보여줍니다.
  • GPU 메모리가 시스템 RAM과 공유되는지(Jetson) 전용인지 표시합니다.
  • 사이드바 접기 토글이 Workspace 헤더로 이동했습니다.
  • 접힌 사이드바의 항목이 정사각형으로 가운데 정렬되며, 사이드바 하단의 계정 카드가 더 이상 잘리지 않습니다.
  • 두 쓰기 작업이 데이터베이스에서 겹치면, 두 번째 작업이 추론 결과 배치를 버리는 대신 기다립니다.
  • Logs 페이지가 매초 반복되어 다른 내용을 밀어내던 “할 일 없음” 줄 대신, 파이프라인의 상태 변화와 어떤 출력에 쓰고 있는지를 보고합니다.
  • 추론 서비스 자체의 로그 줄이 이제 Logs 페이지에 표시됩니다.
  • About 패널이 박스에 설치된 릴리스를 보고합니다. 버전 및 업데이트를 참조하세요.
  • 대시보드는 백엔드 중단 시간이 얼마나 길든 스스로 다시 연결됩니다.
  • 기존 박스 위에 설치할 때도 업데이트와 같은 데이터베이스 스냅샷을 만들며(--no-backup으로 건너뛰기), 새 compact-db.sh는 보존 정책이 행을 삭제한 뒤 디스크 공간을 돌려줍니다. 디스크가 가득 참 / 데이터베이스가 무한정 증가함을 참조하세요.
  • 실행 중인 스택이 설치에 사용한 번들 디렉터리 밖의 /opt/aiboard에 위치하므로, 오래된 번들을 삭제해도 박스가 멈추지 않습니다.
  • 사이드바가 라이트/다크 테마를 따르며, System 위의 탐색 그룹에 이름이 붙었습니다.
  • 재부팅 후 박스는 구성한 TLS 설정 그대로 시작하며, 업데이트 전 백업은 번들에 포함된 이미지를 사용하므로 인터넷 연결 없이도 동작합니다.
  • 모델을 전환할 때 새 모델이 준비될 때까지 이전 모델이 계속 서비스하며, 거부된 페이로드 하나가 더 이상 배치 전체를 버리지 않습니다.
  • 구성 테이블의 행을 우클릭 메뉴에서 삭제할 수 있으며, Modbus 데이터소스의 Host 필드에 호스트 이름을 입력할 수 있습니다.
  • 태그 데드밴드 설정이 제거되었습니다. 화면에 표시되고 저장되었지만 데이터에는 적용된 적이 없습니다.
  • 입력 태그 오프셋이 문서에 적힌 대로 적용됩니다: 값 = 원시값 × 스케일 + 오프셋.

운영자에게 보이는 변경이 없는 유지보수 릴리스: 1.49.0(2026-09-01)은 JetPack 4.5에서 추론 중 호스트 메모리 사용을 줄이도록 GPU 런타임 설정을 변경합니다. 별도 조치는 필요 없습니다.

  • 대시보드가 가동 시간 수치에 이름을 붙이고, 그 옆에 백엔드의 가동 시간을 표시합니다.
  • Pipeline Health가 부팅 이후 전체가 아니라, 페이지에 적힌 대로 최근 5분을 집계합니다.
  • 추론 엔진이 다시 시작되면 모델을 스스로 다시 로드합니다.
  • 업데이트는 변경되지 않은 이미지를 건너뛰며, 추론 메모리 한도가 Jetson이 제공할 수 있는 양에 맞춰집니다.
  • 모델을 업로드할 때 이름을 지정할 수 있습니다.
  • 설치 시 GPU가 존재하는지뿐 아니라 실제로 연산할 수 있는지 확인합니다.
  • 오류 메시지가 코드 대신 이유를 설명하며, 추론 엔진이 멈추면 대시보드가 그 원인을 알려줍니다.
  • 모델 다시 로드에 실패해도 박스가 더 이상 Ready로 보고하지 않습니다.
  • 안내 툴팁을 키보드로도 열 수 있습니다.
  • 한 컴퓨터에서 로그인에 반복해서 실패해도 더 이상 모든 운영자가 박스에서 잠기지 않습니다.
  • 모델이 로드되지 않았을 때 대시보드가 대기를 표시하며, 엔진은 서비스할 수 없는 모델로는 스트리밍을 거부합니다.
  • 구성 가져오기의 건너뛰기 사유가 번역되며, 외부 Alarms API는 플레이스홀더 데이터를 반환하는 대신 501 Not Implemented로 응답합니다.

과부하된 싱크가 버린 개수가 이제 화면에 표시됩니다

섹션 제목: “과부하된 싱크가 버린 개수가 이제 화면에 표시됩니다”

지난 릴리스에서 따라오지 못하는 싱크가 자신의 가장 오래된 예측을 버리도록 했고, 모든 폐기를 집계한다고 안내했습니다. 그 수치는 백프레셔 뷰에 있었습니다 — 확인은 가능하지만, 장비가 도는 것을 지켜보는 동안 들여다보는 자리는 아니었습니다.

이제 파이프라인 상태가 그 수치를 담습니다. 큰 숫자는 모든 싱크의 합계라 한눈에 폐기가 일어나는지 알 수 있고, 호버하면 출력 데이터소스별로 나뉘어 어느 싱크인지 알려줍니다. 한 번도 버린 적 없는 싱크는 0으로 표시되며, 0이 아닌 순간 타일이 붉게 바뀝니다.

이 수치는 백엔드가 마지막으로 시작한 이후의 누적값이라, 그 일이 있었다는 것을 알려줄 뿐 지금 일어나는 중인지는 알려주지 않습니다. 후자를 보려면 몇 번의 새로 고침에 걸쳐 값이 움직이는지 지켜보십시오.

뒤처진 싱크가 이제 사용 중인 언어로 알립니다

섹션 제목: “뒤처진 싱크가 이제 사용 중인 언어로 알립니다”

출력 싱크가 뒤처지는 것과 출력 싱크가 쓰기에 실패하는 것은 서로 다른 상황이지만, 지금까지 알림은 둘 다 “출력 쓰기 실패”라고 불렀습니다 — 게다가 어떤 언어로 인터페이스를 쓰든 사유는 영어로 덧붙었습니다.

이제 백로그에는 영어·한국어·베트남어 각각의 문구가 있습니다: 싱크가 뒤처지고 있으며, 대기열에서 예측 몇 건을 버렸고, 추론에는 영향이 없다는 내용입니다. 실제 쓰기 실패는 그대로이며 싱크가 보고한 사유를 계속 표시합니다. 그 문구는 브로커나 장비에서 온 것이라 번역되지 않아도 읽을 가치가 있기 때문입니다.

실시간 차트의 툴팁이 다시 시각을 보여줍니다

섹션 제목: “실시간 차트의 툴팁이 다시 시각을 보여줍니다”

Real-time Monitor 차트의 점 위에 마우스를 올리면 툴팁 제목에 시각 대신 원시 타임스탬프 숫자가 표시되었습니다. 이제 표시 환경설정에서 고른 형식 그대로 시각으로 표시되며, 아래의 축 및 Latency Over Time 차트와 일치합니다.

지연 시간 선이 곡선으로 그려집니다

섹션 제목: “지연 시간 선이 곡선으로 그려집니다”

Inference Stats의 지연 시간 백분위 선이 이제 부드러운 곡선입니다. 이미 그렇게 그려지던 오류율 차트 및 스파크라인과 일치합니다.

곡선은 측정된 모든 지점을 지나며 어떤 지점보다 위로 솟거나 아래로 꺼지지 않으므로, 화면에 계산되지 않은 수치가 나타나는 일은 없습니다. 달라지는 것은 버킷 사이의 모양입니다. 한 버킷에만 나타난 급증은 이제 뾰족한 모서리가 아니라 둥근 봉우리로 보입니다. 한 버킷짜리 급증은 선의 뾰족함이 아니라 툴팁에서 확인하십시오.

Real-time Monitor 차트는 의도적으로 직선 구간을 유지합니다. 이 차트는 이상 징후를 살피는 원시 센서 측정값을 그리며, 두 표본 사이에 그린 곡선은 아무도 측정하지 않은 모양을 암시하게 됩니다.

뒤처진 출력 싱크가 더 이상 파이프라인 전체를 늦추지 않습니다

섹션 제목: “뒤처진 출력 싱크가 더 이상 파이프라인 전체를 늦추지 않습니다”

각 출력 싱크에는 자체 대기열이 있습니다 — 몇 초 분량의 예측 — 일시적인 지연을 흡수하기 위한 것입니다. 지금까지는 그 대기열보다 오래 뒤처진 싱크가 모든 것을 기다리게 만들었습니다. 추론 자체가 가장 느린 싱크의 속도로 떨어졌고, 다른 싱크도 함께 느려졌습니다.

이제 따라오지 못하는 싱크는 자기 대기열에서 가장 오래된 예측을 버려 새 예측을 받을 자리를 만듭니다. 추론은 설정된 주기대로 계속 실행되며, 정상인 싱크는 영향을 받지 않습니다.

가장 최신 값이 남습니다. 대시보드에 필요한 것은 현재 점수이지 6초 전의 점수가 아니기 때문입니다.

조용히 버려지는 것은 없습니다. 버려진 예측은 싱크별로 집계되어 백프레셔 화면에서 확인할 수 있으며, 계속 버리는 싱크는 자체 경고를 발생시킵니다 — 뒤처짐으로 보고되며, 이는 실패와 의도적으로 구분됩니다. 느린 싱크와 고장난 싱크는 대응이 다릅니다.

바쁜 차트 페이지를 떠날 때 빈 페이지에 남겨지지 않습니다

섹션 제목: “바쁜 차트 페이지를 떠날 때 빈 페이지에 남겨지지 않습니다”

실시간 모니터가 많은 채널의 긴 창을 그리는 중에 다른 메뉴를 클릭하면, 주소창만 바뀌고 아무것도 나타나지 않는 경우가 있었습니다. 새로고침하기 전까지 원하던 페이지는 표시되지 않았습니다.

차트가 느렸다기보다, 양보하지 않았던 것입니다. 차트는 주기적으로 다시 그리는데 한 번 시작한 그리기는 끝까지 실행된 뒤에야 브라우저를 다른 일에 내어줍니다. 그런데 이동하려는 페이지도 자신의 코드를 불러오려면 바로 그 순간이 필요합니다. 이제 차트는 이동이 시작되는 즉시 다시 그리기를 멈추고 새 페이지가 뜬 뒤 재개하며, 대상 페이지는 클릭 이후가 아니라 메뉴 항목에 마우스를 올리는 순간부터 로딩을 시작합니다.

멈춰 있는 동안 유실되는 값은 없습니다. 측정값은 계속 쌓이고, 이후 첫 그리기에서 모두 표시됩니다.

샘플링을 주기로 설정하게 되어, 느린 센서도 표현할 수 있습니다

섹션 제목: “샘플링을 주기로 설정하게 되어, 느린 센서도 표현할 수 있습니다”

데이터소스의 샘플링 속도는 정수 헤르츠 단위의 주파수였고, “탱크 온도를 20초에 한 번 읽는다”를 표현할 수 없었습니다. 정수로는 0으로 반올림되기 때문입니다. 이 필드는 이제 샘플링 주기 (ms) 이며, 1 ms부터 5분에 한 번까지 설정할 수 있습니다.

기존 데이터소스는 업그레이드 시 자동 변환됩니다 — 10 Hz로 설정된 소스는 100 ms가 되며 이전과 똑같이 동작하므로 직접 손볼 것이 없습니다. 값의 방향이 이전 필드와 반대입니다. 주기가 클수록 샘플링이 느려집니다.

느린 속도에서 잘못 표시되던 두 가지도 함께 고쳤습니다. 센서 카드는 설정대로 정상 동작하는 데이터소스에 더 이상 영구적인 정체 경고를 표시하지 않습니다. 임계값이 고정 5초가 아니라 설정된 샘플링 주기를 따르기 때문입니다. 실시간 모니터에는 5분, 15분, 30분 창이 추가되었습니다. 20초에 한 번 샘플링하면 60초 창에는 점이 세 개뿐이기 때문입니다.

차트 선이 실제로 측정된 값만 잇습니다

섹션 제목: “차트 선이 실제로 측정된 값만 잇습니다”

이전에는 선을 부드러운 곡선으로 그렸기 때문에, 두 측정값 사이의 모양은 측정된 것이 아니라 그리기 라이브러리가 만들어낸 것이었습니다. 갑작스러운 스파이크를 지켜보는 차트에서 이는 잘못된 선택입니다. 곡선은 정작 중요한 지점의 모서리를 둥글게 깎아내고, 두 점 사이의 매끄러운 호는 데이터가 “이 두 측정값이 있다”고만 말할 때 추세처럼 보입니다.

이제 Real-time Monitor와 지연 시간 시계열에서 측정값을 직선 구간으로 잇습니다. 선이 전보다 각지게 보이며, 기반 데이터는 전혀 바뀌지 않았고 그리는 방식만 더 정직해졌습니다.

다른 차트 — GPU/CPU 히스토리, 오류율, 작은 요약 스파크라인 — 는 그대로입니다.

긴 시간 창과 많은 채널에서도 버티는 차트

섹션 제목: “긴 시간 창과 많은 채널에서도 버티는 차트”

Real-time Monitor는 선택한 시간 창 안의 샘플마다 행을 하나씩 만들었기 때문에, 비용이 샘플링 레이트와 창 길이에 따라 늘어나고 상한이 없었습니다. 100 Hz로 동작하는 50채널 데이터소스에서 30초 창은 준비를 마쳐야 할 간격의 약 두 배가 걸렸고, 60초 창은 거의 네 배였습니다. 차트가 데이터에 뒤처지고 화면이 끈적하게 느껴졌습니다.

이제 차트는 화면이 실제로 표시할 수 있는 해상도로 그려집니다. 작업량이 데이터소스의 속도가 아니라 차트의 너비를 따르기 때문에, 30초 창과 60초 창의 비용이 서로 비슷해졌습니다.

빈 구간은 여전히 빈 구간으로 표시됩니다. 어떤 구간에 값이 없는 채널은 선으로 이어붙이지 않고 비워 두므로, 워밍업과 누락된 예측이 그대로 보입니다.

기본적으로 닫히는 네트워크 표면

섹션 제목: “기본적으로 닫히는 네트워크 표면”

운영자가 당연히 닫혀 있다고 생각할 만한 세 가지 표면이 열린 채로 출시되어 있었습니다. 이에 의존하는 것이 있다면 업그레이드 전에 확인하십시오.

  • 출하된 박스에서 더 이상 Swagger를 제공하지 않습니다. 이전에는 모든 환경에서 http://<box>:5000/에 익명으로 응답하며 내부 API 카탈로그 전체를 노출했습니다. 이제는 Development 환경 전용이며 /swagger에 마운트됩니다. ASPNETCORE_ENVIRONMENT=Production으로 실행되는 박스는 API 문서를 전혀 제공하지 않습니다. 대신 API 레퍼런스를 사용하십시오.
  • 릴리스 compose 파일이 더 이상 50051 포트를 호스트로 게시하지 않습니다. 추론 gRPC 서비스에는 자체 인증이 없으므로, 이제 컨테이너 네트워크에서만 접근할 수 있습니다(Jetson에서는 루프백 전용).
  • 외부 API를 끄면 실제로 닫힙니다. ExternalApi:Enabled=false는 이전에 /api/external/v1/* 요청을 인증 없이 통과시켰습니다. 킬 스위치라는 이름과 달리 우회로처럼 동작한 것입니다. 이제 해당 경로는 404를 반환합니다. 내부 경로는 영향을 받지 않습니다.

INFERENCE_STUB=1로 실행 중인 박스도 더 이상 조작된 예측을 내보내면서 정상이라고 보고하지 않습니다. 헬스 체크가 스텁 모드임을 알려줍니다.

Sensor Monitor가 숨긴 채널을 유지합니다

섹션 제목: “Sensor Monitor가 숨긴 채널을 유지합니다”

이전에는 플로우를 시작할 때마다 모든 채널이 다시 표시되어, 100개 중 4개만 보고 있던 운영자가 시작할 때마다 100개를 모두 돌려받았습니다. 이미 보고 있던 플로우를 다시 시작하는 경우에도 마찬가지였습니다. 이제 표시 여부는 플로우에 귀속됩니다. 같은 플로우를 다시 시작하면 선택이 유지되고, 다른 플로우로 전환할 때만 전체 표시로 초기화됩니다. 태그 매핑이 달라지면 같은 채널 번호가 다른 것을 의미하기 때문입니다.

높은 샘플링 레이트에서 더 안정적인 차트

섹션 제목: “높은 샘플링 레이트에서 더 안정적인 차트”

Real-time Monitor는 더 이상 샘플이 도착할 때마다 다시 그리지 않습니다. 차트 갱신 주기는 데이터소스 레이트와 무관하게 일정한 수준으로 제한되며, 차트 버퍼는 고정된 100 Hz 가정 대신 데이터소스의 실제 SamplingHz를 기준으로 크기가 결정됩니다. 기존 가정은 그보다 높은 레이트로 구성된 데이터소스에서 선택한 시간 창을 잘라내고 있었습니다.

벤치마크가 플로우별로 보고합니다

섹션 제목: “벤치마크가 플로우별로 보고합니다”

벤치마크 요약은 결과를 합치지 않고 플로우별로 묶으며, 모든 측정 티어가 어떤 플로우에서 나왔는지 기록합니다. 이전에 비어 있던 power 및 microbench 티어도 포함됩니다. 티어 간 결과가 어긋나면 조용히 하나를 고르지 않고 그 사실을 명시합니다.

구성 전송이 파이프라인 전체를 옮깁니다

섹션 제목: “구성 전송이 파이프라인 전체를 옮깁니다”

내보낸 구성에는 연결, 태그 매핑 그리고 그 위의 플로우가 담기므로, 파이프라인을 다른 박스로 옮길 때 더 이상 모든 플로우를 손으로 다시 만들 필요가 없습니다. 플로우는 데이터소스와 모델을 이름으로 참조하므로 파일에 데이터베이스 Id가 들어가지 않습니다.

가져온 플로우는 항상 비활성 상태로 들어옵니다. 파일을 불러온다고 파이프라인이 가동되지는 않습니다. 대상 박스에 플로우의 모델이 없으면 그 플로우는 건너뛰고, 가져오기 보고서에 업로드해야 할 모델과 함께 이름이 표시됩니다 — 모델을 업로드한 뒤 같은 파일을 다시 가져오세요.

활성화된 플로우가 사용 중인 데이터소스를 다시 쓰게 되는 가져오기는 해당 플로우 이름과 함께 disable_flow_first로 거부됩니다. 플로우를 비활성화하고, 가져오고, 다시 활성화하세요. 박스 자신의 내보내기를 다시 가져오는 경우도 마찬가지입니다. 이전에는 값이 우연히 같았기 때문에만 동작했습니다.

함께 수정됨: 내보낸 구성에서 입력 samplingHz와 출력 tagCount가 빠져, 박스 간에 옮긴 구성이 미묘하게 달라지는 문제가 있었습니다.

플로우가 데이터소스별 페어링과 활성화를 대체합니다

섹션 제목: “플로우가 데이터소스별 페어링과 활성화를 대체합니다”

플로우는 입력 데이터소스 하나, 모델 버전 하나, 그리고 임의 개수의 출력 데이터소스를 묶습니다. 이제 어떤 파이프라인이 선택되었는지를 기록하는 유일한 곳입니다. 플로우를 활성화하면 가동되며, 한 번에 최대 하나만 활성화할 수 있습니다.

업그레이드 후 해야 할 일: 기존 설치에서는 없습니다 — 업그레이드가 현재 페어링으로 플로우를 만들고 활성 상태를 유지합니다. 다만 두 가지 동작이 달라집니다:

  • 활성화 위치가 바뀌었습니다. Data Source 페이지는 이제 연결 관리용이며, 활성화와 모델 페어링은 Task Manager 페이지에 있습니다.
  • 구성 가져오기에 더 이상 플로우가 포함되지 않습니다. 내보낸 구성은 연결과 태그 매핑이며, 새 박스에 가져온 뒤 Task Manager에서 플로우를 만드세요. 이 릴리스 이전에 내보낸 파일도 계속 가져올 수 있으며, 데이터소스별 활성화 플래그는 무시됩니다.

제거된 API: POST /api/datasources/{input,output}/{id}/enable, 그리고 POST|DELETE /api/datasources/input/{id}/active-model. /api/flows를 사용하세요. /api/model-runtime의 intentSource는 이전에 "datasource"를 보고하던 곳에서 이제 "flow"를 보고합니다.

Task Manager 및 API 개요를 참조하세요.

실시간 파이프라인 뷰 (Preview Flow)

섹션 제목: “실시간 파이프라인 뷰 (Preview Flow)”
  • 새로운 Preview Flow 페이지는 Input → Model → Output 파이프라인을 인터랙티브한 읽기 전용 그래프로 시각화하며, 실행 중인 추론 체인에는 실시간 데이터 흐름 애니메이션이 표시되고, 엣지는 (추측이 아닌) 실제 활성 모델 연결을 반영합니다.
  • 캔버스에서 아무 노드나 클릭하면 모델 페어링, 매핑 편집, 테스트 쓰기, 활성화 등 해당 설정 대화상자로 바로 이동합니다.

Preview Flow를 참조하세요.

  • 새로운 NotificationCenter(헤더의 종 모양 아이콘)는 추론 시작/실패, 모델 활성화, 로그 경고/오류, 싱크 쓰기 실패를 토스트와 목록으로 표시합니다.
  • 추론이 사용자가 직접 요청하지 않은 이유로 중지될 때 — 다른 데이터소스가 전환되었거나, 실행 중인 활성 데이터소스가 편집 또는 삭제되었을 때 — 이제 알림이 발생합니다.
  • 백엔드 재시작 후, 이전에 활성화되어 있던 입력 데이터소스는 자동으로 Ready 상태와 Start 컨트롤을 회복합니다 — 추론 자체가 자동으로 다시 시작되지는 않습니다 — 모니터링을 참조하세요.

알림을 참조하세요.

  • MQTT 입력 어댑터는 이제 와일드카드 기본 토픽 대신 매핑된 태그에만 구독하므로, 관련 없는 브로커 트래픽이 추론을 멈추게 만들 수 없습니다.
  • 매핑된 토픽이 조용해지면 모델에 오래된 마지막 값을 계속 공급하는 대신 추론을 중지하며, 브로커 연결이 끊어지면 어댑터가 백오프와 함께 재연결합니다.
  • NaN/Infinity 값은 모델에 도달하기 전에 거부되며, Test Connection은 이제 원시 예외 이름 대신 실제 소켓 수준 실패(거부됨, 연결 불가, DNS)를 보고합니다.

입력 데이터소스 및 MQTT 입력 중단 또는 오류를 참조하세요.

  • MQTT 출력 싱크는 이제 QoS 1로 게시하므로, 브로커가 거부한 쓰기(예: ACL로 거부된 토픽)는 성공을 조용히 보고하는 대신 실패로 표시됩니다.

출력 데이터소스를 참조하세요.

  • 설정 필드는 이제 선택한 항목에 따라 표시되거나 숨겨집니다 — 예를 들어 TLS 필드는 TLS가 활성화된 경우에만 나타나므로, 폼은 실제로 적용되는 항목만 요청합니다.
  • 태그 매핑 및 연결 오류는 이제 원시 백엔드 코드 대신 일반 문장으로 표시됩니다.
  • Test Write는 데이터소스 유형에 맞는 페이로드 템플릿에서 시작하며, 태그가 매핑되지 않은 출력은 더 이상 활성화할 수 없습니다.

입력 데이터소스 및 출력 데이터소스를 참조하세요.

오프라인 번들의 데이터소스 TLS 인증서

섹션 제목: “오프라인 번들의 데이터소스 TLS 인증서”
  • MQTT 및 OPC UA 데이터소스 TLS 인증서가 이제 로컬 개발 환경뿐 아니라 오프라인/ 에어갭 설치 및 번들 업데이트 경로에서도 지원됩니다.

오프라인 번들 설치를 참조하세요.

2026-06 — 실행 공급자, CSV 출력 및 컨테이너 강화

섹션 제목: “2026-06 — 실행 공급자, CSV 출력 및 컨테이너 강화”

엣지 하드웨어를 위한 실행 공급자 모드

섹션 제목: “엣지 하드웨어를 위한 실행 공급자 모드”
  • 런타임은 이제 실행 공급자를 명시적으로 분류합니다: TensorRT, CUDA, 또는 CPU. GPU 박스는 기본적으로 GPU 가속을 우선하며, GPU 라이브러리를 사용할 수 없는 경우 정상적으로 폴백합니다.
  • 엄격 모드를 사용하면 자동으로 이루어지는 CPU 폴백을 시작 실패로 전환할 수 있으므로, GPU 박스가 알아차리지 못한 채 CPU에서 동작하는 일이 없습니다.
  • 대시보드는 이제 활성 실행 공급자를 표시하므로 사용자의 박스가 실제로 무엇을 사용하고 있는지 확인할 수 있습니다. 모니터링을 참조하세요.
  • 새로운 CSV 출력은 예측값 결과를 순환되는 CSV 파일에 기록하며, 파일 크기, 순환, 플러시 동작을 구성할 수 있습니다. 출력 데이터소스를 참조하세요.
  • 정직한 CPU 온도. 박스에 읽을 수 있는 CPU 열 센서가 없는 경우, 대시보드는 이제 오해를 일으키는 0 °C 대신 N/A를 표시합니다.
  • 디스크 공간 회수. 메트릭 데이터베이스는 이제 보존 정리 후 확보된 공간을 운영 체제에 반환하며, 전체 행 수에 상한을 두어 트래픽 급증이 디스크를 가득 채우지 못하도록 합니다.
  • 정확한 런타임 상태. Model Manager 런타임 카드는 유휴 상태이거나 워밍업 중일 때 더 이상 잘못된 “Desync”를 표시하지 않습니다.
  • 모든 서비스는 이제 비루트 사용자로 실행됩니다.
  • 웹 프론트엔드는 내부적으로 비특권 포트에서 수신 대기합니다 (호스트 포트는 변경되지 않습니다).

v0.5 — 추론 관측 가능성 대시보드

섹션 제목: “v0.5 — 추론 관측 가능성 대시보드”
  • 지연 시간 분해 (큐 / 전처리 / 모델 실행 / 후처리)
  • 시간 집계를 위한 윈도우 및 버킷 컨트롤
  • 모델별 지연 시간 임계값
  • OPC-UA, MQTT 어댑터
  • 속도 제한 및 백프레셔 보고
  • 모델 버전 관리 및 단계적 승격
  • 실시간 푸시 기반 대시보드 업데이트
  • 역할 기반 접근 제어(RBAC) 및 감사 로그