프린터 95대, 토너 잔량 확인부터 기록까지 자동화한 후기

1. 소개: 프린터 토너 관리하기 너무 귀찮다..."해줘..?!"

사내에는 HP, 삼성, 교세라, 브라더 등 여러 제조사의 네트워크 프린터가 있습니다.

프린터 수가 많다 보니 일일이 확인하기도 번거롭고, 언제 토너를 교체해야 할지 판단하기도 어려웠습니다.

많은 분들이 아시겠지만, 각 프린터의 IP로 접속하면 관리 페이지가 나와 토너 잔량을 볼 수 있습니다(USB로 연결하는 프린트는 안되는거 같습니다...아시는분?ㅜㅜ).

그래서 aside와 함께 프린터별 토너 잔량을 자동으로 조회하고, Google Sheets에 날짜별로 기록하는 작업을 만들었습니다.

목표는 세 가지였습니다.

  • 여러 제조사의 프린터 잔량을 한 번에 확인하기

  • 매일 잔량을 기록해 소비 추세 파악하기

  • 잔량이 10% 미만이면 표시해 교체 대상 쉽게 찾기

2. 진행 방법

사용한 도구

도구

역할

Aside

반복 작업 실행 및 자동화

Printer Toner HTML 스킬

제조사·모델별 토너 잔량 추출

프린터 웹 관리 페이지

현재 토너 잔량 확인

Google Sheets

프린터 현황 및 날짜별 잔량 관리

① 프린터 현황부터 정리했어요

먼저 기존 관리표(ip-프린터) 정보를 기준으로, 각 프린터의 웹 관리 페이지에 접속해 프린터 모델을 다시 정리했습니다.

자동 조회 대상은 총 95대의 프린터, 114개 토너 항목이었습니다.

컬러 프린터는 한 대에 여러 색상의 토너가 들어가기 때문에 프린터 수와 토너 항목 수가 다릅니다.

② 웹페이지에서 토너 잔량을 자동으로 읽었어요

또, 각 프린터의 웹 관리 페이지에 접속해 프린터 모델를 확인 현재 토너 잔량을 확인하도록 구성했습니다.

여기서 중요한 점은 화면을 캡처해서 숫자를 인식하는 OCR 방식이 아니라, HTML·JavaScript 데이터·DOM에서 잔량을 추출했다는 것입니다.

제조사와 모델마다 웹 관리 페이지의 구조가 달라 추출 방식도 구분했습니다.

제조사

잔량 확인 방법

HP

카트리지별 잔량 표시값 추출

Samsung

SyncThru 관리 페이지의 잔량 데이터 조회

Kyocera

토너 관리 화면의 표시 데이터 추출

Brother

토너 막대 높이를 백분율로 환산

특히 Brother 일부 모델은 잔량이 숫자가 아닌 막대로 표시되었습니다.

이 경우 **50px = 100%**라는 가정을 적용해 백분율로 환산했습니다. 따라서 직접 확인한 수치와 환산한 수치는 내부적으로 구분했습니다.

또한 프린터 설정을 변경하거나 인쇄하는 작업 없이, 잔량 정보만 읽도록 구성했습니다.

③ Google Sheets에 날짜별로 기록했어요

조회한 잔량은 Google Sheets의 해당 날짜 열에 자동 입력했습니다.

예를 들어 다음과 같이 기록이 누적되는 방식입니다.

프린터

토너

10/7

10/8

10/9

프린터 A

Black

35%

33%

31%

프린터 B

Cyan

18%

15%

12%

프린터 C

Black

9%

8%

7%

위 표는 기록 방식 설명을 위한 예시입니다.

여기에 잔량이 10% 미만이면 셀을 붉게 표시하는 조건부 서식을 적용했습니다.

덕분에 전체 프린터를 일일이 확인하지 않아도 교체 검토가 필요한 토너를 쉽게 구분할 수 있었습니다.

④ 평일 오전 8시 30분에 실행하도록 설정했어요

Aside에서 월요일부터 금요일까지 오전 8시 30분에 실행하도록 일정을 구성했습니다.(루틴!)

전체 흐름은 다음과 같습니다.

프린터 목록 확인 → IP별 잔량 조회 → Google Sheets 입력 → 저장 결과 검증

조회에 실패한 장비는 임의로 0%를 입력하지 않고 건너뛰도록 했습니다. 기존 기록도 그대로 보존했습니다.

3. 실행 결과

오늘자 저장 검증 결과입니다.

구분

결과

조회 대상 프린터

95대

전체 토너 항목

114개

직접 수치 추출

67개

Brother 막대 환산

40개

조회 실패

7개

정상 입력 및 재확인

107개

<text color="success" weight="medium">114개 항목 중 107개를 기록하고 저장값까지 확인했습니다.</text>

기존 데이터나 다른 날짜의 기록도 변경되지 않았습니다.

다만 브라우저 연결 오류로 일부 실행이 중단되기도 했습니다. 따라서 반복 실행을 설정하는 것뿐 아니라 실패 여부를 확인하는 과정도 필요하다는 점을 알게 되었습니다.

4. 시행착오와 배운 점

구분할 건 사용자가 판단해요.

같은 제조사라도 모델에 따라 웹 관리 페이지 구조가 달랐습니다.

처음에는 모델별로 실제 잔량 데이터가 어디에 표시되는지 확인해야 했지만, 이후에는 확인된 구조를 재사용할 수 있었습니다.

오류가 있는지도 사용자가 다시 확인해요.

접속에 실패한 프린터를 잔량 0%로 처리하면 실제로 토너가 없는 것처럼 보일 수 있습니다.

그래서 숫자가 확인된 경우에만 기록하고, 오류가 발생한 항목은 기존 값을 유지했습니다.

자동화에서 중요한 것은 단순히 모든 칸을 채우는 것이 아니라 신뢰할 수 있는 데이터만 기록하는 것이었습니다.

5. 자동화 이후 달라진 점

기존에는 프린터마다 접속해 토너 잔량을 확인해야 했지만, 이제는 Google Sheets에서 여러 프린터의 상태를 한 번에 살펴볼 수 있게 되었습니다.

특히 날짜별 기록이 쌓이면서 다음과 같은 관리가 가능해졌습니다.

  • 토너 잔량 감소 추세 확인

  • 교체 검토 대상 빠르게 식별

  • 토너 교체 주기와 구매 시점 판단에 참고

아직 잔량 데이터를 활용한 정확한 구매량 예측까지 구현한 것은 아닙니다만, 차곡차곡 기록을 쌓는 중입니다~! 토너 교체 이력, 보유 재고, 구매 내역을 연결해 단순 잔량 조회를 넘어 관리 시스템을 만들어 보고잡습니당.^^.

6. 마무리

이번 작업에서 가장 의미 있었던 부분은 개별 장비의 웹 관리 정보를 자동으로 수집해 하나의 관리 데이터로 만들었다는 점입니다.

사실 이번 사례는 토너관리의 귀찮음 극복이 목적보다 AI와 스킬을 활용에서 자동화 할게 뭐가있을까 고민하다가 나온 사례입니다. 하다보면 자동화할 게 참 여러가지 인 것 같습니다.

회사에서 aside 브라우저를 자주쓰니 너무 좋습니다^^.....

(화이팅 힘내세요!)직장인분들께 참고가 되었으면 좋겠습니다.


사용한 자료

  • 직접 구성한 Printer Toner HTML 스킬 및 제조사별 어댑터

  • Aside 및 Google Sheets

  • GPTERS24-GIACOMO-WRITE-POST — 지피터스 지아코모(안재흥) 스터디장

  • write-post — 닿님

2
1개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만