ChatGPT라고 하는 인공지능을 기반으로 한 시스템이 연일 뉴스의 메인을 장식하고 있습니다.

다들 너나 할 것 없이 ChatGPT를 테스트하고 그 결과물에 많은 사람이 놀라움을 금치 못하고 있는데요.

역사나 사실관계에 대해서는 아직 잘못된 답을 보여주긴 하지만, 컴퓨터 언어의 코딩에서만큼은 비전공자의 실력은 충분히 뛰어넘고도 남을 레벨이라 인정해야 할 것 같습니다.

 

이는 파워비아이에서도 아주 유용하게 쓰일 것 같습니다.

아래와 같은 컴퓨터 언어를 능수능란하게 사용할 수 있다면 파워비아이를 좀 더 효율적으로 사용할 수 있겠죠

  • Python
  • R
  • M
  • DAX

Python은 이젠 더 이상 설명이 필요 없는 언어가 되었죠.파워비아이 에서는 Pandas라는 데이터분석 라이브러리를 이용해 데이터 전처리를 선행하면 시간과 공간을 절약할 수 있었습니다.

아직 사용해 보지는 않았지만, R 역시 데이터 분석에 최적화된 언어로 알고 있으며 파이썬 못지않게 쉬운 구성으로 되어있다고 알고 있습니다.

M은 파워쿼리를 구성하는 언어로 파워쿼리 에디터를 주로 사용하여 코딩을 공부해야 한다는 필요성을 크게 느끼지는 않지만 그래도 한 번씩 파워쿼리를 수정하는 작업을 할 때 코딩의 필요성을 느끼는 언어입니다.

마지막에 언급한 DAX는 엄밀히 말하자면 언어라기보다는 전처리된 데이터를 다시 한번 가공시키기 위한 수식이라 할 수 있겠습니다.


전공자가 아닌 이상 위에 말씀드린 언어를 제대로 공부한다는 것이 과연 효율적일 것일까 하는 생각이 드는 것도 사실이나, 그래도 모르는 것보다는 아는 것이 낫지 않을까 하는 마음으로 발을 들여놓았으나 아직 아주 기본적인 것만 할 수 있는 단계를 벗어나지 못하고 있는데, ChatGPT의 등장으로 이러한 고민이 한순간에 해결되었네요.

 내가 필요한 것을 아주 상세히 제대로만 입력하면, 원하는 결과치를 바로 만들어주고, 거기다 자세한 설명까지 알려주니 실로 엄청난 기술의 발전이 아닐까 합니다.

그리고 ChatGPT가 제시한 코드에 오류가 있더라도 이를 다시 입력하면 오류까지 바로잡아주니, 마치 선생님을 앞에 두고 작업을 하는듯한 생각마저 들었습니다.

 

그동안 아주 얕은 지식으로 여기저기 사이트를 돌아다니며 다른 분들이 이미 만들어 놓은 코딩을 복사해서 몇 날을 제 상황에 맞도록 수정해 가며 결국 원하는 바를 이루었을 때 느끼는 희열이 대단했는데, 이제는 나의 질문을 ChatGPT가 제대로 이해해서 제대로 된 코딩을 받았다면 그 질문의 내용에 대한 희열을 느껴야 할 것 같습니다.

 

이러한 기술의 발전이 하나의 고민을 해결해 주었으니, 이젠 그만큼의 시간을 다른 곳에 투자할 여력이 생긴 것 같아 좋긴 합니다.

 

먼저 데이터 전처리를 시작하기 전 파워쿼리 에디터의 구성에 대해서 잠시 살펴보겠습니다. 엑셀과 비슷하게 생겼지만, 완전히 다른 구조를 가졌으므로 머릿속에서 엑셀에 대한 생각을 지워야 보다 쉽게 다가갈 수 있습니다.

파워쿼리 에디터는 아래와 같이 5개의 영역으로 나눌 수 있습니다.

  1. 쿼리 에디터 리본 (Query Editor Ribbon) - 데이터 수정 작업을 실행하는 명령 버튼 (복잡한 프로그래밍 언어를 간단히 버튼 클릭으로 수행할 수 있도록 도와줍니다) 
  2. 쿼리 창 - 현재 쿼리 에디터에 있는 쿼리 리스트
  3. 작업 창 - 진행된 작업의 결과물을 보여주는 창
  4. 쿼리 설정 - 현재 작업 중인 쿼리 이름과 적용된 단계를 보여주는 창
  5. 상태 바 - 셀에 있는 내용을 보여주는 창

 

작업 창과 적용된 단계에 대해 잠시 말씀드리겠습니다.


작업 창

작업 창은 지금까지 진행된 결과물을 시각화시킨 창으로 사용자가 보다 편하게 결과물을 확인해가며 데이터 변환을 할 수 있도록 도와주는 창으로, 결과물이 친숙한 엑셀 형태로 보여주니 좀 더 직관적으로 작업을 진행할 수 있습니다.

파이썬 (Python)의 경우도 데이터 변환을 수행할 때 Jupyter Notebook을 많이 사용하는데, 이것도 마찬가지로 코딩한 결과물을 파워쿼리 에디터의 작업 창처럼 테이블이나 차트로 바로 보여주는 기능을 가지고 있기 때문에 데이터 전처리 과정에서 많이 사용되는데, 실행한 명령의 결과를 바로 확인하며 작업할 수 있는 환경을 제공한다는 것은 사용자 입장에서는 만점에 가까운 기능이라 할 수 있습니다.


적용된 단계 창

적용된 단계를 보여주는 창은 가장 중요한 부분이라 생각하는데, 지금껏 데이터 변환을 위해 입력한 명령을 단계별로 저장해 어떤 단계를 거쳐 지금의 결과물을 가지고 왔는지 일목요연하게 리스트로 보여줍니다. 적용된 단계는 M-Code (M 언어라고도 합니다)로 구성된 명령어를 수식 창에 보여주며, 이에 대한 결과물은 바로 작업 창에 보여주는 형태입니다. 아주 편한 점은 지금껏 작업한 단계가 그대로 기록이 되기 때문에 원하는 단계로 이동이 가능하다는 것입니다.

위의 이미지와 같이 “탐색’을 선택하면 “탐색” 명령에 사용된  M-Code가 수식 창에 나타나며, “탐색” 명령이 실행된 뒤의 결과물을 동시에 작업 창에 보여줍니다. 이곳에 다른 명령을 추가하고 싶으면 추가도 가능하고, 필요 없는 부분은 삭제도 가능하며, 수정도 가능합니다.


쿼리의 적용된 단계를 설명하자면 글이 너무 길어질 것 같으니 다음번에 자세히 다루도록 하겠습니다.

 

이렇게 구성된 쿼리 에디터를 이용해 데이터 전처리를 진행하여 일반 데이터를 파워비아이가 원하는 데이터로 형태를 바꾸면 파워비아이의 보고서 창에서 데이터 시각화에 사용이 가능하게 됩니다.

 

앞에서 설명드린 데로 파워비아이에서 데이터를 변형시키는 방법은 2가지가 있습니다.

  • M-Code (M Language)
  • DAX

 

어느 것이 좋다고 단정 지을 수는 없으며, 상황에 따라 적당한 것을 사용하면 됩니다.

DAX는 엑셀의 수식에 가까운 형태를 지닌다면, M-Code (M Language)는 이름에서 알 수 있듯이 컴퓨터 언어와 비슷한 형식을 가지고 있습니다.

 

IF 문을 예를 들자면 아래와 같습니다.

 DAX를 이용한 수식
파워쿼리를 이용한 명령문

 

위의 간단한 수식 및 명령문에서 볼 수 있듯 DAX가 수식의 확장판이라면, M-Code (파워쿼리 에디터)는 VBA (Visual Basic Application)의 확장판 같은 느낌이 듭니다.

 

마치 엑셀이 수식과 VBA로 서로의 기능을 서로 보완하며 밸런스를 맞추어 가듯이, 파워비아이도 DAX와 M-Code가 서로 어우러져 1+1=2가 아닌 10 아니 100으로 기능을 확장시켜 주기 때문입니다.

 

이 두 개의 특징을 한 단어로 나타내고자 한다면 아래와 같이 정리가 될 듯합니다.

  • DAX - 확장성
  • M-Code - 유연성

 

 

파워쿼리는 아주 딱딱한 프로그램입니다.

수많은 데이터를 다루는 프로그램의 특성상 사소한 에러 하나가 계산이 거듭될수록 결과치에 큰 영향을 줄 수 있기 때문에 가능한 정해진 틀 안에서 데이터를 다루려는 속성을 가지고 있으며, 예외를 허용하는데 아주 인색합니다.

하지만 M-Code를 이용한다면 어느 정도 정해진 틀을 벗어나 유연성을 부과할 수 있으며, 이를 잘 사용한다면 약간의 융통성을 지닌 데이터를 구축할 수 있게 됩니다.

 

DAX를 통한 확장성은 말로 설명할 필요가 없습니다.

각각 독립된 쿼리를 서로 연결하면 하나의 거대한 쿼리로 바뀌게 되는데 이를 바탕으로 DAX를 이용한 수식으로 각 쿼리의 데이터를 변형시키는 것은 파워비아이의 백미라 할 수 있으며, 여기에 더해 측정값이라는 개념을 도입해, 기존의 쿼리에 새로운 열의 추가 없이 필요한 결과치를 저장해 두고, 이를 또 다른 수식에 사용이 가능하게 하여 데이터 분석의 효율을 극대화시켜줍니다.

 

어떤 것을 사용해야 하느냐는 각자의 판단이 아닐까요.

정확히 이야기하자면 둘 중 하나만 이용해도 원하는 결과는 똑같이 얻을 수 있습니다.

파워쿼리 에디터도 아주 훌륭한 프로그램이라 이것만으로도 충분히 원하는 만큼의 데이터 변환이 가능합니다.

혹시 DAX가 편하다는 분은 엑셀의 데이터를 불러와 특별한 수정 없이 DAX의 수식만으로도 원하는 결과치를 충분히 얻을 수 있습니다.

 

하지만 데이터 분석이라는 것이 한 번에 끝나는 경우가 드문지라 시작단계에서 두 가지의 효과적인 배치에 대한 고민이 좀 더 효율적이고 확장성을 지닌 데이터 구축에 도움이 되는 건 사실입니다.

 

사공이 많으면 배가 산으로 가듯, 시작부터 너무 많은 생각은 데이터 구축을 점점 복잡하게 할 수 있으니 시작할 것이 있다면 일단 무엇이라도 좋으니 무작정 시도를 해 보는 것도 중요합니다.

그러다 보면 보완할 점이 보이고, 이를 계속 보완하는 시행착오를 겪으며 이른바 진정한 내공이 생기는 것이 아닐까 생각합니다.

 

+ Recent posts