마크 수가 많을 때의 대안 – 대시보드 동작 활용하기

Intro

태블로 데스크탑의 속도에는 다양한 요소가 영향을 미칩니다. 그 중 대표적이고 해결하기 까다로운 문제 중 하나로 ‘마크의 수’를 꼽을 수 있습니다.

뷰에 포함된 마크의 수가 늘어날수록 렌더링 시간에 영향을 미치게 되기 때문입니다.

이처럼 표현하고자 하는 마크의 수가 지나치게 많을 때, 대시보드 동작을 잘 활용하면 원하는 결과를 얻으면서도 데스크탑 퍼포먼스를 향상시킬 수 있습니다.

마크의 수가 데스크탑 퍼포먼스의 원인일 때, 아래와 같은 세 가지 측면을 고려하여 대시보드를 설계할 수 있습니다.

1. 데이터 집계 수준을 보다 높은 수준에서 표현 가능한지 고려하기
2. 필터를 활용하여 뷰에 포함되는 마크의 수 줄이기
3. 대시보드 전환 효과를 이용하여 원하는 데이터 세부 수준까지 표현된 워크시트로 이동하기

Data

사용한 데이터는 632만행으로 이루어진 대한민국 행정주소 데이터입니다. 가장 작은 단위는 ‘도로명 기준’의 상세 주소 정보입니다. 


Dashboard

대시보드는 크게 네 개의 워크시트로 구성되어 있습니다.

선택 시트
결과 시트
선택 시트로 변경
결과 시트로 변경

<선택 시트>

<선택 시트>에서는 [시도]>[시군구] 수준에서 포함된 주소의 개수를 집계하여 표현하였습니다. 모든 [시도]와 [시군구]가 뷰에 포함되어도 마크의 수는 250개가 최대입니다.

<결과 시트>

<결과 시트>에서는 [상세 주소] 수준에서 포함된 주소의 개별 마크를 표현하였습니다.

만약 [시도]나 [시군구] 전체에 대한 [상세 주소]를 표현하려고 시도한다면 632만 개의 마크가 될 것이므로, [결과 시트]의 결과를 보지 못하고 컴퓨터가 뻗어버릴 가능성이 높겠죠.

<결과 시트로 변경>

[선택 시트]가 대시보드에 보이는 상태에서 반드시 [시도]와 [시군구]를 특정해야만 [결과 시트] 조회를 할 수 있도록 워크시트 전환 역할을 하는 버튼을 두었습니다.

<선택 시트로 변경>

그리고 [결과 시트]를 확인한 다음, [선택 시트]의 필터링 결과를 리셋하면서 워크시트를 전환할 수 있는 버튼을 두었습니다.

How To

시트명: <선택 시트>

1️⃣ 워크시트 전환을 위한 매개변수 [시트 선택] 만들기

대시보드에서는 위에서 설명한 대로 <선택 시트>와 <결과 시트> 모두 추가되어야 합니다. 하지만 사용자가 대시보드를 볼 때에는 둘 중에 하나만 보여야 합니다. 즉, <선택 시트>또는 <결과 시트>가 보여야 하는 것입니다.

매개변수 이름을 [시트 선택]으로 작성하고, ‘선택 시트’,’결과 시트’라는 이름의 문자열 목록을 생성합니다.

2️⃣ 시트명: <선택 시트> 만들기

[시도], [시군구]에 대해 각각 지리적 역할을 부여하고, 마크에 추가한 다음, 마크의 모양은 맵으로 지정합니다.

측정값에 자동으로 생성되는 카운트를 사용하여 지역구별로 포함된 주소 개수를 카운트하였습니다.

그런 다음, [시도], [시군구], [도로명] 필드를 필터 선반에 추가합니다.

3️⃣ [T/F_선택 시트] 계산된 필드 만들기

[시트 선택] 매개변수의 값이 ‘선택 시트’일 때를 참으로 하는 계산된 필드를 작성하고, [선택 시트] 필터에 추가합니다.

이로써, 매개변수의 값이 ‘결과 시트’로 선택되어 있으면 [선택 시트] 워크시트에는 아무 것도 존재하지 않게 됩니다.

완성된 워크시트는 위와 같습니다.

<시트명: 결과 시트>

1️⃣ [상세 주소] 계산된 필드 만들기

[상세 주소]에 대한 좌표 정보를 가지고 있는 [X],[Y]를 이용하여 [상세 위치] 계산된 필드를 작성합니다.

2️⃣ [T/F_결과 시트] 계산된 필드 만들기

[시트 선택] 매개변수의 값이 ‘결과 시트’일 때를 참으로 하는 계산된 필드를 작성하고,

[시트 선택] 매개변수의 값이 ‘결과 시트’로 선택된 상태에서 <결과 시트> 필터에 추가합니다.

이로써, 매개변수의 값이 ‘선택 시트’로 선택되어 있으면 <결과 시트> 워크시트에는 아무 것도 존재하지 않게 됩니다.

3️⃣ 시트명: <결과 시트> 만들기

[시트 선택] 매개변수의 값을 ‘선택 시트’로 변경해놓고 [상세 주소]와 [상세 위치]를 세부 정보 선반에 추가합니다. 만약 ‘결과 시트’가 선택된 채로 추가하시게 되면 623만개에 대한 렌더링 시도 지옥을 맛보게 되실 것입니다.

<선택 시트>에 추가했던 [시도],[시군구],[도로명] 필터에 대해 동일하게 영향을 받도록 설정합니다.

<시트명: 결과 시트로 변경>

1️⃣ [결과 시트로 변경] 계산된 필드 만들기

 

‘결과 시트’를 값으로 가지는 계산된 필드를 작성합니다.

2️⃣ [결과 확인 버튼] 계산된 필드 만들기

워크시트에 포함된 [시도]와 [시군구]의 개수가 1개일 때만 텍스트가 표현되도록 계산된 필드를 작성합니다. 이후 대시보드에 추가했을 때, [시도]/[시군구]가 전체일 때는 사용자가 선택할 수 있는 버튼이 없는 것처럼 보이게 되는 효과가 있습니다.

3️⃣ 시트명: <결과 시트로 변경> 만들기

‘결과 시트’가 선택되어 있을 때는 해당 버튼이 노출되지 않도록, 필터 선반에 [T/F_선택 시트]를 추가합니다.

<선택 시트>에 추가했던 [시도],[시군구],[도로명] 필터에 대해 동일하게 영향을 받도록 설정합니다.

[결과 시트로 변경]을 세부 정보 선반에 추가하고, [결과 확인 버튼]을 행 선반과 텍스트 선반에 추가하고, 머릿글을 해제합니다.

전체 보기와 텍스트 가운데 정렬, 서식을 적절히 변경합니다.

<시트명: 선택 시트로 변경>

1️⃣ [선택 시트로 변경] 계산된 필드 만들기

‘선택 시트’를 값으로 가지는 계산된 필드를 작성합니다.

2️⃣ [다시 선택 버튼] 계산된 필드 만들기

‘다시 선택하기’를 텍스트 값으로 가지는 계산된 필드를 만듭니다.

3️⃣ 시트명: <선택 시트로 변경> 만들기

‘선택 시트’가 선택되어 있을 때는 해당 버튼이 노출되지 않도록 필터 선반에 [T/F_결과 시트]를 추가합니다.

[선택 시트로 변경]을 세부 정보 선반에 추가하고, [다시 선택 버튼]을 행 선반과 텍스트 선반에 추가하고, 머릿글을 해제합니다.

전체 보기와 텍스트 가운데 정렬, 서식을 적절히 변경합니다.

대시보드 만들기

1️⃣ 가로 컨테이너의 원리를 활용한 워크시트 배치

대시보드에 가로 컨테이너를 추가한 다음, 해당 가로 컨테이너에 <선택 시트>와 <결과 시트>를 나란히 추가합니다. 각 워크시트의 제목을 숨긴 다음, 매개변수 변경을 사용하여 변경해보면, 시트 결과가 null일 때, 마치 나타나지 않는 것처럼 보이는 것을 볼 수 있습니다.

이와 같은 원리를 사용하여 <선택 시트로 변경>과 <결과 시트로 변경> 시트에 대해서도 동일한 가로 컨테이너에 나란히 배치할 수 있겠죠?

2️⃣ 대시보드 동작 – 매개변수 변경하기

 

앞서 <선택 시트로 변경>과 <결과 시트로 변경>에 대해 각각 [선택 시트로 변경], [결과 시트로 변경]이라는 필드를 세부 정보 선반에 추가하였습니다. 이는 매개변수 동작을 생성 역할을 하는 필드로서, 대시보드 동작에 위 그림과 같이 각각에 대해 동작을 추가합니다. 이를 통해 두 가지 시트가 마치 버튼처럼 동작하게 됩니다.

3️⃣ 대시보드 동작 – 필터 초기화하기


<선택 시트로 변경> 워크시트를 선택했을 때, <선택 시트>에서 선택했던 모든 필터가 초기화된다면 사용자의 번거로움을 덜어줄 수 있을 것입니다.

이를 위해 필터 동작을 다음과 같이 작성합니다. <선택 시트로 변경>을 선택했을 때 선택된 대상 시트의 [시도],[시군구],[도로명]에 모든 값이 포함되도록 설정할 수 있습니다.

Outro

이번 시나리오는 태블로 커뮤니티에서 공개된 여러 노하우를 조합한 것입니다. 아래 링크들은 이 글을 작성하면서 제가 참고했던 자료들입니다. 이 시나리오가 어렵게 느껴지신다면 하나 하나를 살펴본 다음, 다시 돌아오셔서 확인해보시면 한결 수월하게 이해되실 것입니다.

▶️ 필터 초기화 버튼 만들기

▶️ 대시보드에 대한 시트 선택 메뉴 만들기

댓글 남기기

태블로위키만의 새로운 소식, 놓칠 수 없겠죠?