SimpleCORE
SYSTEMS & DATA / PROJECT

Printer Workbench

여러 현장의 프린터와 소모품을 원격으로 관리합니다.

자체 개발 · 데스크톱 도구와 수집 Agent

목차 7세부 내용 7
프로젝트 상세
01 / 07
MACOS

여러 현장의 프린터를 같은 기준으로 살펴봅니다.

Workbench는 내장 Agent로 직접 수집하고, 다른 네트워크의 Agent가 보내는 결과도 함께 조회하는 데스크톱 도구입니다. 장치 상태·제조사·소모품 잔량·경보와 추이를 한 화면에 모읍니다. Agent는 장치 탐지와 주기 수집, 결과 전송을 맡습니다. 화면은 영어 UI와 데모 데이터로 구성했습니다.

MACOS

토너 잔량과 부품 수명을 함께 확인합니다.

토너·잉크·드럼·벨트·정착기·폐토너, 용지함, 총·흑백·컬러·양면 매수와 장치 경보를 수집합니다. 소모품 종류·색상·단위를 정규화하고, 잔량 추이와 수집 이력을 함께 보여줍니다. 미측정 값을 0%로 바꾸지 않으며, 폐토너는 비어 있는 양 대신 채워진 양으로 해석합니다. 수집 항목은 장치가 제공하는 MIB에 따라 달라집니다.

MACOS

현장의 수집 결과를 인증된 연결로 전달합니다.

원격 Agent는 HTTPS·mTLS로 결과와 자체 상태를 전송합니다. Workbench에서 등록 키트를 만들고 인증서 만료·폐기·재발급과 원격 설정을 관리합니다. SNMP 자격 증명은 AES-256-GCM으로 저장하며 등록 키트에 포함하지 않습니다. 전송 실패 시 파일 버퍼에 보관하고 간격을 늘려 재시도합니다. 버퍼 상한을 넘으면 오래된 배치를 지우고 이벤트를 남깁니다.

표준·제조사별 MIB를 공통 데이터로 변환합니다.

SNMP v1·v2c·v3를 지원합니다. GET·GETNEXT·GETBULK로 값을 읽으며 SET 요청은 만들지 않습니다. v2c 이상은 GETBULK로 표를 읽고, 반복해서 응답이 없으면 GETNEXT로 전환합니다. 장치별로 시간 제한·재시도 횟수·동시 요청 수를 설정해 수집 부하를 조절합니다.

Printer-MIB(RFC 3805), HOST-RESOURCES-MIB와 MIB-II에서 식별·소모품·카운터·상태를 읽습니다. 장치가 제공하면 Job Monitoring MIB, ENTITY-MIB, Finisher MIB와 PWG 장치 ID도 수집합니다. IPP·LPR·RAW 등 인쇄 경로는 MIB 정보로 조회합니다.

제조사 프로파일은 sysObjectID 판정, 사설 OID, 값의 역할과 디코더를 정의합니다. Brother 바이너리 블록, Ricoh 잔량 코드, OEM 브랜드 식별 같은 차이를 공통 데이터로 바꿉니다. 현장에서는 walk 원본과 정규화 결과를 함께 남겨 재생·분석할 수 있습니다.

SNMPv3는 인증·암호화 모드와 SHA 계열·AES 조합을 설정합니다. v1·v2c의 커뮤니티 통신 자체는 암호화되지 않습니다. 장치와 Agent 사이의 SNMP 보안, Agent와 수신기 사이의 mTLS, 로컬 자격 증명 암호화를 구분해 적용합니다.

  • Java 25
  • Kotlin
  • Compose Multiplatform
  • SNMP4J
  • SQLite
  • mTLS
  • AES-256-GCM
MACOS

제조사 프로파일과 검증 범위를 함께 관리합니다.

HP·Canon·Epson·Ricoh·Kyocera·Brother·Xerox·Lexmark·Konica Minolta·Samsung·Sharp·Dell·OKI·Toshiba TEC·Sindoh·Pantum·Muratec·RISO·Olivetti·Panasonic·Zebra·TSC의 22개 프로파일을 제공합니다. 프린터·복합기를 중심으로 라벨 프린터와 일부 네트워크 스캐너의 식별도 다룹니다. Brother MFC-L3760CDW는 실기기 수집을 검증했습니다. 다른 기기는 공개 SNMP 기록 재생, 시뮬레이터, 프로파일 판정 등으로 검증하며 방법에 따라 확인한 범위가 다릅니다. 모델과 펌웨어에 따라 수집 항목이 다릅니다.

공통 수집 엔진과 두 가지 Agent 실행 방식

Agent와 수집 엔진은 Java 25·SNMP4J를 기반으로 합니다. 비동기 요청과 장치별 가상 스레드로 탐지·수집을 처리하고, 스케줄러·정규화·보고·버퍼·전송을 모듈로 나눕니다. 내장 Agent는 프로세스 내부로, 독립 Agent는 HTTPS로 결과를 전달합니다.

Workbench 화면은 Kotlin·Compose Multiplatform·Coroutines로 구현합니다. SQLite에 장치·스냅샷·수신 이력을 저장하고 Jackson으로 JSON·YAML을 처리합니다. 인증서 발급에는 Bouncy Castle을 사용합니다. Windows·macOS 설치본에는 실행 환경을 포함하고 영어·한국어·일본어 UI를 제공합니다.

Gradle 다중 모듈 빌드와 JUnit 검사를 사용합니다. 프로토콜·MIB·제조사 프로파일·수집기·Agent 런타임을 분리하고, 공개 기록 재생과 시뮬레이터로 정규화와 전송을 검증합니다. 현장 수집은 탐지·수집·기록·내보내기 순서로 진행하며 개별 실패와 취소 이력도 남깁니다.

  • Java 25
  • Kotlin
  • Compose Multiplatform
  • SNMP4J
  • SQLite
  • mTLS
  • AES-256-GCM
© 2026 SIMPLECORE INC.CONTEXT. STRUCTURE. EXPERIENCE.