본문 바로가기
Visualization

[태블로] LOD(Level of Detail)이란? 차원값vs측정값, 태블로 계산의 이해

by 공부기 2023. 12. 4.

태블로의 LOD (Level of Detail)를 이해하고 태블로에서 일어나는 계산 방식에 대해서 정리보았습니다.

 

Level of Detail은 태블로 작동을 이해하기 위해 필요한 핵심 개념 중 하나로 볼 수 있습니다. 이를 잘 이해하면 LOD함수, 세부수준식(Level of Detail Expressions) 활용에도 많은 도움이 될 것입니다.

 

먼저 태블로의 작동방식을 간단하게 살펴보겠습니다.

 

태블로: 기본적으로 숫자를 집계해서 요약

태블로는 데이터 원본을 변경하지 않으며, 필드를 올리면 데이터 값, 원본을 그대로 보여주는 게 아니라 기본적으로 '집계' (aggregation)를 통한 결과물을 보여줍니다.

 

 

집계에는 합계(sum), 평균(average), 최대값(maximum), 최소값(minimum) 등이 있습니다. 이뿐만 아니라 문자열의 개수를 count 하거나 고윳값을 count 할 수도 있습니다. 

 

 

 

 

Level of Detail: 데이터를 어떻게, 얼마나 나눌 것인가?

LOD는 데이터를 어떻게, 얼마나 나누는 정도입니다.

천천히 이해해보겠습니다. 태블로는 늘 집계해서 보여주는데, 그렇다면 어떤 값을 어떻게 보여줄 것인가라는 질문에 답이 있기 때문에 보여줄 수 있을 것입니다. 이에 대한 값이 측정값 차원입니다.

 

 

태블로 측정값 vs 차원

 

태블로에서는 필드들이 차원과 측정값으로 나누어져 있습니다. 태블로에서 차원파란색, 측정값초록색으로 표시되어있습니다.

 

측정값이란 키, 매출, 수익, 주문량 등과 같이 '무엇'을 보겠다를 의미하는 값입니다.

 

차원이란 측정값(무엇) '어떻게 나누어서' 볼 것인가의 의미로 측정값을 보는 관점으로 이해할 수 있습니다. 예로 키를 성별로 보거나, 지역별 매출, 연월 수익을 들 수 있겠습니다.

 

 

이렇게 태블로는 측정값을 나누고, 집계하는 것까지 이해했습니다. 그 다음은 이제 "얼마나, 어떻게 나눌 것인가?" 라는 질문이 나올 수 있습니다. 이것이 Level of Detail이라고 합니다. 화면이 나누어져있는 정도, 세부수준이라고 할 수 있겠습니다.

 

원하는 결과를 얻으려면 그에 맞는 방식을 따르면 됩니다. 그렇기 때문에 상황마다 집계의 세부수준(detail)이 높거나 낮을 수 있는 것입니다. 아래에 그래프를 그리면서 세부수준을 한번 높여보겠습니다.

 

방법 1. <자동차 종류별 판매량 >

 

 

판매량을 자동차 Type 필드로 썰어보았습니다. 자동차 타입별로 판매량을 볼 수 있습니다.

 

 

방법 2. <자동차 종류, 브랜드별 판매량 >

 

 

이번에는 Type에서 Brand 필드를 추가해서 화면을 쪼개보았습니다. type별 판매량이 더 구체적으로 표시가 되었습니다. 타입별로 어떤 브랜드가 가장 인기있고, 어떤 브랜드가 해당 종류의 자동차를 판매하는지도 알 수 있게 되었습니다.

 

 

방법 3. <자동차 연도별 종류별 판매량 >

 

 

마지막으로 주문일자 필드도 추가해서 화면을 나누어보았습니다! 앞에서 본 그래프보다 더 세부적으로 데이터가 나누어지고 있습니다. 전체적으로 2021년에 모든 제품군과 브랜드에서 주문량이 늘었네요. 

 

이렇게 상황에 따라 차원 필드를 추가하여 세부수준을 높여갈 수 있습니다.

 

 

 

태블로 계산방법: 행 수준 계산 vs 집계 계산 

' Profit / Sales'  VS  Sum(Profit) / Sum(Sales)'

이번에는 이 두 식의 차이를 알아보겠습니다.

 

먼저 행 수준 계산과 집계 계산의 정의를 알아보면 다음과 같습니다.

 

① 행 수준 계산: 데이터 원본 행 단위에서 이루어지는 계산

② 집계 계산: 측정값 필드를 시트 위에 올릴 때 일어나는 합계, 평균, 카운트 등의 집계 계산

 

이제 Profit / Sales, Sum(Profit) / Sum(Sales) 두 계산식을 필드로 만들어서 태블로 시트에 올려보겠습니다.

 

 

 

시트에 올려보니 두 계산식의 결과는 같게 나왔습니다.

하지만 두 계산식은 분명 다르므로 같은 방식으로 움직이지 않습니다.

 

 

Profit과 Sales를 더했었는데, 이번에는 그럼 다른 예시로 한번 나누어서 시트에 올려보겟습니다.

 

 

 

이번에 추가한 계산③과 계산④을 비교해보면 일부는 같지만 두 번째 Order ID처럼 다른 결과를 보였습니다.

 

 

측정값은 기본적으로 합계로 올려져있습니다. 이 두 방법 중에 옳은 방법은 계산④입니다.

이유는 무엇이며, 태블로에서 두 계산 방식이 어떻게 다르게 작동하는지 알아보겠습니다.

 

1. 행 수준 계산(계산①, 계산③)

행수준 계산은 이름 그대로 데이터셋의 각 행에서 계산이 일어납니다.

데이터를 직접 보며 계산으로 과정을 이해해보겠습니다.

 

 

계산③의 식은 Profit / Sales 입니다. 첫 행만 한번 계산해보겠습니다.

 

이렇게 각 행마다 Profit / Sales를 하면 계산③의 값이 나오는 걸 확인했습니다. 이렇게 각 행마다 계산한 올라가면서 합계로 집계되는 것입니다. 과정을 정리하자면

 

1. 각 행마다 Profit / Sales 계산이 먼저 일어나고 계산③에 그 값이 있다.

2. VLOD(Visualization Level of Detail)에서 계산③이 집계된다. 여기서는 합계로 집계하였으므로 OrderID를 기준으로 합산된다.

 

이런 과정 때문에 계산③은 잘못된 계산 방식입니다. 결과적으로 정확하지 않은 숫자가 나온 것입니다.

예시를 들자면 물건을 사며 각각 할인율을 받았을 때를 생각해봅시다.

 

물건 화장품 담요 마우스
할인율 10% 30% 15%
원가 10,000 15,000 40,000
할인가 9,000 10,500 34,000

 

이렇게 구매했다면 총 얼마나 할인받았다고 할 수 있을까요? 계산③ 식인 Profit / Sales 가 동작하는 것처럼 계산을 한다면 10% + 30% + 15% = 55% 입니다. 무려 55%나 할인을 받았습니다. 하지만 할인율은 이렇게 계산되지 않습니다.

 

원가에 따라 합산하면 원래 65,000원을 지불해야하지만, 할인을 받아서 53,500원을 지불했고 할인 총 금액은  11,500원입니다. 따라서 이 쇼핑에서 받은 할인율은 약 18%입니다. 이런식으로 정확한 수치를 얻을 수 있는 계산방법이 바로 계산④인 것입니다.

 

2. 집계계산(계산②, 계산④)

계산④의 식은  Sum(Profit) / Sum(Sales)였습니다. 행 수준 계산에서는 각 행에서 나눗셈 계산이 먼저 이루어졌지만, 집계계산에서는 VLOD에서 Profit집계, Sales집계가 먼저 만들어집니다. 그 다음에 집계를 가지고 나눗셈을 하는 것입니다.

 

1. 측정값 필드를 시트에 올릴 때 VLOD에서 집계가 먼저 일어난다.

2. 집계된 계산 간의 연산이 일어난다.

 

즉, 수익과 매출을 각각 합계로 집계한 후 나눗셈을 적용하는 방식입니다.

 

하나를 짚고 넘어가자면 두 계산방식의 값이 같은 경우가 있었는데, 이 경우는 해당 주문번호가 고유하다는 의미가 되겠습니다.