자금 솔루션 · 예치 집중도 분석

은행·예치처 집중도 다차원 분석 — 은행 쏠림과 한도 이용률, 계획 차이를 한 화면에서 점검하는 자금 리포트

은행·상품·통화·등급을 끌어다 놓는 피벗 · 칸에서 원천 라인까지의 드릴스루 · 예치 비중과 한도 이용률 계산 항목 · 계획 대비 차이와 요인분해 · 행에 남는 변동 사유 · 숫자를 모델에 맡기지 않는 AI 분석 · 스스로 도는 AI 에이전트 — 소개 영상과 실제 화면 24종, 그리고 CDS 코드까지

소개 영상블로그 목차 순서대로 · 자막 포함

도입 포인트 — 이 앱을 사용해야 하는 이유

자금 회의의 질문은 늘 비슷합니다. 우리 돈이 어느 은행에 얼마나 몰려 있나, 그 은행의 한도는 얼마나 남았나, 계획한 배분과 무엇이 달라졌나. 지금 이 세 답은 은행별 잔액 조회, 한도 관리 엑셀, 월말 계획표에 흩어져 있어서 회의 전에 사람이 붙여야 합니다. 이 앱은 세 답을 한 화면에 붙여, 예치 현황을 다시 만드는 손일을 줄이고 “어느 숫자가 맞나” 하는 확인 시간을 줄입니다.

관련 기준서는 두지 않았고 대상 영역은 자금입니다. 화면은 분류·집계·대사를 돕는 점검 도구이며, 한도와 신용등급은 검증용 샘플 데이터의 가정값입니다.

한 줄 요약 — 은행별 잔액을 보여 주는 리포트는 이미 많습니다. 이 앱의 값은 그 다음에 있습니다: 비중과 한도 이용률을 같은 표에서 계산하고, 계획과의 차이를 요인으로 가르고, 사유를 행에 남기고, 사람이 열지 않아도 감시 규칙으로 점검하며, 그 숫자가 원천 라인과 1원도 어긋나지 않는지 매번 검산합니다.

핵심 포인트 여덟 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 축을 바꿔도 숫자가 갈라지지 않는 피벗은행·상품·통화·신용등급군 등 10개 차원을 끌어다 놓아 행·열을 짭니다. 모든 축이 같은 큐브에서 나오므로 어떻게 짜도 합계가 같습니다.은행별·통화별 조회를 따로 만들고, 합계가 서로 다르면 맞추는 회의를 엽니다.
② 비중과 한도 이용률이 같은 표에예치 비중, 한도 이용률, 한도 여유, 운용 수익률을 계산 항목으로 놓아 쏠린 은행과 한도가 빠듯한 은행을 한 번에 봅니다.잔액은 시스템에서, 한도는 엑셀에서 가져와 손으로 나눕니다.
③ 칸에서 원천 라인까지 한 번에숫자를 누르면 그 칸을 만든 원천 라인이 열리고, 합계가 표의 값과 일치하는지 그 자리에서 보입니다.조회를 닫고 계정 개별 항목 조회를 다시 열어 조건을 손으로 맞춥니다.
④ 계획 차이를 여섯 요인으로계획 잔액에서 실적 잔액까지의 차이를 계획 초과·미달·환율·시점·계획 외 예치·미예치로 가르고, 합이 맞는지 매번 검산합니다.엑셀에서 은행별로 차이를 풀어 보고, 합계가 총차이와 맞는지 다시 확인합니다.
⑤ 차이 사유가 행에 남는다사유가 조회 범위와 행 경로에 묶여 저장되어 축을 바꿔도, 다음 달에도 그 행에 따라옵니다.같은 질문을 매달 다시 하고, 지난달 답은 메일에서 찾습니다.
⑥ 사람이 열지 않아도 도는 감시비중 상한·한도 이용률·등급군 비중·계획 차이 규칙마다 받을 사람이 붙어 있고, 걸린 항목은 대기함에 올라갑니다.숫자가 나빠진 날 아무도 화면을 열지 않으면 그대로 지나갑니다.
⑦ 숫자는 모델에 맡기지 않는 AI 분석금액과 비율은 서비스가 계산하고 해설은 그 숫자를 읽어 씁니다. 해설에 쓴 근거 표를 펼쳐 볼 수 있고, 검토용 PowerPoint 보고서도 바로 만듭니다.AI가 만든 숫자를 보고서에 써도 되는지부터 따져야 합니다.
⑧ 표준 컨트롤만 쓰는 사내망 친화 구성화면은 OpenUI5 표준 컨트롤과 직접 그린 SVG 차트만 씁니다. 외부 라이브러리 반입 심사가 필요 없습니다.라이브러리 하나를 들이려면 보안 검토부터 거칩니다.

사례로 보는 효과

검증용 샘플 데이터(가상 은행 8곳, 2026년 9월 말 기준)에서 기말 예치 잔액은 24,459.26억 원이고, 가장 큰 은행의 비중은 38.3%, 집중도 지수(비중 제곱의 합)는 2,128입니다. 그 은행의 한도 이용률은 101.85%로 가정한 한도를 넘어 점검 필요로 표시됩니다. 같은 은행의 예치 잔액은 계획 10,213.97억 원보다 843.74억 원 적은 9,370.23억 원인데, 요인분해로 가르면 계획 초과 +618.63억, 계획 미달 −1,378.85억, 환율 +58.49억, 계획 외 예치 +524.53억, 미예치 −666.54억이 나오고, 합은 차이와 정확히 같습니다(검산 0). 큐브와 원천 라인의 대사 54건, 은행×기간 셀 480건은 차이가 0건입니다.

도입하면 달라지는 것

  • 예치 현황 보고 준비 — 비중·한도·계획 차이가 한 화면에서 나와 엑셀 취합과 캡처가 줄어듭니다.
  • 회의의 주제 — “어느 숫자가 맞나”보다 “어느 은행으로 얼마를 옮길까”를 이야기합니다.
  • 다음 달로 이어지는 기록 — 사유와 보기 배열이 남아 같은 설명을 다시 하지 않습니다.
  • 놓치는 날이 없는 점검 — 아무도 화면을 열지 않아도 감시 규칙에 걸린 항목이 대기함에 올라옵니다.

이런 회사에 맞습니다

여러 은행에 예금·MMF·환매조건부채권으로 자금을 나눠 두고, 법인 여러 곳과 외화 계좌를 함께 운영하며, 은행별 한도와 신용등급군을 관리하는 자금 조직에 맞습니다. 은행 수가 수 곳 이상이고 통화가 둘 이상이며, 월 단위로 계획 대비 예치 현황을 보고하는 회사라면 효과가 커집니다.

실행 화면

사용 방법

  1. 조회조건 입력 — 예치 법인(선택, 비우면 전체), 기간(부터·까지, 필수), 비교 기준(계획 버전)을 고릅니다. 기본값은 전체 법인, 2026년 01월~09월, 계획(P0)과 비교입니다.
  2. 조회 — 조건 오른쪽 위의 [조회] 버튼을 누르거나 입력 칸에서 Enter 키를 누릅니다. 조회 직후 조건 영역은 한 줄 요약으로 접힙니다.
  3. 요약 확인 — 표 위 KPI 다섯 개(기말 예치 잔액, 최대 은행 비중, 한도 이용률, 보통 등급군 비중, 계획 대비 차이)를 먼저 봅니다.
  4. 보는 사람과 축 이동 — 경영·재무·자금·회계 순서로 눌러 역할별 배열을 보고, 차원 보관함의 차원을 끌어 행 축·열 축에 놓습니다.
  5. 칸·행 클릭 — 칸을 누르면 원천 라인이 열리고, 계획 차이를 켠 상태에서 행을 고르면 요인분해 워터폴이 나옵니다.
  6. 내려받기 — [CSV]로 현재 표를, 원천 라인 창의 [CSV]로 그 칸의 라인을, 해설 창의 [보고서 PPTX]로 검토 자료를 받습니다.

무엇으로 만들었나

항목내용
솔루션 · 업무 영역자금 솔루션 · 은행·예치처 집중도 분석
관련 기준서 · 대상 영역- · 자금
SAP 표준 T-codeFF7A · FF7B · FEBAN · FBL3N
Namespacezui5.bankconc
화면 성격조회·점검(다차원 분석)
데이터 연동OData V2 서비스 한 개 — 큐브·계획·원천 라인을 읽고, 사유·보기·에이전트 기록을 씁니다
테마sap_horizon
자리무엇왜 그렇게 두었나
화면 컨트롤표준 TreeTable(피벗) · 직접 그린 SVG 차트와 워터폴외부 차트 라이브러리 없이 사내망에서 그대로 열리도록
집계·판정 로직브라우저의 큐브 엔진과 서비스의 계산 모듈이 같은 식을 씁니다화면과 서비스의 숫자가 어긋나지 않도록 한 곳에서 관리
OData 서비스 구성큐브·계획·원천 라인·사유·보기·에이전트 기록을 읽고 쓰는 서비스와 요인분해·해설·에이전트 실행 함수 세 개축을 바꿀 때는 서버를 부르지 않고, 칸·사유·실행 때만 부름
테마sap_horizonSAP 표준 화면과 같은 시각 언어
SAP 표준 기능을 그대로 이어받은 부분 — 은행 계좌 잔액, 은행 명세서 내역, 계정 개별 항목, 환율 같은 데이터 구조는 SAP 표준을 그대로 따릅니다. 이 화면은 그 위에 비중·한도·계획 차이라는 조회·검증 관점을 더해 확장합니다.

화면은 실제 브라우저에서 검증용 샘플 데이터로 찍었습니다. 화면마다 무엇을 하는 자리이고 왜 그렇게 두었는지를 아래에 적었습니다. 숫자는 모두 같은 자료에서 나온 것이라 화면끼리 서로 맞춰 보셔도 됩니다.

처음 열었을 때

조회 직후에는 기말 예치 잔액과 최대 은행 비중, 한도 이용률, 보통 등급군 비중, 계획 대비 차이가 KPI로 먼저 보이고, 아래에 차원 보관함과 행·열 축, 표, 차트가 놓입니다.

조회 직후 첫 화면
조회 직후 첫 화면 — 은행별 예치 잔액이 분기별로 나타나고, 위쪽 KPI에 비중·한도 이용률·계획 차이가 바로 보입니다.

조회를 누르면 은행 8곳의 기말 예치 잔액이 분기별로 나옵니다. 합계 24,459.26억 원은 마지막 기간(2026년 9월) 기준입니다. 한도와 신용등급은 가정값이므로 KPI 아래에도 그렇게 적습니다.

차원 보관함과 행·열 축
차원 보관함과 행·열 축 — 차원을 끌어 행 축과 열 축에 놓으면 서버를 다시 부르지 않고 표가 바뀝니다.

차원 보관함에서 차원을 끌어 행 축이나 열 축에 놓습니다. 행은 최대 세 단계, 열은 두 단계까지 쌓이고, 바꿔도 서버를 다시 부르지 않습니다. 열 축에 측정값을 놓으면 한 표에서 잔액과 비중을 함께 봅니다.

경영 요약 — 보는 사람에 따라 달라지는 배열

같은 큐브를 보는 사람별 기본 배열로 열어 줍니다. 경영은 은행 비중, 재무는 한도, 자금은 통화·변동, 회계는 등급군을 먼저 봅니다.

보는 사람: 경영
보는 사람: 경영 — 경영 관점은 은행별 예치 비중을 분기별로 봅니다.

경영은 은행별 예치 비중을 분기별로 봅니다. 최대 은행 비중 38.3%가 KPI에서 주황색으로 표시되어 점검 대상임을 먼저 알려 줍니다. 비중의 합은 언제나 100%입니다.

보는 사람: 재무
보는 사람: 재무 — 재무 관점은 은행·법인별 잔액과 한도, 이용률을 나란히 봅니다.

재무는 은행별 잔액, 약정 한도 배정액, 한도 이용률을 나란히 봅니다. 가상 시중은행 A의 이용률 101.85%처럼 한도를 넘는 행이 바로 드러납니다. 한도는 가정값입니다.

보는 사람: 자금
보는 사람: 자금 — 자금 관점은 은행·통화별 잔액과 변동, 비중을 봅니다.

자금은 은행·통화별 잔액과 순 변동, 비중을 봅니다. 통화마다 환율을 곱한 원화 환산 잔액만 더하므로 외화와 원화가 섞여도 합계가 맞습니다.

보는 사람: 회계
보는 사람: 회계 — 회계 관점은 신용등급군별 잔액과 보통 등급군 비중을 봅니다.

회계는 신용등급군별 예치액과 보통 등급군 비중을 봅니다. 등급은 가정값이며, 차이가 있으면 원천 라인과 맞는지 점검이 필요합니다.

축 전환과 범위

차원을 끌어 놓거나 값 필터로 범위를 좁혀도 표·차트·KPI가 함께 바뀌고 합계는 일관됩니다.

열 축 2단계
열 축 2단계 — 열 축에 분기와 측정값을 겹쳐 놓아도 합계는 같습니다.

열 축에 분기와 측정값을 겹쳐 놓은 예입니다. 어떻게 짜도 합계 24,459.26억 원은 같습니다. 열이 너무 많아지면 상한 안내가 나옵니다.

값 필터 적용 결과
값 필터 적용 결과 — 은행 두 곳만 골라 범위를 좁히면 KPI와 표, 차트가 함께 바뀝니다.

값 필터에서 은행 두 곳만 고르면 표와 차트, KPI가 그 범위로 바뀝니다. 필터 요약 줄에 어떤 조건이 걸려 있는지 남습니다. 필터 범위의 합계는 원천 라인 합계와 같습니다.

칸에서 원천 라인까지

표의 숫자를 의심할 때 다른 화면을 열지 않고 그 칸의 원천 라인을 바로 엽니다.

칸에서 원천 라인까지
칸에서 원천 라인까지 — 표의 칸을 누르면 그 칸을 만든 원천 라인이 열리고 표의 값과 일치 여부를 보여 줍니다.

칸을 누르면 그 칸을 만든 원천 라인(가상 시중은행 C, 2026년 1분기 89건)이 열립니다. 원천 합계 2,992.28억 원이 표의 값과 일치하면 초록 표시가 나옵니다. [CSV]로 그 라인만 내려받습니다.

기간별 요약
기간별 요약 — 기간 축으로 바꾸면 분기·월별 잔액과 한도 이용률을 봅니다.

행 축을 분기·기간으로 바꾸면 기간별 잔액, 한도, 순 변동, 이자 수익을 봅니다. 잔액과 한도는 기간 끝 값, 변동과 이자는 합계라서 분기 합계의 의미가 다릅니다.

계산 항목 — 비중과 한도 이용률

예치 비중과 한도 이용률은 큐브의 측정값에서 계산하는 항목이라 어떤 축으로 접어도 같은 식으로 다시 계산됩니다.

계산 항목
계산 항목 — 예치 비중, 한도 이용률, 한도 여유, 운용 수익률을 같은 표에 놓습니다.

예치 비중, 한도 이용률, 한도 여유, 운용 수익률이 열로 붙습니다. 가상 시중은행 A는 비중 38.31%, 이용률 101.85%, 한도 여유 −170.23억 원입니다. 비중은 전체 잔액 대비라 행을 접어도 같은 식입니다.

신용등급군 계산 항목
신용등급군 계산 항목 — 최상위 등급군 예치액과 보통 등급군 비중을 등급군 축으로 봅니다.

신용등급군 축으로 바꾸면 최상위 등급군 예치액과 보통 등급군 비중이 나옵니다. 보통 등급군 비중은 6.03%이고 기준 5%를 넘어 정보로 표시됩니다. 등급은 가정값입니다.

계획 대비 차이 — 같은 표가 점검 자료가 된다

비교 기준만 켜면 같은 표가 실적·계획·차이·차이율이 나란한 점검표가 되고, 행을 고르면 요인분해 워터폴과 변동 사유가 이어집니다.

계획 차이 — 비중
계획 차이 — 비중 — 예치 비중의 실적·계획·차이·차이율을 나란히 봅니다.

계획 차이를 켜면 비중의 실적·계획·차이·차이율이 나란히 놓입니다. 금액 3,000백만 원과 비율 5%를 모두 넘는 칸만 색을 칠해 과도한 알림을 줄입니다. 기준값은 조회조건 아래에서 바꿉니다.

계획 차이 — 잔액
계획 차이 — 잔액 — 잔액의 실적·계획·차이를 보고 기준을 넘는 칸을 색으로 구분합니다.

잔액 기준으로 보면 합계는 실적 24,459.26억 원, 계획 25,849.83억 원, 차이 −1,390.56억 원입니다. 은행 A는 −843.74억 원으로 가장 크게 줄었습니다. 행을 누르면 요인분해가 이어집니다.

요인분해 워터폴
요인분해 워터폴 — 계획 잔액에서 실적 잔액까지의 차이를 여섯 요인으로 나누어 검산합니다.

은행 A를 고르면 계획 10,213.97억 원에서 실적 9,370.23억 원까지의 차이를 여섯 요인으로 가르는 워터폴이 나옵니다. 계획 미달 −1,378.85억, 미예치 −666.54억은 줄이는 쪽이고 계획 초과 +618.63억, 계획 외 예치 +524.53억은 늘리는 쪽입니다. 표 아래 검산 줄은 계획 + 요인 합 − 실적 = 0을 보여 줍니다.

변동 사유 기재
변동 사유 기재 — 차이가 난 행에 구분과 사유를 적어 두면 표에 표시가 남습니다.

차이가 난 행에 구분과 사유를 적습니다. 사유는 조회 범위와 행 경로에 묶여 저장되어 축을 바꿔도 따라오고, 적힌 행에는 연필 표시가 붙습니다. 해설은 이미 사유가 적힌 행을 건너뜁니다.

AI 분석과 보고서

해설은 현재 범위를 읽어 요약과 핵심 발견을 쓰되 숫자는 서비스가 계산한 값만 씁니다.

해설(AI 분석)
해설(AI 분석) — 현재 범위의 요약과 핵심 발견을 규칙으로 작성하고, 이미 사유가 적힌 행은 건너뜁니다.

해설은 현재 범위를 읽어 요약과 핵심 발견을 씁니다. 금액과 비율은 서비스가 계산하고 문장은 규칙으로 만든 초안이며, 기본은 규칙 기반이고 모델 연결은 설정으로 켭니다. 점검 필요 항목은 근거 숫자를 확인하라고 안내합니다.

해설 근거 표
해설 근거 표 — 해설에 쓴 숫자를 근거 표로 펼쳐 확인합니다.

해설에 쓴 숫자는 근거 표로 펼쳐 볼 수 있습니다. 묶음별 계획·실적·차이가 원 단위로 나옵니다. [보고서 PPTX]를 누르면 현재 범위의 표와 차트를 담은 PowerPoint가 브라우저에서 만들어집니다.

AI 에이전트

화면을 열지 않아도 점검이 돌도록 감시 규칙과 대기함, 활동 기록을 둡니다.

에이전트 감시 규칙
에이전트 감시 규칙 — 감시 규칙과 받을 역할, 임계값을 보여 줍니다.

감시 규칙은 단일 은행 비중 상한 35%, 한도 이용률 90%, 보통 등급군 비중 5%, 계획 차이 1,000억 원 네 가지가 기본입니다. 규칙마다 받을 역할이 있어 같은 결과도 받는 사람의 눈으로 다시 적습니다. 임계값은 규칙 목록에서 바꿉니다.

에이전트 대기함
에이전트 대기함 — 규칙에 걸린 항목이 대기함에 올라오고 같은 날 두 번째 실행은 막힙니다.

지금 실행하면 규칙에 걸린 항목이 대기함에 올라옵니다. 같은 날 두 번째 실행은 서버가 막고 안내 문구가 나옵니다. 화면을 연 지 20분이 지나면 화면 타이머가 한 번 더 확인합니다.

에이전트 활동 기록
에이전트 활동 기록 — 실행 시각과 호출 주체, 걸린 건수가 기록으로 남습니다.

실행할 때마다 시각, 호출 주체(사람·화면 타이머·배치), 걸린 건수가 기록으로 남습니다. 걸린 것이 없어도 기록은 남습니다. 운영에서는 배치(SM36 또는 cron)가 같은 함수를 부릅니다.

보기 저장과 복원

짜 둔 배열을 이름 붙여 저장하면 다음에 열 때 그 배열로 시작합니다.

보기 저장
보기 저장 — 현재 행·열·측정값 배열에 이름을 붙여 저장합니다.

현재 행·열·측정값 배열에 이름을 붙여 저장합니다. 기본 보기로 지정하면 다음에 열 때 그 배열로 시작하고, 자동 조회를 켜면 열자마자 조회합니다. 저장 내용은 창 아래에 요약으로 보입니다.

보기 관리
보기 관리 — 저장한 보기를 기본값으로 지정하거나 지웁니다.

저장한 보기를 목록으로 보고 기본값을 바꾸거나 지웁니다. 보기는 서비스에 저장되므로 다른 브라우저에서도 같은 배열이 열립니다.

좁은 화면과 한계

창이 좁으면 차트를 감추지 않고 표 아래로 내려 같은 리포트를 봅니다.

좁은 화면
좁은 화면 — 390px 폭에서는 표 아래로 차트가 내려갑니다.

창이 좁으면 차트를 감추지 않고 표 아래로 내려 같은 리포트를 봅니다. 휴대폰에서도 요약과 표, 차트가 모두 보입니다. 열이 많은 표는 가로로 밀어 봅니다.

화면 뒤에서 일어나는 일

조회를 누르면 서비스가 큐브와 계획 큐브를 읽어 오고, 이후 행·열을 바꾸는 일은 브라우저의 큐브 엔진이 처리합니다. 칸을 누르면 그 칸의 조건으로 원천 라인을 읽고, 계획 차이 모드에서 행을 고르면 요인분해 함수를 부릅니다. 사유·보기·에이전트 기록은 서비스에 쓰입니다.

판정 규칙 — 조건 → 결과 → 조치

판정 조건결과 상태사용자 조치
단일 은행 예치 비중 ≥ 35%알림 — 비중 상한 점검 필요다른 은행으로의 배분 여력과 만기 도래 일정을 확인합니다
은행별 한도 이용률 ≥ 90%주의 — 한도 이용률 점검 필요한도 증액 또는 배분 조정 여부를 확인합니다(한도는 가정값)
보통 등급군 예치 비중 ≥ 5%정보 — 등급군 비중 확인 필요실제 신용평가 기준으로 확인합니다(등급은 가정값)
예치 잔액 계획 차이 절대값 ≥ 1,000억 원알림 — 계획 차이 점검 필요요인분해로 원인 요인을 보고 사유를 적습니다
표 칸 차이가 금액·비율 기준을 모두 초과차이 칸 색 구분행을 눌러 요인분해와 사유를 확인합니다
원천 라인 합계 ≠ 표의 값"표의 값과 불일치"범위·필터를 확인하는 대사 점검이 필요합니다

처리 단계와 대사식

  1. 원천 라인을 읽어 외화 금액을 월말 환율로 원화 환산합니다.
  2. 기간·법인·은행·상품·통화·등급·만기·목적·지역 단위로 큐브를 만듭니다. 잔액과 한도는 기간 끝 값, 이자와 변동은 합계입니다.
  3. 대사식 ① 큐브 합계 = 원천 라인 합계.
  4. 행·열로 접고 계산 항목(비중 = 잔액 ÷ 전체 잔액, 이용률 = 잔액 ÷ 한도)을 계산합니다.
  5. 대사식 ② 표의 칸 값 = 그 칸의 원천 라인 합계.
  6. 대사식 ③ 계획 + 요인 합 − 실적 = 0.

조회조건

조건필수기본값$filter 대응
예치 법인선택전체Comp eq '1000'
기간(부터·까지)필수2026년 01월 ~ 2026년 09월Period ge '202601' and Period le '202609'
비교 기준필수계획(P0)Version eq 'P0'
값 필터선택없음Bank eq 'B001' or Bank eq 'B002'

결과 컬럼

컬럼의미산출식
기말 예치 잔액(원화)범위 끝 기간의 예치 잔액기간 끝 값
약정 한도 배정액(원화)한도 배정액(가정값)기간 끝 값
순 예치 변동(원화)예치·인출 순변동합계
이자 수익(원화)기간 이자 수익합계
예치 비중(%)전체 잔액 대비 비중잔액 × 100 ÷ 전체 잔액
한도 이용률(%)한도 대비 잔액잔액 × 100 ÷ 한도
한도 여유(원)한도에서 잔액을 뺀 값한도 − 잔액
운용 수익률(연, %)잔액·기간 가중 대비 이자이자 × 100 ÷ 가중액
최상위 등급군 예치액등급군 A의 잔액A 등급군 잔액
보통 등급군 비중(%)등급군 C의 비중C 등급군 잔액 × 100 ÷ 잔액

좁은 화면에서 달라지는 것

창이 좁으면 차트가 표 아래로 내려오고, 조회조건과 KPI는 위아래로 쌓입니다. 표는 가로로 밀 수 있어 열이 많아도 잘리지 않습니다.

파일 구성

index.html · Component.js · manifest.json
view/        화면 구성(조회조건, 피벗, 원천 라인·해설·에이전트 창)
controller/  화면 동작
model/       큐브 엔진 · 차트 · 보고서(PPTX) 만들기
odata/       서비스 선언과 계산 모듈, 검증용 데이터
media/       소개 영상
readme.html  앱 설명서

SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 연계되는지

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 관련 기준서는 두지 않았고 대상 영역은 자금입니다.

표준으로 되는 것과 안 되는 것

하고 싶은 일표준으로 되는 것이 앱이 더하는 관점
은행 계정별 현재 잔액현금 포지션(FF7A)으로 은행 계정과 계정 그룹별 잔액을 봅니다은행·상품·통화·등급 축을 끌어다 놓고 비중과 집중도를 같은 표에서 봅니다
앞으로의 유동성유동성 예측(FF7B)계획 큐브와 같은 차원으로 맞춰 실적과의 차이를 가릅니다
예치·인출 내역 확인은행 명세서 후속 처리(FEBAN)칸에서 원천 라인까지 내려가 표의 값과 합계를 대조합니다
계정 단위 원천 확인계정 개별 항목(FBL3N)칸을 누르면 같은 조건의 원천 라인이 열립니다
한도 대비 이용 현황표준에서 은행별 한도 기준을 두는 방식은 대상 시스템에서 확인 필요한도 이용률과 여유를 계산 항목으로 같은 표에 놓습니다
계획 대비 차이의 원인잔액 비교는 가능하나 요인 분해는 표준에 따로 없습니다계획 초과·미달·환율·시점·계획 외·미예치 여섯 요인으로 가르고 검산합니다

T-code 별 연계 지점

T-code이름연계
FF7A현금 포지션은행 계정별 잔액을 이 앱의 은행·상품 축 합계와 맞춰 봅니다. 숫자가 다르면 이 앱의 칸에서 원천 라인으로 내려가 어느 계좌에서 났는지 확인한 뒤 FF7A 에서 같은 계정을 엽니다.
FF7B유동성 예측계획 예치 흐름을 계획 큐브에 이어받습니다. 예측 대비 실적 차이는 이 앱의 계획 차이 모드로 보고, 예측 자체의 수정은 표준에서 합니다.
FEBAN은행 명세서 후속 처리예치·인출 내역의 원천입니다. 이 앱의 원천 라인 창에서 의심되는 입출금을 찾으면 FEBAN 에서 후속 처리 상태를 확인합니다.
FBL3N계정 개별 항목 조회계정 단위 전표 항목 대사에 씁니다. 두 화면의 합계가 같은지를 운영 대사로 둡니다.
F110자동 지급 프로그램예치 인출·이체와 관련된 지급 흐름은 표준에서 실행합니다. 이 앱은 실행하지 않고 결과 잔액만 점검합니다.

운영 전환 후에도 기존 표준 조회를 없애지 않습니다. 법정·감사·공시 대응이 필요한 숫자는 표준에 남기고, 이 앱은 분석과 점검용으로 함께 둡니다.

S/4HANA 분석 스택과의 자리

표준 CDS 분석 쿼리나 Fiori 분석 앱, Analysis for Office 같은 도구와 경쟁하지 않습니다. 같은 CDS 큐브 위에 올려 쓰는 점검 화면이며, 앱 이름이 확인되지 않은 표준 Fiori 앱은 여기에 적지 않았습니다(확인 필요). 차원을 끌어다 놓는 자유도와 사유 기록, 감시 규칙이 이 화면의 자리입니다.

확장 포인트 — 운영에서 실제로 손대는 자리

자리손대는 내용비고
은행·계좌 매핑하우스뱅크·계좌를 은행 그룹, 지역, 신용등급군에 매핑등급은 외부 평가기관 기준 사용 여부를 정해야 함
한도 기준은행별 약정 한도 배정액의 원천(표준 필드 또는 확장 필드)대상 시스템에서 확인 필요
계획 원천계획 예치 흐름을 가져올 곳(유동성 예측 계획 등)계획 버전과 범주 정의
환율 유형·시점월말 환율 유형과 환산 시점기말값 기준을 먼저 합의
권한회사코드·법인·은행 단위 조회 범위집계 단계에 권한을 걸어야 드릴스루로 새지 않음
감시 규칙 임계값비중 상한·이용률·등급군 비중·계획 차이 임계값과 받을 역할회사 정책으로 정함

분석 지표 정의표

지표산식·판정 기준대응 기능원천 데이터비고
예치 비중은행 잔액 ÷ 전체 잔액계산 항목 · KPI은행 계좌 기말 잔액대상 영역 자금
집중도 지수은행 비중 제곱의 합(최대 10,000)KPI · 해설은행별 잔액단일 은행이면 10,000
한도 이용률잔액 ÷ 한도계산 항목 · 감시 규칙잔액, 한도(가정값)한도 확인 필요
보통 등급군 비중C 등급군 잔액 ÷ 전체 잔액계산 항목 · 감시 규칙등급군별 잔액(가정값)등급 확인 필요
계획 차이실적 잔액 − 계획 잔액계획 차이 모드 · 요인분해실적·계획 큐브점검 필요

CDS 구성

샘플 화면은 검증용 데이터를 읽지만, 운영에서는 은행 계좌와 전표 원천 위에 CDS 뷰를 쌓아 같은 서비스 계약으로 연결합니다. 아래는 스케치이며, 대상 시스템의 필드와 표준 뷰 이름은 확인이 필요합니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZBKC_GRADEMAP · ZI_BankAccountBase은행·계좌를 은행 그룹·지역·등급군에 매핑매핑이 바뀌어도 하위 뷰를 건드리지 않으려고
차원ZI_BankDimension은행·상품·통화·등급 차원 목록과 이름값 필터와 보관함이 읽는 목록을 한 곳에서
큐브ZI_BankDepositCube · ZI_BankDepositPlan기간별 예치 잔액·한도·변동·이자 집계(실적·계획)같은 차원으로 실적과 계획을 맞추려고
쿼리ZC_BankConcentrationQuery화면용 측정값과 계산 항목, 필터화면이 읽을 모양만 노출
권한ZC_BankConcentrationQuery 용 DCL회사코드·법인 단위 접근 범위집계 단계에서 권한을 걸려고
서비스서비스 정의·바인딩OData V2 로 노출화면의 서비스 계약을 유지

① 매핑 테이블 — 은행을 등급군과 지역에 묶기

어느 은행이 어느 등급군과 지역에 속하는지는 데이터에서 나오지 않는 기준입니다. 운영에서 가장 먼저 정해야 하고 화면의 등급군 비중이 여기서 결정됩니다. 등급 원천(외부 평가 사용 여부)은 회사가 정합니다.

" ─── ZBKC_GRADEMAP : 은행 → 신용등급군·지역 매핑 (DDIC 테이블 스케치)
" 이름 : 은행 등급군 매핑   역할 : 은행 그룹, 등급군, 지역의 기준
" 나눈 이유 : 등급·지역 기준이 바뀌어도 뷰를 고치지 않도록 테이블로 둔다
@EndUserText.label : '은행 등급군 매핑'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
define table zbkc_grademap {
  key mandt   : mandt not null;
  key bukrs   : bukrs not null;
  key hbkid   : hbkid not null;
  bank_group  : abap.char(4);
  grade       : abap.char(1);   " A / B / C — 회사 기준으로 정함
  region      : abap.char(2);   " KR / AS / EU / AM
  valid_from  : abap.dats;
}

② 기준 뷰 — 은행 계좌 기준

하우스뱅크와 계좌를 읽어 매핑을 붙입니다. 이 뷰에서 은행·계좌의 키가 정해지므로 하위 뷰는 모두 이 키를 따릅니다.

" ─── ZI_BankAccountBase : 은행 계좌 기준 (확인 필요: 대상 시스템의 T012K 필드)
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '은행 계좌 기준'
define view entity ZI_BankAccountBase
  as select from t012k as acc
  left outer join zbkc_grademap as map
    on  map.bukrs = acc.bukrs
    and map.hbkid = acc.hbkid
{
  key acc.bukrs   as CompanyCode,
  key acc.hbkid   as HouseBank,
  key acc.hktid   as AccountId,
      acc.waers   as AccountCurrency,
      acc.hkont   as GLAccount,
      map.bank_group as BankGroup,
      map.grade      as GradeGroup,
      map.region     as Region
}

③ 차원 뷰 — 보관함이 읽는 목록

차원 보관함과 값 필터가 읽는 목록입니다. 이름과 정렬 순서를 한 곳에서 관리해 화면 어디서나 같은 이름이 나옵니다.

" ─── ZI_BankDimension : 은행 차원 (이름·정렬)
@Analytics.dataCategory: #DIMENSION
@ObjectModel.representativeKey: 'HouseBank'
define view entity ZI_BankDimension
  as select distinct from ZI_BankAccountBase
{
  key CompanyCode,
  key HouseBank,
      @Semantics.text: true
      BankGroup as BankName,
      GradeGroup,
      Region
}

④ 큐브 뷰 — 기간별 예치 잔액 집계

월말 잔액을 원화로 환산해 기간·법인·은행·상품·통화·등급별로 모읍니다. 잔액은 기간 끝 값이라 기간 끝 필터를 걸고, 변동과 이자는 합계로 둡니다. 통화는 환산 시점과 환율 유형을 먼저 정해야 합니다.

" ─── ZI_BankDepositCube : 실적 큐브 (원천 전표는 대상 시스템에서 확인 필요)
@Analytics.dataCategory: #CUBE
@AccessControl.authorizationCheck: #CHECK
define view entity ZI_BankDepositCube
  as select from ZI_BankDepositLine as ln   " 월말 잔액 라인 뷰
  association [0..1] to ZI_BankDimension as _Bank
     on _Bank.HouseBank = $projection.HouseBank
{
  key ln.PostingPeriod,
  key ln.CompanyCode,
  key ln.HouseBank,
  key ln.ProductType,
  key ln.TransactionCurrency,
  key ln.GradeGroup,
      @Semantics.amount.currencyCode: 'ReportCurrency'
      sum( case ln.IsPeriodEnd when 'X' then ln.AmountInReportCurrency else 0 end ) as Balance,
      @Semantics.amount.currencyCode: 'ReportCurrency'
      sum( ln.NetChange )       as NetChange,
      @Semantics.amount.currencyCode: 'ReportCurrency'
      sum( ln.InterestIncome )  as InterestIncome,
      cast( 'KRW' as waers )    as ReportCurrency,
      _Bank
}
group by ln.PostingPeriod, ln.CompanyCode, ln.HouseBank, ln.ProductType,
         ln.TransactionCurrency, ln.GradeGroup

⑤ 계획 큐브 — 같은 차원에 계획 버전

계획 큐브는 실적 큐브와 키가 같아야 칸마다 차이를 낼 수 있습니다. 계획 원천(유동성 예측 계획 등)과 버전, 범주는 도입 때 합의합니다.

" ─── ZI_BankDepositPlan : 계획 큐브 (버전 포함, 원천은 확인 필요)
@Analytics.dataCategory: #CUBE
define view entity ZI_BankDepositPlan
  as select from ZI_BankDepositPlanLine as pl
{
  key pl.PlanVersion,
  key pl.PostingPeriod,
  key pl.CompanyCode,
  key pl.HouseBank,
  key pl.ProductType,
  key pl.TransactionCurrency,
  key pl.GradeGroup,
      @Semantics.amount.currencyCode: 'ReportCurrency'
      sum( pl.PlannedBalance ) as PlannedBalance,
      cast( 'KRW' as waers )   as ReportCurrency
}
group by pl.PlanVersion, pl.PostingPeriod, pl.CompanyCode, pl.HouseBank,
         pl.ProductType, pl.TransactionCurrency, pl.GradeGroup

⑥ 분석 쿼리 — 화면이 읽는 모양

화면이 읽는 측정값과 필터만 드러내는 소비 뷰입니다. 비중과 이용률은 계산 항목이라 쿼리에서 정의하지 않고 화면이 같은 식으로 계산합니다.

" ─── ZC_BankConcentrationQuery : 소비 뷰
@Analytics.query: true
@EndUserText.label: '은행 예치 집중도'
define view entity ZC_BankConcentrationQuery
  as select from ZI_BankDepositCube
{
  @AnalyticsDetails.query.axis: #ROWS
  @Consumption.filter: { selectionType: #RANGE, multipleSelections: true }
  key HouseBank,
  @AnalyticsDetails.query.axis: #COLUMNS
  key PostingPeriod,
  @Consumption.filter.mandatory: true
  key CompanyCode,
  @AnalyticsDetails.query.axis: #COLUMNS
  Balance,
  NetChange,
  InterestIncome
}

⑦ 권한(DCL)과 서비스 정의

권한은 집계 단계에서 걸어야 합니다. 드릴스루에만 걸면 합계 뺄셈으로 다른 법인 숫자가 새어 나갑니다.

" ─── DCL : 회사코드 권한
@EndUserText.label: '은행 예치 집중도 권한'
@MappingRole: true
define role ZC_BankConcentrationQuery {
  grant select on ZC_BankConcentrationQuery
    where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}

" ─── 서비스 정의(스케치) — 바인딩은 OData V2 로 게시
define service ZUI_BankConcentration {
  expose ZC_BankConcentrationQuery as BankConcentration;
  expose ZI_BankDimension          as BankDimension;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다.

해야 할 일무엇을 정하나정하지 않으면누가
은행·계좌 매핑어느 은행이 어느 그룹·지역인지비중 합계가 의도와 다르게 묶임자금팀
신용등급군 기준등급 원천과 갱신 주기등급군 비중이 가정값으로 남음자금팀 · 리스크
한도 기준약정 한도 배정액의 원천과 단위한도 이용률을 신뢰하기 어려움자금팀
계획 원천·버전계획 예치 흐름과 버전·범주계획 차이가 의미 없어짐자금팀 · 재무기획
환율 유형·시점월말 환율 유형과 환산 시점외화 잔액 환산이 어긋남회계팀
차원 범위화면에서 쓸 차원불필요한 차원이 성능을 해침자금팀 · IT
권한 설계회사코드·법인 조회 범위다른 법인 숫자 노출 위험IT · 보안
성능 기준응답 시간과 상한대용량에서 화면이 느려짐IT
대사 체계표준 T-code 와 맞출 항목과 주기숫자 차이를 설명하기 어려움회계팀 · 자금팀
전송(TR) 순서매핑 테이블 → 뷰 → 쿼리 → DCL → 서비스권한 없는 서비스가 먼저 열림IT
서비스 활성화서비스 게시와 화면의 서비스 주소 교체화면이 샘플 데이터를 계속 읽음IT
배치 등록에이전트 실행 배치(SM36 또는 cron)자동 점검이 돌지 않음IT · 자금팀

숫자를 믿을 수 있는가 — 검증 결과

대사식검사 건수차이 건수의도적 예외
큐브 합계 = 원천 라인 합계(기간 9 × 측정값 6)5400
은행 × 기간 셀 단위 대조(잔액·이자·가중액·변동·한도·라인 수)480 (80셀 × 6)0 (최대 차이 0)0
피벗 합계 — 행·열 배열 6종, 전체 합 24,459.26억 원600
칸 → 원천 라인 합계 대조(드릴스루)400
요인 합 검산(계획 + 요인 − 실적, 가상 시중은행 A)100
값 필터 합계(은행 2곳)100

계약 검증으로 서비스의 엔티티셋 14개와 함수 3개가 선언과 일치하고, 날짜 조건 필터와 쓰기도 동작함을 확인했습니다.

운영 데이터로 갈 때

예치 라인이 수천만 건이면 집계는 큐브 뷰에서 미리 하고 화면은 기간·법인 필터를 필수로 받아야 합니다. 원천 라인 창은 칸 단위로만 열고 건수 상한을 둡니다. 인덱스는 기간·법인·은행에 먼저 걸고, 응답 시간 기준을 정해 상한을 조정합니다.

자주 묻는 질문 — 도입 전에 많이 묻는 것

숫자와 산식, 화면과 조작, 분석 기능, 도입과 운영 순서로 정리했습니다.

숫자와 산식

예치 비중은 어떻게 계산하나요?

은행 잔액을 전체 잔액으로 나눕니다. 전체는 현재 보이는 범위의 합이라 필터를 걸면 그 범위 안의 비중이 됩니다. 행을 접거나 펴도 같은 식으로 다시 계산되고, 비중의 합은 100%입니다.

집중도 지수(HHI)는 무엇인가요?

은행 비중(%)을 제곱해 더한 값으로 최대 10,000입니다. 한 은행에 모두 있으면 10,000, 여러 은행에 고르게 나뉘면 작아집니다. 샘플 데이터의 2026년 9월 말은 2,128입니다. 이 값은 점검 신호이며 위험 판단은 회사가 합니다.

한도와 신용등급은 실제 값인가요?

검증용 샘플 데이터의 가정값입니다. 실제 적용 시에는 은행별 약정 한도와 회사가 정한 등급 기준으로 매핑해야 하며, 그 전에는 한도 이용률과 등급군 비중을 판단 근거로 쓰지 않습니다.

외화와 원화가 섞이면 합계는 어떻게 되나요?

통화가 다른 금액은 그대로 더하지 않습니다. 월말 환율로 원화 환산한 값(기말 예치 잔액)만 더합니다. 외화 원금은 원천 라인 창에서 통화별로 확인합니다.

잔액은 기간을 합치면 어떻게 되나요?

잔액과 한도는 기간 끝 값입니다. 분기나 연 단위로 묶으면 그 기간의 마지막 월 값이 나오고, 순 변동과 이자 수익은 합계입니다. 그래서 분기 합계의 의미가 측정값마다 다릅니다.

요인분해의 여섯 요인은 무엇인가요?

계획 초과 예치, 계획 미달 예치, 환율, 예치·인출 시점, 계획 외 예치, 미예치입니다. 계획 + 요인 합 − 실적이 0인지 화면이 매번 검산합니다. 요인은 원인을 단정하는 것이 아니라 차이가 어디서 났는지 가르는 분류이며, 점검이 필요합니다.

화면과 조작

축을 바꾸면 서버를 다시 부르나요?

아니요. 조회 때 읽어 둔 큐브를 브라우저에서 다시 접어 표와 차트를 만듭니다. 칸을 눌러 원천 라인을 열 때, 요인분해와 해설, 에이전트를 실행할 때만 서비스를 부릅니다.

열을 너무 많이 쌓으면 어떻게 되나요?

열이 지나치게 많아지면 상한을 넘었다는 안내가 나오고 표가 과도하게 커지지 않습니다. 열 축은 두 단계까지로 두었습니다.

보는 사람(경영·재무·자금·회계)은 무엇이 다른가요?

권한을 나누는 기능이 아니라 기본 배열과 안내 문구, KPI 해석을 역할별로 열어 주는 기능입니다. 숫자와 큐브는 같습니다.

저장한 보기는 어디에 남나요?

서비스에 저장됩니다. 기본 보기와 자동 조회 여부도 함께 저장되어 다음에 열 때 그 배열로 시작하고, 다른 브라우저에서도 같은 보기를 엽니다.

휴대폰에서도 쓸 수 있나요?

창이 좁으면 차트를 표 아래로 내려 같은 리포트를 보여 줍니다. 열이 많은 표는 가로로 밀어 봅니다. 축을 짜는 작업은 데스크톱이 편합니다.

CSV 로 무엇을 받을 수 있나요?

현재 표와 원천 라인 창의 라인을 각각 받을 수 있습니다. 표 CSV 에는 현재 단위와 범위가 함께 적힙니다.

분석 기능

AI 분석은 숫자를 만들어 내나요?

아니요. 금액과 비율은 서비스가 계산하고 해설은 그 숫자를 읽어 문장으로 씁니다. 기본은 규칙 기반이며 모델 연결은 설정으로 켭니다. 해설에 쓴 근거 표를 펼쳐 숫자를 확인할 수 있습니다.

이미 사유를 적은 행도 해설하나요?

건너뜁니다. 사유가 적힌 행은 사람이 이미 설명한 것이라 해설이 덮어쓰지 않습니다. 건너뛴 행은 "사유 기재됨"으로 표시합니다.

보고서 PPTX 는 무엇이 담기나요?

현재 범위의 요약, 핵심 발견, 표와 차트, 근거를 브라우저에서 PowerPoint 로 만들어 내려받습니다. 외부 서비스로 숫자를 보내지 않습니다.

감시 규칙은 어떻게 동작하나요?

네 가지 규칙(은행 비중 상한, 한도 이용률, 보통 등급군 비중, 계획 차이)에 임계값과 받을 역할이 붙어 있습니다. 실행하면 걸린 항목을 받는 사람의 관점으로 적어 대기함에 올리고, 활동 기록을 남깁니다.

에이전트는 하루에 몇 번 도나요?

하루 한 번입니다. 같은 날 두 번째 실행은 서버가 막고 안내 문구를 돌려줍니다. 화면을 연 뒤 20분이 지나면 화면 타이머가, 운영에서는 배치가 같은 함수를 부릅니다.

변동 사유는 어떻게 남나요?

조회 범위와 행 경로에 묶여 저장되므로 축을 바꾸거나 다음에 같은 범위를 열어도 따라옵니다. CSV 와 해설 근거에도 함께 실립니다.

도입과 운영

이 앱의 적용 시기와 관련 기준서가 있나요?

관련 기준서는 두지 않았고 대상 영역은 자금입니다. 적용 시기를 정한 바는 없으며 확인 필요 사항으로 남깁니다. 화면은 점검 도구이며 최종 판단은 회사와 감사인이 합니다.

표준 T-code 를 대체하나요?

아니요. 현금 포지션(FF7A), 유동성 예측(FF7B), 은행 명세서 후속 처리(FEBAN), 계정 개별 항목(FBL3N)은 그대로 쓰고, 이 앱은 비중·한도·계획 차이 점검 관점을 더합니다. 법정·감사 대응은 표준에 둡니다.

운영 데이터로 연결하려면 얼마나 걸리나요?

소요는 은행·계좌 매핑, 한도와 등급 원천, 계획 원천 합의에 달려 있어 일정을 확정해 말하기 어렵습니다(확인 필요). 개발보다 정하는 일이 많다는 점을 CDS 절의 표에 정리했습니다.

권한과 보안은 어떻게 하나요?

회사코드·법인 단위 접근 범위를 CDS 큐브 단계에 DCL 로 겁니다. 드릴스루에만 걸면 합계 뺄셈으로 다른 법인 숫자가 새어 나갈 수 있어 집계 단계에 둡니다. 화면은 외부 라이브러리를 쓰지 않습니다.

라인이 수천만 건이어도 되나요?

집계는 큐브 뷰에서 미리 하고 화면은 기간·법인 필터를 필수로 받아야 합니다. 원천 라인 창은 칸 단위로만 열고 상한을 둡니다. 응답 시간 기준은 운영 규모로 다시 정합니다(확인 필요).

은행·계정 체계가 바뀌면 어떻게 하나요?

은행·계좌 매핑 테이블 한 곳만 고치면 됩니다. 새 계좌가 생기면 어느 은행 그룹·등급군인지만 적어 주면 하위 뷰와 화면은 그대로입니다.

이 화면이 회계 판단을 해 주나요?

아닙니다. 분류·집계·대사를 돕는 조회·점검 도구이며 모든 결과는 "점검 필요"·"확인 필요" 수준입니다. 최종 판단은 회사와 감사인이 하고, 세무 신고가 필요한 숫자는 회사와 세무 대리인이 확정합니다.