본문 바로가기

Power Query

파워쿼리 M 구성요소 List에 대해서 (1부)

리스트는 그 이름에서 알 수 있듯이 값 목록을 의미 합니다. 일반적인 프로그램 언어에서 데이터 형식이라는 것을 거의 대부분 처음부분에서 배우게 됩니다. 이때 흔히 가장 보편적인 단골로 등장하는 내용들이 데이터 형식의 종류에 대해서 설명합니다. 마찬가지로 파워쿼리는 큰 의미에서 VBA와 같은 프로그램언어로 바라보는 것이 보다 파워쿼리의 특징을 잘 이해 할 수 있는 방법입니다. 하지만, 일반 사용자들에게 있어서 VBA 조차도 어려운데 거기에 또 다른 언어를 또 알아야 한다고 하면 분명 대부분의 모든 사용자들은 손사레를 치게 될 것 입니다.

이런 의미에서 MS의 천재적인 마케팅 전략에 대해 큰 점수를 주고 싶습니다. 개인적으로는 MS의 탁월한 네이밍은 그 어떤 업체들 보다 뛰어나다고 생각합니다. 파워쿼리는 가장 간단하게 설명하라고 한다면 가장 강력한 ETL 프로그램언어중 하나라고 말할 수 있을 것 같습니다.

여기서 강력하다는 의미는 전문적인 개발자의 관점이 아니라 일반 사용자의 관점에서 봤을 때 정말 잘 만들어진 프로그램언어 입니다. 앞으로 이점에 대한 내용들을 하나씩 기술해 나가도록 하겠습니다. 이글을 읽으시는 분들이 끝까지 이런 내용에 대해서 저와 같이 학습하고 고민하시다 보면 제가 지금 언급했던 대부분의 내용들에 대해서 많은 부분을 공감 하시게 될 것임을 감히 저는 확신 합니다.

전문적인 프로그램의 지식이 없다고 하더라도 일반적인 엑셀 기본 사용자라면 충분히 아실 수 있는것 처럼 엑셀을 구성하는 대표적인 데이터 형식을 나열해 보라고 하면 거의 많은 사용자들은 쉽게 대답을 할 수 있을 것 입니다. 숫자, 문자, 날짜 가장 일반적인 대답이 될 것입니다.

이런 개념을 그대로 파워쿼리에 적용한다고 하면 당연히 숫자, 문자, 날짜와 같은 형식이외에도 다소 생소한 개념의 구조적인 형식이 있다고 볼 수 있습니다. 그것이 대표적인 녀석이 바로 테이블, 레코드, 리스트 입니다. 정확히는 정의 할 수 없다고 하더라도 테이블과 레코드는 익숙하게 들었던 용어들이기 때문에 상대적으로 리스트가 전해주는 의미의 모호함이 보다 크게 느껴 질 것 입니다. 하지만, 결국 이 세개의 유형은 데이터를 표현하는 조금 더 엄밀히 말하자면 데이터를 표현 하는 구조적 유형이라고 말 할 수 있습니다.

정의는 단순해야 합니다. 정의가 복잡할 때 오는 그 모호함이란 정말 무언가를 새로 배우는 사람의 입자에서 정말 짜증나는 일 중에 하나 입니다. 하지만 때로 어떤 개념은 일정한 숙달의 시간이 흐른 뒤에 비로서 그 의미가 이해되는 것도 있습니다.

리스트는 그 정의를 명확하게 한다고 하더라도 이 녀석을 제대로 파워쿼리 상에서 써본적이 없다고 한다면 결코 그 의미를 정확하게 정의 내리기는 힘이 듭니다. 저의 개인적인 경험치로 리스트를 정의 한라고 한다면 이렇게 정의 할 수 있을 것 같습니다. 파워쿼리에서는 엑셀의 셀 처럼 어떤 특정한 한 개의 셀이나 몇번째 줄의 셀과 같은 방식으로 접근 할 수 있는 방법이 없습니다. 테이블 처럼 전체적인 접근이나 열과 같은 집합적인 개념으로 접근을 할 수있게 기본적으로 구성을 하였기 때문에 때로는 줄의 개념으로 데이터를 접근하거나 가져와야 할 때 그때 필요한 개념이 바로 리스트입니다.

물론 기능적인 정의나 기술법에서는 그러한 내용을 언급한 설명이나 책은 없지만, 제 개인적으로 여러 경험을 통해서 명확하지 않은 텍스트적인 정의를 나름대로 해석을 한다고 하면 이렇게 정의 하는 것이 가장 처음 공부하는 사람들에게 핵심적인 내용을 전달 하는 것이라고 판단했습니다.

이제 저 나름대로 리스트에 대한 개념에 대한 정의는 잠시 내려놓으시기 바라겠습니다. 이러한 정의는 리스트를 통해서 우리가 무언가를 해야 할 필요 또는 그런 상황이 왔을 때 여러분의 그 아련한 기억 저편에서 가져오시면 됩니다.

일단 우리는 먼저 아주 건조하게 기술적인 배경의 문법과 기본적인 구성에 대해서 살펴보시게 될 것 입니다. 이것이 충분히 이해 되고 연습이 되신 후 우리는 천천히 이것들이 필요한 상황으로 들어가는 여행을 하게 될 것 입니다.

소개의 내용이 너무 길어 졌습니다.

그만큼 이 리스트라는 개념은 기존 엑셀 사용자에게는 생소한 개념이기 때문입니다. 어떠한 관점으로는 왜 굳이 엑셀의 셀과 함수만으로도 충분함을 느끼고 있는데 복잡하게 이런 것을 만들어서 혼란을 가중시키는 것인지 모르겠다는 생각을 하시는 분도 계실지는 모르겠지만, 이것이 익숙해진다면 결코 이전과 같은 비 효율적인 방법으로 돌아 가고 싶은 마음은 추호도 들지 않게 될 것입니다.

리스트는 구조화된 값을 표현 하는 새로운 형식이라고 말씀 드렸습니다. 다음과 같은 표현식을 통해서 리스트의 기본적인 속성에 대해서 생각해 보겠습니다.

가격={1,2,5,10}

이와 같은 표현식이 의미하는 것은 가격이라는 리스트의 값을 구성하는 요소는 1,2,5,10 이라는 숫자가 있다는 것을 의미 합니다. 이 간단한 표현방식의 결과에 대해서 굳이 왜 이렇게 표현하고 해석되어야 하는지 도무지 이해를 못하겠다는 분이 많지 않기를 바랄 뿐입니다.

너무나 직관적인 표현 방법이라고 할 수 있습니다.