태블로 집합 동작을 이용한 순차 적용 필터와 조건 초기화 버튼 만들기

일반적으로 대시보드 한 페이지에서 검색 결과의 범위를 축소하는 동작은 필터로 손쉽게 만들 수 있습니다. 하지만 필터의 작동 결과를 순차적으로 보여주고 싶다면 어떻게 해야 할까요? 첫 번째 페이지에서 첫 번째 필터 조건을 걸고, 다음 페이지에서는 첫 번째 페이지의 필터 결과만 가지고 다음 조건을 검색할 수 있도록 한다면 사용자가 순차적으로 발생하는 필터 간의 상관관계를 이해할 수 있게 됩니다. 따라서, 데이터 탐색 결과를 보다 쉽게 받아들일 수 있겠죠.

오늘은 순차적인 필터 적용을 거쳐 최종 페이지 결과를 탐색한 후, 지금까지의 필터 조건을 모두 초기화하는 버튼 만들기까지 도전해보도록 하겠습니다. 이번 포스팅에서는 모든 내용을 설명하기 보다, 구현에 사용한 몇 가지 핵심 포인트를 짚어드리겠습니다.

완성 대시보드


완성 대시보드의 로직

고양이 좋아하시나요? 저는 애완동물을 키우지는 않지만 언젠가 고양이를 키워보고 싶다는 생각이 있습니다. 저의 개인적인 관심을 담아, 나에게 맞는 고양이를 찾는 대시보드를 구현해보았습니다. 대시보드의 시나리오 순서는 다음과 같습니다.

1. 키우고 싶은 고양이의 사이즈를 선택한다.

2. 선택한 사이즈의 고양이가 가지고 있는 털 특성 중에서 원하는 것을 선택한다.

3. 선택한 사이즈, 선택한 털 특성을 가지고 있는 고양이의 눈동자 색상 중에서 원하는 것을 선택한다.

4. 고양이의 성격을 점수화한 지표를 검토하고, 특정 지표의 점수가 높았으면 하는 게 있다면 조정한다. 이 때, 내가 조정한 결과는 1,2,3,4번을 모두 반영한 결과를 보여주게 된다.

5. 선택한 사이즈, 털 특성, 눈동자 색상, 성격 점수에 모두 부합하는 고양이만을 보여주고, 고양이를 클릭하여 세부 성격을 다시 한번 확인한다.

6. 마지막으로 지금까지 검색했던 모든 결과를 리셋하고, 다시 검색하려면 조건 초기화 버튼을 이용한다.


반드시 알아야 할 개념 : 집합 VS 필터

집합과 필터 선반 모두 데이터의 범위를 줄이는 역할을 할 수 있습니다.

이번 예제에서는 데이터 범위를 줄이기 위해 모두 ‘집합’을 사용하였습니다. 집합은 집합의 IN에 해당하는 부분을 ‘참(TRUE)’으로 보고 집합을 필터 선반에 올리는 순간, 집합 조건의 참에 해당하는 범위만 보여주게 됩니다. 집합을 필터 선반을 제외한 다른 선반에 추가하면 집합의 OUT, 즉 거짓에 해당하는 부분도 여전히 유지하여 뷰에서 제외되지 않습니다. 사용자가 데이터를 순차적으로 탐색하는 시나리오에서는 자신이 선택/미선택한 것을 눈으로 확인할 수 있어야 하므로 필터가 아닌 집합을 사용하였습니다.


핵심 기능 1. 대시보드 > 동작 > 집합 값 변경 사용하기

PAGE 1의 설정 과정

이 데이터에서는 고양이의 크기를 대형, 중형, 소형의 세 종류로 구분하고 있으며, [크기] 필드에 해당 정보가 들어 있습니다. 우선, 고양이의 크기는 모양을 이용하여 고양이 모양을 시각화하였습니다. 또한, 대형>중형>소형 순으로 크기가 표현되도록 사이즈 선반에 크기 필드를 추가하였습니다.

그리고 사용자가 찾는 고양이의 결과과 (집합의 IN) 사용자가 찾지 않는 고양이의 결과 (집합의 OUT)를 구분하도록 [크기] 필드에서 [Size Set]이라는 이름으로 집합을 생성하였습니다.

대시보드 > 동작 > 집합 값 변경을 이용하면 사용자가 원하는 고양이의 크기를 직접 선택할 때마다 집합의 IN 값이 변경되도록 할 수 있습니다. 태블로의 최근 버전 업데이트 이후로, 집합 동작은 2 STEP으로 설정할 수 있게 되었습니다. 대상 집합에서 [Size Set]을 선택한 후, 마크를 선택할 때마다 집합의 IN 값으로 추가하도록 하고, 한 번 더 클릭하여 모든 내용을 해제하도록 설정하였습니다.

대시보드에서 마크 중 ‘대형묘’만 선택한 후, 워크시트로 돌아와 [Size Set]의 집합 편집을 눌러보면 ‘대형묘’가 집합의 IN 값으로 선택되었음을 확인할 수 있습니다.

PAGE 2-3 설정 과정

PAGE 2, PAGE 3은 PAGE 1과 동일한 로직으로 필드만 [털 길이], [털 종류], [눈동자] 세 가지 필드에 대해 각각 [Hair Length Set], [Hair Type Set], [Eyeball Set]라는 이름의 집합을 생성하였습니다. 그리고 대시보드 동작으로 사용자가 컨트롤하여 집합 값을 변경할 수 있도록 하였습니다.

PAGE 2에 들어간 털 길이 선택 워크시트 화면
Page 3에 들어간 눈동자 색상 선택 워크시트 화면
PAGE 3의 대시보드 동작 화면

이 때, PAGE 2의 결과는 PAGE 1에서 선택한 범위 내에서 선택하도록 워크시트 필터 선반에 [Size Set]을 추가하였고, PAGE 3에서는 [Size Set], [Hair Length Set], [Hair Type Set]를 필터 선반에 추가하여 검색의 결과를 점차 축소하도록 하였습니다.

이처럼 집합 값 변경을 사용하면 사용자가 직접 집합의 IN에 해당하는 부분을 선택할 수 있기 때문에 필터의 대안으로 사용이 가능합니다. 대시보드 동작에 이 기능이 추가된지도 벌써 1년 이상의 시간이 흘렀음에도 이 기능의 확장성과 범용성에 매번 놀라게 됩니다. 그만큼 강력한 기능이니, 꼭 익혀보세요.


핵심 기능 2. 선택된 항목 (마크) 하이라이트되지 않도록 하기

대시보드에 존재하는 마크를 선택했을 때, 치명적인 문제가 하나 있습니다. 마지막으로 선택한 마크가 하이라이트되면서, 나머지 마크의 색상이 회색빛으로 바뀐다는 점입니다. 사용자에게 마크 선택의 옵션을 제공하는 시나리오에서는 하이라이트 기능이 활성화되어 있으면 불편합니다. 아래와 같은 방법으로 이를 방지할 수 있습니다.

먼저 계산된 필드로 ‘1’의 값을 지닌 더미 필드를 하나 생성합니다. 그리고, 숫자 데이터를 작성하지만 집계를 원하지 않기 때문에 차원으로 변경합니다.

집합이 포함되어 있는 PAGE 1 ‘사이즈’ 워크시트 마크를 클릭해도 하이라이트되지 않도록 함

다음으로, 하이라이트되지 않기를 원하는 모든 워크시트의 세부정보 선반에 해당 필드를 추가합니다. 마지막으로 대시보드 > 동작 > 하이라이트 추가를 클릭합니다. 하이라이트되지 않아야 하는 워크시트 목록을 선택하고, 선택한 필드를 선택하고, 각각 1을 선택합니다. 이렇게 하면 마지막으로 선택된 마크가 하이라이트되지 않습니다.


핵심 기능 3. 대시보드 개체의 탐색을 사용해 대시보드 간의 이동 만들기

이 시나리오는 순차적으로 검색 결과를 줄여나가기 때문에, 정해진 순서대로 대시보드를 전환하면서 넘어갈 수 있어야 합니다. 마지막 페이지를 제외한 모든 페이지에 대시보드 탐색 개체를 삽입하하고, 각각 그 다음 시트로 이동하도록 설정하였습니다.


핵심 기능 4. 매개변수 동작으로 조건 변경하기

PAGE 4는 조금 다른 방법을 적용하였습니다. 선택할 때마다, 매개변수가 변경되도록 하고, 해당 매개변수보다 점수가 큰 것만 참의 값을 가지는 계산된 필드를 작성하였습니다.

대시보드 동작 > 매개변수 변경 > 변경할 매개변수와 매개변수와 동일한 값이 들어있는 필드 선택
총 11개의 매개변수 동작 생성

대시보드 > 동작 > 매개변수 변경을 사용하면 되고, 총 11가지 성격을 변경할 수 있는 11개의 매개변수를 작성하였습니다. 이에 대한 자세한 설명은 앞선 포스트인 수익율 변경 시나리오를 참고해주세요.


핵심 기능 5. 조건 초기화 버튼을 위해, 집합에 사용된 모든 필드를 추가한 워크시트 만들기

집합 동작의 실행 결과 옵션은 세 가지입니다.

앞서 핵심 기능 1을 다시 한번 거슬러가보겠습니다. 대시보드 동작 > 집합 값 변경의 시나리오는 경우의 수가 다양합니다. 선택했을 때 발생하는 옵션에는 할당/추가/제거가 있네요. 이 중 제거를 응용하여 지금까지의 모든 조건을 초기화하는 동작을 만들어보겠습니다.

선반을 더블클릭하여 직접 작성

이를 위해서는 버튼으로 사용할 시트를 하나 만들어야 합니다. 워크시트를 생성하고, 카드 선반에 곧바로 ‘RESET AND RESTART’라는 텍스트를 작성하여 이를 텍스트 선반에 추가하였습니다.

집합을 생성한 모든 차원들이 선반에 존재해야 함

이 시트에는 집합에 사용된 모든 필드가 존재해야 합니다. 집합 동작을 만들기 위해서는 관련된 값이 반드시 해당 워크시트에 존재해야 하기 때문입니다. 그러면 존재하는 마크만큼 크로스탭 형태로 데이터가 존재할 수밖에 없다는 문제가 있습니다. 우리는 총 네 개의 집합을 만들었고, 해당 집합의 내용을 모두 제거하려면 이 워크시트에 그 네 개의 집합에 사용한 차원들을 모두 올려야 하는 것이죠.

마지막 행을 제외한 모든 행의 반복된 값을 숨겨주기 위해, 마법의 함수, LAST() 함수를 사용하였습니다. LAST는 함수는 마지막 위치로부터 0,1,2,3,4… 라는 인덱스를 부여하는 테이블 계산 함수인데, 이를 필터 선반에 추가하면 뷰의 계산에 영향을 주지 않고 보이는 결과만 숨겨주게 되는 효과가 있습니다. 이 때, LAST는 테이블 계산이므로, 방향과 범위를 ‘테이블 계산 편집’ 또는 ‘다음을 사용하여 계산’에서 설정해주셔야 합니다. 행 선반에 모든 필드가 존재하는 경우, ‘테이블 아래로’에 해당합니다.

필터에 LAST를 넣고, 범위를 0으로 설정 > 마지막 행만 남김

정리하고 나면, 이렇게 깔끔해집니다.

네 개의 집합에 대해 ‘집합에서 값 제거’ 옵션 설정

대시보드 작업 > 동작 > 집합 값 변경에 가서 네 개의 집합에 대해 모두 선택하면 집합 값이 제거되도록 설정하였습니다.


핵심 기능 6. 매개변수 조건 초기화-특정 값으로 변경하기

집합 뿐만 아니라 매개변수의 선택 값도 모두 초기화해야 합니다. 이를 위해 앞서 만든 워크시트에 매개변수와 관련한 필드들이 존재할 필요는 없습니다. 매개변수는 한 통합문서 전체에 종속되기 때문입니다. 대시보드 > 동작 > 매개변수 변경에 가서 ‘RESET AND RESTART’를 누르면 모든 매개변수의 값이 1로 변경되도록 하였습니다. 이 때, 대상 필드는 하이라이트를 끄기 위해 작성한 1을 그대로 활용하였습니다. 초기값으로 설정하고 싶은 값이 마침 1이기 때문입니다.


핵심 기능 7. 워크시트를 시트 이동 버튼처럼 사용하기

대시보드 간의 전환은 대시보드 개체의 탐색을 이용해도 되지만, 대시보드 동작의 시트로 이동을 이용해도 됩니다. ‘RESET AND RESTART’ 시트를 클릭할 때, 조건 초기화 뿐만 아니라, PAGE 0으로 되돌아가도록 시트로 이동을 추가하였습니다.

이 때 대상시트는 워크시트가 될 수도, 대시보드가 될 수도 있습니다. 여기서는 대시보드인 PAGE 0으로 돌아가면 되겠죠.


한계점 발견

1. 여러 대시보드 동작이 동시 적용되지 않네요. 조건초기화를 위한 집합 값 변경 동작과 매개변수 변경 동작은 워크시트 선택 시 바로 적용되지만, 시트로 이동이 동시에 적용되지 않고, 동일한 시트를 한 번 더 클릭해야 비로소 적용됩니다. 태블로가 놓친 기술적인 오류인지 특정한 이유로 일부러 그렇게 설정해놓은 것인지는 모르겠지만, 사소한 불편함이 사용성 측면에서는 이 방법을 사용하지 못하는 이유가 될 수도 있는 것이라, 아쉬웠습니다.

2. 하이라이트 기능을 꺼도 여전히 마지막에 선택한 마크가 다른 마크보다 굵게 표시됩니다. 처음 이 시나리오를 클릭할 때는 괜찮지만, 이미 한번의 탐색을 마친 상황에서 RESET AND RESTART 버튼으로 처음으로 돌아가 시작하려고 하면 그 전에 눌렀던 최종 마크들이 다른 마크보다 굵게 표시되어 있다는 점이 아쉬웠습니다.


REFERENCE

이번 대시보드 기획을 하면서, 데이터와 대시보드 주제 선정에서 ‘opendoorlife’님의 영감과 도움을 받은 점을 밝힙니다. 오리지널 대시보드도 구경해보세요.

One thought on “태블로 집합 동작을 이용한 순차 적용 필터와 조건 초기화 버튼 만들기

댓글 남기기

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