김재현Hammer Turtle
프로젝트 목록

AI 비용 대시보드

사내 손익관리 시스템(NPA)의 AI 회계비용과 AI Value Hub의 월별 AI 사용 비용을 조직장·개인·전사 단위로 조회하는 대시보드

배경 및 목표

① 조직장이 볼 수 없던 AI 비용: AI 비용은 손익관리 시스템(NPA) 안에서만 조회돼, NPA 권한이 없는 조직장은 자기 조직이 AI에 얼마를 쓰는지 알 수 없었음.

② 흩어진 사용 비용 데이터: 사내 AI Gateway·Snowflake Cortex·SaaS 구독 사용 비용은 전사 AI 사용량 집계 시스템(AI Value Hub)에 따로 있어 실무자가 CSV를 내려받아 엑셀로 조직별 합계를 내고 있었음.

→ NPA와 분리된 별도 대시보드를 만들어 회계비용(NPA)과 사용 비용(AI Value Hub)을 각각의 워크스페이스로 제공하고, 권한은 NPA 역할이 아니라 인사 조직 데이터로 판정함.

역할

시스템 구조 설계 및 주도적 개발 (설계 · 보드 풀스택 · NPA 조회 API · 데이터 수집 · 권한 · 배포)

주요 업무 및 성과

① NPA에서 분리한 조회 보드와 신원 보안

  • 서비스 분리 보드 자체 Keycloak 로그인(Auth.js)을 두고, NPA는 서비스 계정(client_credentials) 토큰으로만 호출해 NPA 세션·권한 없이도 로그인되게 함.
  • 신원 위조 차단 서버 프록시가 허용목록 경로만 통과시키고, 클라이언트가 보낸 이메일·사번은 버린 뒤 로그인 세션 값으로 덮어써 파라미터 변조로 남의 비용을 조회하는 경로를 막음.
  • 조직장 판정 NPA 조회 API를 새로 만들어 인사 조직 트리와 발령 이력으로 월별 조직 범위를 정하고, 회사코드 + 조직코드 쌍으로 조직을 식별해 다른 회사의 같은 코드끼리 금액이 합쳐지는 문제를 막음.
  • 조회 위임 실무 담당자가 조직을 골라 조회 권한을 요청하면 서버가 그 조직장을 승인자로 찾아 알림 메일을 보내고, 승인되면 조직장이 아니어도 그 조직 비용을 보게 함.

② AI Value Hub 월 확정본 수집 파이프라인

  • 인증·수집 GCP Workload Identity Federation으로 키 없이 AI Value Hub를 호출하고, 매일 스케줄러가 새 확정 버전을 확인해 받은 적 없는 버전만 적재함.
  • 정합성 페이지 단위로 받은 레코드를 contentHash로 대사한 뒤 수집 회차(run) 단위로 저장해 화면은 항상 최신 확정본만 읽고 정정본이 와도 이전 데이터와 섞이지 않게 함.
  • 실시간 보완 월 확정본이 오기 전인 오늘·이번 달은 사내 AI Gateway 사용량 통계(llmstat)로 채워, 확정 전에도 지금까지 쓴 비용을 보게 함.
  • 화면 조직·구성원 순위·개인·전사 대시보드와 회사·유형·모델·조직 4축 다중 필터, 조직별 소계를 제공해 실무자가 엑셀로 하던 조직별 집계를 화면에서 끝내게 함.

결과

① 2026년 9월 prod 오픈: NPA 회계비용과 AI 사용 비용 두 워크스페이스로 운영 중이고 월 확정본은 자동으로 수집됨.

② 조회 범위 확대: NPA 권한이 없던 조직장도 자기 조직의 AI 비용을 직접 확인하게 됨.

회고

처음부터 NPA는 데이터 소스 중 하나라고 정해 두었다. NPA 특유의 응답 형식·허용목록은 전용 경로 안에만 두고, 로그인·세션·서비스 계정 토큰만 공통으로 썼다. 덕분에 AI Value Hub가 두 번째 소스로 붙을 때 기존 코드를 거의 건드리지 않았다. → 외부 원천은 조용히 바뀐다는 것도 배웠다. 버전을 올리지 않고 필드가 늘거나 상품명 표기가 바뀌어도 총액은 그대로라 검증을 통과했다. 그래서 매달 실데이터로 분류 결과를 다시 확인하고, 사고가 날 때마다 원인을 저장소 문서의 규칙으로 남겼다.