본문 바로가기
카테고리 없음

Power BI로 자동화 가계부 정리하기 (+포맷 이벤트)

by 대기업 BI 2024. 12. 31.

목차

     

    인삿말

     

    안녕하세요! 대기업 BI 입니다. 😀

     

    오랜만에 찾아왔습니다. 그간 여러 프로젝트를 병행하다보니.. 블로그나 다른 부분에 많이 신경쓰지 못했는데

    25년에는 Power BI를 활용한 다양한 사례들을 통해 200% 이상 프로세스 효율화를 달성하실 수 있도록 다양한 인사이트를 제공해드릴 예정이니 그때도 자주 찾아와주시면 감사하겠습니다.  😊

     

    그럼 바로 본론으로 들어가서 Power BI를 이용해 가계부 관리 자동화하기 진행해보도록 하겠습니다-!


    Power BI 가계부 포맷 구성하기

    먼저 가계부 포맷을 Power BI 보고서 안에 구성해봐야겠죠? 사실 구성하는 방법은 여러가지가 있습니다만, 

    저는 "추가 시각적 개체"가 없이 BI 내 제공되는 기본 시각적 개체인 "행렬"을 이용하여 구성해보도록 하겠습니다. 

     

    그럼 바로 시작해볼게요-!

     

    데이터 가져오기 

    먼저 시각화를 위해 가장 중요한 "데이터" 를 가져와야겠습니다. 데이터는 어떻게 자동화로 가져올 수 있냐?

    Power Automate Desktop을 활용해야 합니다. 저 같은 경우는 아래와 같이 브라우저 자동화와 Python을 연계하여 
    데이터를 가져오는데 자동화 했습니다. 사실 데이터 업데이트 주기까지 설정하기 위해 Power Automate Cloud와 연계하여 
    구성하려고 했으나, 해당 부분까지는 아직 크게 필요하지 않아서 해당 부분을 수동으로 필요할때마다 업데이트 하고 있습니다.

    그리고 해당 데이터를 SQL Server에 넣고, API를 통해 Power BI Service에 게시한 보고서의 데이터 세트를 새로고침하는 것까지 Flow에 구성되어 있습니다.

    + 여기서 은행/카드사 사이트의 경우 보안 시스템 동작으로 브라우저 완전 자동화가 좀 어려운 부분이 있어서 어쩔 수 없이 매크로 형태 (브라우저 자동화)로 구성했습니다. 혹시 이부분에 대한 더 좋은 방향성이 있다면 공유 부탁드립니다. 😊

     

    방법1] Power Automate Desktop 내 브라우저 자동화/매크로 활용하여 데이터 다운로드 자동화

     

    방법2] Python 내 Selenium 등 자동화 라이브러리 사용을 통한 데이터 다운로드 및 API 호출 자동화

     

     

    방법3] 수동으로 데이터 다운로드하기 (csv, xlsx 포맷) → 단기적으로 활용/인사이트 도출 여부 확인 시,
    장기적으로 활용 시 방법1, 2 혹은 다른 방법으로 데이터 다운로드 자동화가 필요.

     


     

    BI 시각적 개체 구성하기 (행렬 테이블)

    먼저 아래와 같은 Power BI 내 포맷을 구성하고, 각 값에 어떤 항목을 사용했는지, 사용처가 얼마인지 등에 대해 시각적 개체들을 개인 기호에 따라 배치하면 되겠습니다. 

     

    이번 세션에서 가장 중요한 부분은 행렬 개체 내에 텍스트 값(사용처, 금액 등)을 배치하는 것이 되겠습니다. 


    그럼 가장먼저 행렬에 들어갈 구성 요소들을 만들어야겠죠? 

     

    1) 행렬 내 월/주/요일 구성하기

    이 부분은 사실 크게 어렵지 않습니다. 먼저 아래 "날짜" 테이블을 구성해 주시고,

    날짜 = ADDCOLUMNS(CALENDAR(DATE(2023,1,1),DATE(2025,12,31)),  "연도", Format([Date], "yyyy년"),
    "분기", Format([Date], "Q") &"Q",
    "월No", Month([Date]),
    "영문월", Format([Date], "mmm"),
    "연월", Format([Date], "YYYY-MM"),
    "월", Format([Date], "m월"),
    "요일", Format([Date], "aaa"),
    "주", WeekDay([Date],2),
    "주2", WeekNum([Date]),
    "일", DAY([Date]))
     

    그 다음에는 아래와 같은 "요일테이블"을 구성해줍니다.
    (사실 요일 테이블은 별도 만들지 않아도 됩니다. 그냥 날짜테이블에 요일 No를 매칭시켜서 월~일 까지의 구분자를 같이 넣어주셔도 됩니다.)


    그리고 날짜 테이블의 "월", "주" (주2) 칼럼을 가져오고 열에는 "요일테이블" 내 "요일" 값을 가져옵니다.
    요일테이블에서 그 전에 해주셔야할 부분은 "열 기준 정렬"을 통해서 텍스트 형태의 "요일" 칼럼이 "요일No" 기준으로 정렬되도록 해야겠죠? 


    2) 측정값 구성하기

    그 다음은 마지막으로 아래와 같은 측정값을 구성해주시면 됩니다. 
    (1) 먼저 CurrentDay 측정값에서 날짜 테이블 내 "일" 값을 캘린더 형식처럼 일자가 표기되게 해야겠죠? 즉 결과물에서 아래와 같이 일자 값이 들어가도록 하는 부분입니다.

    CurrentDay = SELECTEDVALUE('날짜'[일])

    (2) 그 다음은 "_총승인금액"입니다. 실질적으로 금액이 캘린더에 표기되어야 하므로, 아래와 같이 측정값을 구성합니다.
    표기하고자 하는 값이 뭐냐에 따라 아래 값은 평균, 최대, 최소 등으로 변경할 수 있겠죠?
     

    _총승인금액 = SUM('하나카드'[승인금액])

    (3) 마지막으로 "Events" 측정값을 구성해서 위와 같이 사용처, 금액, 총 금액 등이 표기되도록 해줄 건데요. 아래 측정값을 그대로 넣어주시면 됩니다. 다만 "비고" 부분은 제가 Power Apps랑 연동해서 각 값에 대해 글을 적거나, 입력하기 위한 부분이라서 해당 부분은 무시해주시면 됩니다. 혹시 Power Apps랑 Power BI랑 연동하는 방법을 아시는 분이라면 아래 비고란은 그냥 두셔도 괜찮습니다 😊

     
    Events = 
    var
    _cal = CALCULATETABLE(ADDCOLUMNS(SUMMARIZE('하나카드','날짜'[연도],'날짜'[월],'날짜'[주2], '하나카드'[가맹점명]),"금액",[_총승인금액]),ALLSELECTED())

    --Current Day--
    var _cal2 =
    [CurrentDay] & REPT(UNICHAR(10),2) &

    -- Events --

    CONCATENATEX(
        '하나카드','하나카드'[가맹점명] & " : " & format('하나카드'[승인금액],"#,##0원") & UNICHAR(10)
    ) & UNICHAR(10) &

    -- Total Spent --
    FORMAT(SUM('하나카드'[승인금액]),"❒ 총 #,##0원") & UNICHAR(10) &

    -- powerapps 비고 --
    IF(ISBLANK(VALUES('Note'[비고])),BLANK(),
    "❒ 비고 :"  & UNICHAR(10) &
    CONCATENATEX(
        'Note', 'Note'[비고]
    ))
    return _cal2

     

    (4) 그리고 만약 각 일별 날짜 셀에서 "_현재월" 측정값을 아래와 같이 구성하면, 가장 많이 사용한 날짜에 컬리링도 가능하니, 필요하신 분이라면 아래 수식을 아래 행렬 서식 설정해서 지정해주시면 되겠습니다. 

    _현재월 =
    var _cal1 = [_총승인금액]
    var
    _cal2 = CALCULATETABLE(ADDCOLUMNS(SUMMARIZE('하나카드','날짜'[연도],'날짜'[월],'날짜'[주2],'날짜'[일]),"금액",[_총승인금액]),ALLSELECTED())
    var _maxx = MAXX(_cal2, [금액])
    var _minx = MINX(_cal2, [금액])
    return SWITCH(TRUE(),
    _cal1 = _maxx, "#CEDEBD",
    _cal1 = _minx, "#FFE5E5")
     


    (5) 그럼 아래와 같이 날짜 슬라이서를 변경함에 따라서 월별 소비 패턴을 알 수 있고, 필요 시 사용처 별로 그룹핑하여 쿠팡, 네이버 쇼핑 등 어디서 많이 주로 사용하는지.. 연계하여 관리가 가능하겠죠? 
    아래 캘린더 형태의 개체는 가계부 관리 뿐만 아니라 필요 시 프로젝트 일정 관리나, 개인 일정 관리 등에 연계하여 활용할 수도 있겠습니다. 


    가계부 포맷 꿀팁 활용법

    1) Power Automate Desktop, n8n, Python 연계하기
    - 아무래도 사람의 손을 가장 덜 타는게 효율화 및 인사이트 도출에 가장 이상적인 부분이므로 결국 데이터를 가져오는 방법에 있어서 자동화를 생각해야 합니다. 은행/카드사는 API 호출 로직을 개인에게 제공하지 않는 경우가 많고, 또한 다양한 카드를 사용하는 분이라면 결국 매크로/브라우저 자동화 등을 통해서 결국 자동화를 선택할 수 밖에 없습니다.

    2) Power BI API 호출하여 데이터 셋 새로고침하기
    - 그럼 그 후 SQL Server나 데이터 소스에 데이터를 넣었다면, 그 후 Power BI에서 데이터 세트 새로고침을 해줘야겠죠? 만약 DB를 사용중이라면 다이렉트 쿼리나 예약된 새로고침 (+증분 새로고침)을 통해서 데이터 새로고침도 자동화할 필요가 있습니다. 개인적으로 저는 로컬에서 사용중이기 때문에 데이터를 한번 SQL Server에 넣은 뒤 최초 1회만 새로고침 해주는 로직을 적용하고 있습니다.

    3) 보고서 Power BI Service에 게시 후 구성원과 공유하기
    - 저는 테넌트 관리자이기에 해당 BI 보고서를 웹에 게시하여 별도 계정없이도 볼 수 있도록 가이드를 하고 있습니다. 이 부분에서 좀 중요한 포인트는 n8n이나, Alert 등을 통해서 데이터 세트가 새로고침 되는 시점에 메일/메시지로 인폼을 주는 것입니다. 업데이트 주기가 정해져 있다면 상관 없지만, 저처럼 제가 필요할때마다 (정산할때) 업데이트하기 때문에 업데이트가 되는 시점에 인폼 주는것까지 자동화해야 결국 완전 자동화가 되더군요. 그렇지만 그러기 위해서는 결국 워크플로우 자동화 도구나 Power Automate와 같은 자동화 툴을 이용할 수 밖에 없었습니다.

    4) Power Apps 연동을 통해 BI 내 의견 주고 받기
    - 저같은 경우는 가족 카드를 사용하고 있기에 Power BI 내 Power Apps 를 연동하여 BI 보고서 내 "비고"란과 같이 너무 많이 쓰고 있다.. 등의 "경고(?)"를 남기는 형식이나 서로에게 응원(?)을 보내는 형태로 사용했었습니다. 실질적으로 연동할 카드가 많거나, 좀더 디테일한 관리가 필요한 가계의 경우에는 이런식으로 관리하는 형태도 많은 도움이 될 것 같더라구요. 이 부분은 제가 나중에 Power Apps 연동법을 알려드릴 때 좀더 디테일하게 살펴보는걸로 하겠습니다.  

     


    마무리

    요즘 Power Apps, Power Automate 등을 Power BI와 연계해 하나의 소규모 시스템 생태계, 자동화를 이룩하고자 하는 중소, 중견 기업이 많은 것 같습니다. 비싼 시스템을 도입하고 유지보수하기에 비용이 만만치 않기 때문에 저같아도 셀프 유지보수가 가능한 방향성으로 (로우코드, 자체 개발 가능 형식) 가는 것을 채택할 것 같습니다. 

     

    개인 업무의 효율화부터 직장에서의 업무 효율화를 위해 Power Apps, Automate를 연계 활용한 자동화 사례들을 향후 많이 발췌하여 공유드리고, 다양한 인사이트를 서로 주고 받는 블로그가 되었으면 합니다 😊

     

    그럼 24년도 다들 고생 많으셨고 25년에도 항상 즐겁고 건강한 한해가 되셨으면 좋겠습니다.

     

    + 추가로 가계부 포맷 파일 (pbix)이 필요하신 분은 구독 후 댓글로 이메일 주시면 같이 전달드리도록 하겠습니다-!


     

    Power BI 문의하기

    아래는 Power BI 대해  알아보고 싶으신 분들에게 남겨드리는  입니다.

    개인적인 궁금증이나기업/공공기관의 공식적인 의뢰 모두 환영이니 언제든지 연락주세요!

     

     Power BI 교육프로젝트의뢰 : bigcorpbi0419@naver.com

     크몽의뢰하기 (첫의뢰할인) : https://kmong.com/gig/396278 

     

    제조업 관리 Power BI 시각화 대시보드 구축 - 크몽

    대기업BI전문가 전문가의 IT·프로그래밍 서비스를 만나보세요. 전문가 소개- 해커스 HRD Power BI 대표 강사 - 현) 대기업 내 BI 코디네이터...

    kmong.com

     

     해커스 HRD 인터넷 강의 : https://www.hackershrd.com/lecture.php?mode=lecView&product_key=01::refu%3E4%3EB004%3EM029&p_id=17282a0d5e4c6aa48f5a2fa2a51ae9f3&s_id=Y23M080031

     

    기업교육의 중심 :: 해커스HRD 챔프스터디

    재직자 내일배움카드, 기업단체교육, 실무역량 강화 교육, 직급별 필수교육, 고용노동부 인증 훈련기관

    www.hackershrd.com