
MultiValue 배치 보고서를 AI 기반 모닝 브리핑으로 전환하기
요약
기존 MultiValue 시스템의 야간 배치 보고서를 유지하면서, 그 위에 AI 레이어를 추가하여 역할별 맞춤형 모닝 브리핑을 생성하는 파이프라인 구축 사례를 소개합니다. 데이터 생성 방식은 바꾸지 않고 AI를 통해 정보의 가시성과 통찰력을 극대화하는 전략을 다룹니다.
핵심 포인트
- 기존 레거시 시스템(MultiValue)을 교체하지 않고 AI 레이어만 추가하는 효율적 접근
- 단순 수치 나열을 넘어 보고서 간 관계를 분석하는 교차 통찰력 제공
- 관리자, 재무, 창고 직원 등 직무별 맞춤형 의사결정 요약 생성
- 가공되지 않은 텍스트 데이터에서 실행 가능한 정보 추출
우리는 MultiValue 시스템을 중단시키지 않습니다. 대신 AI가 보고서를 읽게 합니다.
우리의 MultiValue 서버는 수년 동안 야간 배치 작업 (batch jobs)을 실행해 왔습니다. 이 작업들은 안정적이고 신뢰할 수 있으며 믿음직합니다. 매일 밤, phantom 작업들이 운영 보고서를 생성하고, 이전과 동일하게 PH 및 HOLD에 배치합니다.
우리는 현재의 시스템을 교체하려는 것이 아닙니다.
대신, 그 위에 얇은 AI 레이어 (AI layer)를 추가하고 있습니다.
새로운 파이프라인 (pipeline)은 동일한 야간 보고서를 읽고, 구조화된 사실 (structured facts)을 추출하며, 여러 보고서 간의 관계를 이해하고, 관리자, 재무 팀, 창고 직원 및 경영진에게 역할별로 특화된 명확한 모닝 다이제스트 (morning digest)를 전달합니다. 기존의 BASIC 프로그램, PROC 작업 및 phantom 스케줄은 변경되지 않은 채 유지됩니다.
배치 작업은 이전과 똑같이 계속 실행됩니다. 유일한 차이점은 그 다음에 일어나는 일입니다.
가공되지 않은 텍스트에서 지능형 요약으로
이것이 중요한 이유
대부분의 조직은 이미 야간 보고서 안에 숨겨진 가치 있는 정보를 가지고 있습니다. 과제는 데이터를 생성하는 것이 아니라, 적절한 정보를 적절한 시점에 적절한 사람에게 전달하는 것입니다.
AI 다이제스트는 다음과 같은 가치를 제공합니다:
- 운영 문제에 대한 더 빠른 가시성 (visibility)
- 전통적인 보고서가 쉽게 드러내지 못하는 보고서 간 통찰력 (cross-report insights)
- 다양한 비즈니스 역할에 맞춤화된 의사결정 중심의 요약
AI 레이어가 추가하는 것
더 빠른 가시성
창고 관리자는 아침이 되기 전, 제품명, 부족 수량, 공급업체 상세 정보가 이메일로 요약된 재주문 알림을 받을 수 있습니다. 정보는 이미 보고서에 존재했습니다. 이제 그 정보가 더 일찍, 그리고 더 실행 가능한 형식으로 전달될 뿐입니다.
보고서 간 통찰력
전통적인 보고서는 한 번에 하나의 비즈니스 관점만을 보여줍니다. AI 다이제스트는 여러 보고서에 걸친 정보를 연결할 수 있습니다.
예를 들어, 특정 제품이 다음과 같이 나타날 수 있습니다:
- 재주문 보고서 (reorder report)
- 과잉 재고 보고서 (overstock report)
- 미결 주문 보고서 (open orders report)
이러한 관계를 함께 살펴보면 실제 운영상의 문제를 발견하는 경우가 많습니다.
의사결정 중심의 요약 (Decision-Oriented Summaries)
보고서는 수치를 제공합니다.
AI 다이제스트는 맥락 (context)을 제공합니다.
고립된 수치를 제시하는 대신, 비즈니스 상황을 강조하고 오늘 가장 중요한 조치 사항을 식별합니다.
산업 전반에 적용 가능한 패턴
동일한 접근 방식은 MultiValue 시스템이 매일 밤 운영 보고서를 생성하는 모든 곳에 적용됩니다.
| 산업 분야 | 매일 밤 PH / HOLD에서 실행되는 항목 | 다이제스트를 받아야 하는 대상 |
|---|---|---|
| 유통 및 도매 (Distribution & Wholesale) | 재고 가치 평가, 재주문 알림, 매출채권 (AR) 연령 분석, 저회전 재고, 미결 주문 | 총지배인 (GM), 창고 관리자, 구매 담당자, 영업 관리자 |
| ... |
보고서는 이미 존재합니다. AI 레이어는 단순히 이를 더 접근하기 쉽고 유용하게 만들 뿐입니다.
예시 워크플로우 (Example Workflow)
야간 처리 (Overnight Processing)
- 기존 팬텀 잡 (phantom jobs)이 보고서를 생성합니다.
- 예약된 추출기 (extractor)가 PH 및 HOLD 레코드를 읽습니다.
- 구조화된 사실 (structured facts)이 JSON으로 추출됩니다.
- AI 에이전트가 역할별 맞춤 요약을 생성합니다.
- 개인화된 다이제스트가 이메일을 통해 자동으로 전달됩니다.
기존 MultiValue 비즈니스 로직에는 어떠한 변경도 필요하지 않습니다.
다이제스트의 모습
MultiValue 서버를 운영하는 농산물 유통 기업이라는 작동 예시를 사용하여, 매일 아침 PH (팬텀 잡)와 HOLD (스풀된 보고서)에 실제로 들어있는 내용은 다음과 같습니다:
재고 재주문 보고서 (INVENTORY REORDER REPORT) 날짜: 06-07-2026 시간: 04:48pm
============================================================================================
제품명 (Product Name) 현재고 (OnHand) 최소 (Min) 부족 (Short) 주문량 (ToOrder) 예상 가치 (Est. Value)
...
저회전 / 과잉 재고 보고서 (SLOW-MOVING / OVERSTOCK REPORT) 실행: 06-07-2026 04:48pm
================================================================================
순위 (Rank) 제품명 (Product Name) 현재고 (OnHand) 연간 판매량 (SoldYr) 과잉 (Excess) 과잉 가치 (Excess Val)
...
매출채권 보고서 (ACCOUNTS RECEIVABLE REPORT) 실행: 2026-06-07 04:48pm
고객ID (CustID) 고객명 (Customer Name) 주문 (Orders) 출하 잔액 (Ship Balance) 주문 잔액 (Order Balance) 신용 한도 (Credit Limit) 상태 (Status)
...
이것이 바로 AI 요약(AI digest)이 해당 데이터를 변환하여, 매일 아침 각 대상에게 전달하는 결과물입니다.
AI 생성 요약 보고서 샘플
구축 방법 — Rocket U2 (Unidata 및 Universe 테스트 서버 - 데모 계정)와 로컬 온프레미스 (On Prem) LLM AI 에이전트를 사용하여 테스트했습니다.
아래 다이어그램은 야간 배치 실행 (overnight batch run)부터 아침 이메일 전달까지의 전체 파이프라인을 보여줍니다. 주목해야 할 핵심 경계는 중간에 위치한 부분입니다. 가공되지 않은 PH 및 HOLD 텍스트는 완전히 서버 측에 머뭅니다. 정제된 구조화된 JSON의 소량의 토큰(tokens)만이 네트워크를 통해 클라이언트 LLM으로 전달됩니다.
구성 요소 1 — JSON 추출 스키마 (JSON extraction schema)
모든 PH 및 HOLD 보고서는 하나의 스키마 항목을 가집니다. 단일 범용 파서 (generic parser)가 이 모든 것을 처리합니다. 새로운 보고서를 추가한다는 것은 하나의 항목을 추가하는 것을 의미하며, 다른 어떤 코드도 변경할 필요가 없습니다.
# schema_registry.py — 도메인 간에 변경되는 유일한 파일
SCHEMAS = {
"INV_REORDER": {
...
구성 요소 2 — 야간 추출기 (Nightly extractor)
cron에 의해 트리거되거나 MultiValue BASIC에서 직접 실행되며, 03:00에 실행됩니다:
! 기존 배치 프로그램에서 — 보고서 완료 후 실행
EXECUTE "python3 /opt/digest/nightly_extractor.py"
MultiValue Python API를 통해 각 PH 및 HOLD 레코드를 읽고, 스키마 기반 추출 (schema-driven extraction)을 실행하며, spaCy로 엔티티 (entities)를 태깅합니다. 또한 여러 보고서에 걸쳐 나타나는 제품 및 고객을 포함하는 문서 간 NetworkX 엔티티 그래프 (cross-document NetworkX entity graph)를 구축하고, 단일 불변 JSON 파일을 저장합니다. 이 파일은 감사 기록 (audit record) 역할을 합니다. 즉, 나중에 LLM이 설명하는 모든 숫자는 정확한 PH 및 HOLD 항목으로 추적됩니다.
구성 요소 3 — REST API
REST FastAPI 서버를 생성합니다. 어떤 날짜에 대해서도 미리 계산된 JSON을 반환합니다. 요청 시점에는 계산이 전혀 이루어지지 않으며, 50ms 미만의 순수 파일 읽기 작업만 수행됩니다.
@router.get("/digest/{run_date}")
def get_digest(run_date: str, token=Depends(verify_jwt)):
path = OUTPUT_DIR / f"digest_{run_date.replace('-','')}.json"
...
구성 요소 4 — 추출된 JSON
네트워크를 통해 전송되는 데이터입니다. 제품 유통 예시의 실제 출력물입니다.
{
"facts": {
"reorder": { "count": 8, "total_value": 143273.02,
...
로컬 LLM 모델에 적합하며, 클라우드가 필요하지 않습니다.
구성 요소 5 — 자율 AI 에이전트 (Autonomous AI agent)
영업일마다 매일 아침 실행됩니다. JSON을 가져와서 대상(audience)별로 어떤 알림이 관련 있는지 결정하고, 역할에 맞춘 서사(narrative)를 생성하며, HTML을 렌더링하고 이메일을 발송합니다.
AUDIENCES = {
"executive": {"recipients":["gm@co.com"], "lens":"Revenue impact and top 3 actions only."},
"operations": {"recipients":["warehouse@co.com"], "lens":"Every alert. Full product names and quantities."},
...
에이전트는 각 대상에게 어떤 심각도 수준 (severity level)을 전달할지, 관련 알림이 없는 경우 대상을 건너뛸지, 어떤 톤 (tone)을 사용할지를 자율적으로 결정합니다. GM(총괄 매니저)은 세 개의 불렛 포인트(bullets)를 받고, 창고 관리자는 모든 제품 라인을 받습니다. 재무팀은 매출채권 (AR) 정보만 받습니다.
경영진 요약 (Executive Digest)
중점 분야:
- 매출 영향 (Revenue impact)
- 핵심 비즈니스 리스크 (Critical business risks)
- 상위 3가지 조치 사항 (Top three actions)
운영 요약 (Operations Digest)
중점 분야:
- 제품 부족 (Product shortages)
- 재고 알림 (Inventory alerts)
- 공급업체 조치 사항 (Vendor actions)
재무 요약 (Finance Digest)
중점 분야:
- 매출채권 (Accounts receivable)
- 신용 노출 (Credit exposure)
- 현금 흐름 영향 (Cash flow implications)
하나의 데이터 소스. 다각적인 비즈니스 관점.
이점 (Benefits)
| 기존 (Before) | 개선 후 (After) |
|---|---|
| 소수의 전문가만이 읽는 보고서 | 의사 결정권자에게 정보가 전달됨 |
| ... |
변화되는 점 (What This Changes)
이 접근 방식은 이미 잘 작동하고 있는 시스템을 방해하지 않으면서 MultiValue 환경을 현대화합니다.
배치 작업 (Batch jobs)은 그대로 유지됩니다.
보고서 (Reports)도 온전하게 유지됩니다.
수년간 쌓아온 운영 지식 (Operational knowledge) 또한 가치 있게 유지됩니다.
변화하는 것은 접근성 (Accessibility)입니다. 적절한 사람들이, 적절한 형식으로, 적절한 시점에, 적절한 정보를 받게 됩니다.
이것이 바로 재작성 (Rewrite) 없는 현대화입니다.
마치며 (Final Thoughts)
많은 MultiValue 환경은 이미 더 나은 의사 결정을 내리는 데 필요한 데이터를 보유하고 있습니다. 기회는 기존 시스템을 교체하는 것이 아니라, 그 출력물 (Output)을 더 접근하기 쉽고 실행 가능하게 (Actionable) 만드는 데 있습니다.
구조화된 추출 (Structured extraction), 경량 API (Lightweight APIs), 그리고 로컬 AI 모델 (Local AI models)을 결합함으로써, 기업은 이미 잘 작동하고 있는 애플리케이션을 변경하지 않고도 밤사이 생성된 보고서를 비즈니스에 즉시 활용 가능한 모닝 브리핑으로 전환할 수 있습니다.
현대화가 항상 교체를 의미하는 것은 아닙니다.
때로는 단순히 기존 정보를 더 사용하기 쉽게 만드는 것을 의미합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
