여러 외부 관리자 사이트를 오가던 운영 액션을 하나의 대시보드로 통합한 이야기

소개

시도하고자 했던 것과 그 이유를 알려주세요.

  1. 문제 상황

저희 회사에서는 "구독" 방식으로 모빌리티를 고객에게 대여하고, 특정 주기별로 고객에게 구독료를 받는 비즈니스를 수행하고 있습니다. 이 때, 고객에게 미납이 발생하면 미납 경과일 수에 따라 적절한 운영 액션이 필요합니다.

예를 들면 이런 업무입니다.

- 현재 차량 상태조회

- 원격 차단

- 원격 차단해제

- 차량 위치조회

- 주행/이력 확인

- 결제 확인 후 후속처리

- 회사 내부 관리자 사이트에 처리 완료 액션 반영

문제는 이 기능들이 한곳에 있지 않았다는 점입니다.

운영자는 먼저 회사 내부 관리자 사이트에서 고객과 차량을 확인한 뒤, 차량별로 어느 외부 관리자 사이트를 써야 하는지 판단해야 했습니다. 각 차량은 제조사와 모델에 따라 어떤 차량은 외부 관리자 사이트 A, 어떤 차량은 외부 관리자 사이트 B로 나뉘어 있었습니다.

게다가 외부 관리자 사이트 A는 계정이 여러 개로 나뉘어 있었습니다. 같은 사이트라도 어떤 계정으로 접속해야 하는지 틀리면 차량이 검색되지 않았습니다. 로그인을 위해서는 반드시 OTP 인증이 필요했으며 세션이 만료되면 OTP 인증도 다시 해야 했습니다.

운영자는 결국 이런 흐름을 반복했습니다.

1. 회사 내부 관리자 사이트 접속

2. 고객/차량/계약 상태 확인

3. 차량이 어떤 외부 관리자 사이트 대상인지 판단

4. 맞는 외부 관리자 사이트 접속

5. 계정 선택 또는 재로그인

6. OTP 인증

7. 차량 검색

8. 상태조회/차단/해제/위치조회 실행

9. 결과 확인

10. 다시 회사 내부 관리자 사이트로 돌아와 후속 액션 처리

11. 운영팀에 결과 공유

업무시간에는 번거롭더라도 사람이 처리할 수 있었습니다. 하지만 영업시간 외나 주말에는 문제가 컸습니다.

- 고객이 결제했는데 바로 차단해제가 안 됨

- 담당자가 PC 앞에 있어야만 처리 가능

- 모바일에서 외부 관리자 사이트를 쓰기 어려움

- OTP 인증 때문에 다른 사람이 대신 처리하기 번거로움

- 어떤 사이트/계정으로 들어가야 하는지 모르면 대응이 지연됨

- 처리 후 회사 관리자 사이트에 후속 액션을 누락할 수 있음

그래서 목표를 단순히 “대시보드 만들기”가 아니라, 운영자가 외부 관리자 사이트에 직접 들어가지 않아도 핵심 액션을 처리할 수 있게 만드는 것으로 잡았습니다.

  1. 목표

- 여러 외부 관리자 사이트에 흩어진 기능을 운영 대시보드 하나로 통합

- 차량별 외부 시스템과 계정을 자동 판정

- 상태조회/차단/차단해제/위치조회를 대시보드 버튼으로 실행

- 모바일에서도 운영자가 빠르게 확인하고 액션 실행 가능

- 맥미니 기반 Hermes 자동화로 24/7 대응

- 결제 이벤트를 감지하면 자동으로 차단해제 처리

- 차단/해제 등 상태 변경 후 회사 내부 관리자 사이트의 후속 액션까지 자동 처리

- 실행 결과를 기록으로 남기고, 운영자가 결과를 한 화면에서 확인

진행 방법

  1. 사용한 도구

- 운영 대시보드: Next.js 기반 내부 웹 대시보드

- 자동화 런타임: Mac mini + Hermes Agent

- 브라우저/외부 사이트 자동화: Playwright 및 Node.js 스크립트

- 백그라운드 실행: 로컬 브리지 서버, LaunchAgent, Hermes cron

- 검증: 실제 운영 케이스 기준 화면 확인, 자동화 결과 로그, 회귀 테스트

핵심 구조는 간단합니다.

운영자 / 모바일 / PC

        ↓

통합 운영 대시보드

        ↓

Hermes 로컬 브리지 on Mac mini

        ↓

외부 관리자 사이트 A/B, 회사 내부 관리자 사이트

        ↓

상태조회 / 차단 / 차단해제 / 위치조회 / 후속처리 기록

  1. 진행 흐름

Step 1. 외부 관리자 사이트를 “운영 액션” 기준으로 다시 정리

처음에는 사이트별로 자동화하려고 했습니다.

- 외부 관리자 사이트 A 자동화

- 외부 관리자 사이트 B 자동화

- 회사 관리자 사이트 자동화

하지만 운영자가 원하는 것은 “어느 사이트에 들어갈지”가 아니었습니다. 운영자가 원하는 것은 다음 액션이었습니다.

- 이 차량 지금 어떤 상태야?

- 차단해야 해?

- 차단해제해야 해?

- 위치를 확인해야 해?

- 결제가 해결됐으면 후속처리까지 끝났어?

그래서 사이트 중심이 아니라 운영 액션 중심으로 바꿨습니다.

한국 모바일 앱 스크린샷

이렇게 바꾸니 운영자는 더 이상 “어느 사이트에 들어가야 하지?”를 고민하지 않아도 됐습니다.

Step 2. 차량별 외부 시스템과 계정 자동 판정

가장 먼저 해결해야 했던 건 차량별 라우팅이었습니다.

모든 차량이 같은 외부 관리자 사이트에 있는 것이 아니었고, 일부 사이트는 계정도 여러 개였습니다. 기존에는 운영자가 경험적으로 판단했습니다.

자동화에서는 회사 내부 관리자 데이터의 차량 정보를 기준으로 다음을 자동 판정했습니다.

- 이 차량이 어느 외부 관리자 사이트 대상인지

- 외부 사이트 A라면 어떤 계정으로 들어가야 하는지

이 판정이 있어야 대시보드 버튼 하나가 실제로 동작할 수 있었습니다.

예를 들어 운영자가 상태조회 버튼을 누르면 자동화는 내부적으로 다음을 처리합니다.

차량 식별

→ 외부 시스템 판정

→ 계정 선택

→ 세션 확인

→ 필요 시 OTP 로그인

→ 차량 검색

→ 상태 조회

→ 결과 구조화

→ 대시보드에 표시

운영자는 이 복잡한 과정을 보지 않고 결과만 확인합니다.

Step 3. OTP와 세션 문제를 운영 자동화 안으로 흡수

자동화에서 가장 현실적인 장애물은 OTP였습니다.

외부 관리자 사이트는 보안상 세션이 만료되면 OTP 인증을 요구합니다. 운영자가 직접 할 때는 당연한 일이지만, 24/7 자동화를 하려면 이 흐름이 큰 병목이 됩니다.

여기서는 휴대폰 문자 수신 환경을 컴퓨터와 연동하는 방식으로 풀었습니다. 운영용 휴대폰에 도착하는 OTP 문자를 Google Messages로 Mac mini와 연동해두고, 자동화가 필요한 순간에 컴퓨터에서 OTP 메시지를 읽어 입력하도록 구성했습니다.

흐름은 다음과 같습니다.

외부 관리자 사이트 로그인 필요

→ OTP 문자 발송

→ 운영용 휴대폰이 문자 수신

→ Google Messages 연동으로 Mac mini에서 문자 확인

→ 자동화가 최신 OTP 추출

→ 로그인 화면에 OTP 입력

→ 세션 저장 후 이후 작업은 세션 재사용

처음에는 단순히 “매번 로그인” 방식으로 접근할 수 있었지만, 실제 운영에는 맞지 않았습니다.

- 매번 로그인하면 OTP가 자주 발생

- 계정이 여러 개라 인증 흐름이 복잡해짐

- 세션이 살아 있는데도 다시 로그인하면 오히려 실패 가능성 증가

- 주말/야간에는 OTP 확인 주체가 애매해짐

- OTP 입력만 자동화해도 세션 관리가 없으면 같은 문제가 반복됨

그래서 OTP 해결은 단독 기능이 아니라 세션 전략과 함께 설계했습니다.

1. 가능한 한 기존 세션을 재사용

2. 같은 계정으로 반복 로그인하지 않기

3. 세션이 없거나 만료됐을 때만 OTP 인증 플로우 실행

4. OTP는 Google Messages 연동 화면에서 최신 인증번호를 읽어 입력

5. 로그인 성공 후 계정별 세션을 저장해 다음 작업에 재사용

6. OTP나 세션 실패는 자동화 실패가 아니라 복구 가능한 상태로 기록

7. 운영자에게는 raw 에러 대신 “인증 필요”, “조회 지연”, “재시도 중”처럼 이해 가능한 상태로 표시

Step 4. 통합 운영 대시보드 구축

운영 대시보드는 여러 외부 사이트의 기능을 한곳에 모으는 역할을 합니다.

대시보드에서 운영자는 다음을 바로 할 수 있습니다.

- 차량 상태조회

- 차단

- 차단해제

- 위치조회

- 처리 결과 확인

- 최근 자동 처리 이력 확인

- 회사 관리자 사이트 후속처리 결과 확인

Step 5. 모바일 친화적으로 만들어 영업시간 외 대응을 쉽게 함

기존 외부 관리자 사이트는 PC 기준으로 설계된 경우가 많았습니다. 모바일에서 로그인하고, 차량을 검색하고, 메뉴를 찾아 차단해제까지 하는 과정은 운영자가 긴급 상황에서 처리하기에 불편했습니다.

통합 대시보드는 모바일에서도 핵심 액션을 빠르게 볼 수 있도록 만들었습니다.

- 중요한 상태를 먼저 보여주기

- 액션 버튼을 찾기 쉽게 배치

- 결과 모달을 모바일에서도 읽기 쉽게 구성

- 긴 목록보다 “지금 처리할 것” 중심으로 보기

- 외부 사이트 접속 없이 대시보드에서 실행

이 변화가 특히 영업시간 외와 주말에 컸습니다.

고객이 결제를 했거나 긴급히 위치 확인이 필요한 상황에서, 담당자가 PC 앞에 있지 않아도 모바일로 상태를 보고 필요한 액션을 실행할 수 있게 됐습니다.

Step 6. Mac mini + Hermes로 24/7 운영 자동화

운영 대시보드의 버튼은 프론트엔드만으로는 끝나지 않습니다. 실제 외부 관리자 사이트에 접속하고, 세션을 유지하고, 필요한 작업을 실행하는 백그라운드 실행 환경이 필요했습니다.

그래서 Mac mini에서 Hermes Agent를 24/7로 운영했습니다.

Mac mini는 다음 역할을 합니다.

- 외부 관리자 사이트 세션 유지

- OTP/로그인 자동화 처리

- 대시보드 버튼 요청 수신

- 상태조회/차단/해제/위치조회 실행

- 결제 이벤트 모니터링

- 자동 차단해제 실행

- 회사 내부 관리자 사이트 후속처리

- 실행 로그와 결과 저장

이 구조 덕분에 대시보드는 클라우드 웹앱처럼 보이지만, 실제 민감한 운영 자동화는 통제 가능한 로컬 환경에서 실행됩니다.

Step 7. 결제 이벤트 감지 후 자동 차단해제까지 연결

가장 중요한 자동화는 “미납 해결 후 차단해제”였습니다.

기존에는 고객이 결제해도 운영자가 확인하고 외부 관리자 사이트에 직접 들어가 차단해제를 해야 했습니다.

저희 서비스는 미납된 고객이 일정 기간이 경과하게 되면 미납금 회수를 위해 차량을 원격 차단시키는 작업을 실행하고 있으며, 미납이 해결되면 즉시 차단을 해제해 주는 것이 필요했으나 영업시간 외나 주말에는 이 액션이 지연되는 경우가 잦았으며, 이 지연은 고객 경험에 바로 악영향을 주는 상황이였습니다.

자동화 이후에는 다음 흐름으로 바뀌었습니다.

결제 이벤트 감지

→ 고객/차량 식별

→ 현재 차단 상태 확인

→ 필요한 경우 차단해제 실행

→ 회사 내부 관리자 사이트 후속 액션 처리

→ 처리 결과 기록

→ 운영 대시보드에 자동 처리 이력 표시

중요한 점은 hermes 기반으로 24/7 결제 이벤트를 모니터링하고, 즉시 차단 해제 처리까지 진행해주며 처리 결과는 즉시 운영 대시보드에 기록되고 담당자에게 슬랙 메신저로 보고되기 때문에 관리포인트가 사실상 사라졌다는 점입니다.

결과와 배운 점

배운 점과 나만의 꿀팁을 알려주세요.

과정 중에 어떤 시행착오를 겪었나요?

도움이 필요한 부분이 있나요?

앞으로의 계획이 있다면 들려주세요.

배운점: 일단 시도하면 안 되는 자동화는 거의 없고, 문제 정의가 중요하다.

처음에는 외부 관리자 사이트, OTP, 여러 계정, PC 전용 화면 때문에 자동화가 어려울 것처럼 보였습니다. 하지만 하나씩 쪼개보면 대부분은 사람이 반복하는 브라우저 행동이었습니다.

중요한 질문은 “이게 자동화될까?”가 아니라 아래였습니다.

- 사람이 이 일을 할 때 어떤 순서로 판단하는가?

- 어떤 입력값이 있어야 다음 단계로 넘어가는가?

- 성공과 실패를 무엇으로 판정하는가?

- 실패했을 때 사람이 개입해야 하는 지점은 어디인가?

- 자동화가 끝났다고 말하려면 어떤 기록이 남아야 하는가?

문제가 이 수준으로 정의되면, 구현 방법은 생각보다 많이 열립니다.

도움 받은 글 (옵션)

참고한 지피터스 글이나 외부 사례를 알려주세요.

(내용 입력)

3
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.