ServiceNow 운영을 더 쉽게 만드는 PS1 GUI Utility를 만든 이야기
들어가며
이 글에서 다루는 현장에서는 데이터 추출과 Database View 작성 과정에서 절차 인수인계 비용, 권한 차이로 인한 작업 정체가 계속 발생했다. 그래서 GUI로 원시 데이터 내보내기와 Database View 정의를 지원하는 PowerShell Utility를 만들었다.
본 글은 그 배경, 구현 방침, 도입 효과를 정리한 소개 글이다.
- 도구명: PS1 SNOW Utilities
- 리포지토리: https://github.com/arimagml-collab/PS1SOWUtilities
- 구현 형태: PowerShell 5.1 + WinForms(Windows 로컬 실행)
배경 1: 데이터 내보내기는 가능하지만 운영 부담이 크다
ServiceNow 표준 UI에서도 데이터 내보내기는 가능하다. 그러나 실운영에서는 다음과 같은 문제가 누적된다.
- 부서마다 필요한 형식이 다르다(CSV/JSON/Excel).
- 매번 같은 컬럼 구성으로 뽑고 싶지만 리스트 뷰 변경의 영향을 받기 쉽다.
- “전체 컬럼 + 내부명 포함” 정형 추출을 요구하면 절차 설명 비용이 급증한다.
- 경우에 따라 CSV 출력 권한에 대한 추가 설명·조정이 필요하다.
그 결과 유지보수 측은 “데이터 활용"보다 “데이터 추출 방법 지원"에 시간을 쓰게 된다. 그래서 발상을 바꿔 API 기반으로 각 부서가 정형 컬럼을 스스로 출력할 수 있는 구조를 마련했다.
배경 2: Database View 작성은 RDB 지식 격차가 드러나기 쉽다
Database View는 유용하지만 비엔지니어 또는 RDB 경험이 적은 사용자에게는 장벽이 높다.
sys_db_view와sys_db_view_table의 조작 맥락이 분리되어 화면 이동이 많다.- 내부 컬럼명을 한 화면에서 일괄 확인하기 어렵다.
- Admin 권한이 없는 환경에서는 다른 환경에서 내부명을 조사해 가져와야 한다.
- WHERE/JOIN 정의를 수기로 입력하면 오탈자나 참조 실수가 발생하기 쉽다.
그래서 후보를 보면서 GUI로 조합하는 지원이 필요하다고 판단했다.
만든 것: PS1 SNOW Utilities
PS1 SNOW Utilities는 다음 3개 탭으로 구성했다.
1. Export 탭
- 대상 테이블 선택(또는 수동 입력)
- 필터 지정(전체 /
sys_updated_on기간) - 출력 형식 선택(CSV / JSON / Excel)
- 출력 폴더 지정 및 실행 로그 확인
목표는 부서별 데이터 활용을 멈추지 않으면서 추출 절차를 정형화하는 것이다.
2. Database View Editor 탭
- View 내부명·라벨 입력
- 베이스 테이블과 Prefix 설정
- JOIN 추가(좌우 컬럼, Variable Prefix, LEFT JOIN 지정)
- 컬럼 후보 재조회 및 표시 대상 선택
- View 생성과 결과 링크 표시
목표는 ServiceNow 표준 UI의 조작 단절을 메우고 정의 실수를 줄이는 것이다.
3. 설정 탭
- 인스턴스명
- 인증 방식(사용자 ID+비밀번호 / API 키)
- 언어 설정
입력값은 settings.json에 저장해 반복 작업의 초기 입력을 줄였다. 민감값은 Windows DPAPI(CurrentUser)로 암호화하며, 같은 사용자·같은 단말에서만 복호화되도록 구현했다.
구현 시의 현실적 절충
사내 환경에서는 설치 프로그램 배포나 상주 앱 도입의 허들이 높다. 그래서 이번에는 최악의 경우 텍스트 복사·붙여넣기로도 실행 가능한 PowerShell 스크립트 배포를 우선했다.
이 절충으로 도입 장벽을 최소화하면서 현장의 즉효성을 확보할 수 있었다.
도입 효과
도입 후 크게 나타난 효과는 다음 3가지다.
- 유지보수 문의가 “추출 절차"에서 “데이터 활용 상담"으로 이동했다.
- Database View 작성 시 정의 누락·오탈자가 줄었다.
- 부서 간 포맷이 정렬되어 자동 집계 전처리 부담이 낮아졌다.
특히 운영 부서는 Excel로 1차 분석을 하고, 연계 팀은 JSON을 사용하는 병행 운영을 동시에 돌릴 수 있게 된 점이 실무적으로 컸다.
제약과 주의점
- 테이블 목록은
sys_db_object참조이므로 ACL에 따라 조회가 되지 않을 수 있다(수동 입력으로 회피 가능). - 환경에 따라 WHERE/JOIN 정의 자동 저장에 제약이 있어 ServiceNow 측 수동 보완이 필요할 수 있다.
- 본 도구는 ServiceNow사와 무관하며, 해당 회사의 승인·보증·지원 대상이 아니다.
정리
이번 PS1 SNOW Utilities는 데이터 추출과 Database View 정의에서 발생하는 실무 병목을 줄이기 위해 만들었다.
개인적으로 PowerShell로 GUI를 만들 수 있다는 사실은 알고 있었지만, 직접 착수할 생각까지는 하지 못했다. 생성형 AI의 지원을 받아 거의 노코드에 가까운 지시 기반으로 여기까지 형태를 만든 경험은 AI 진화 속도를 강하게 체감하게 했다. 동시에 기존 로우코드/노코드 도구는 경쟁 우위를 재정의해야 하는 국면에 들어섰고, 진부화 압력을 피하기 어렵다고 본다.