Tableau 기능 학습과 메뉴 추천 대시보드 실습
오늘은 데이터 시각화 도구인 Tableau의 주요 기능을 익히고, 이를 실제로 활용해 보는 실습을 진행했다. Tableau의 개별 기능은 사용법 자체가 복잡하지 않지만, 원하는 결과를 만들기 위해 어떤 기능을 어디에서 사용해야 하는지 익히는 것이 중요하다고 느꼈다. 따라서 단순히 기능을 따라 하는 데 그치지 않고, 직접 주제를 선정해 대시보드를 구상하고 제작해 보았다.
Tableau 주요 기능 학습
오늘은 데이터 필드와 계산된 필드, 매개변수, 함수, 필터, 대시보드 구축 방법을 중심으로 학습했다.
데이터 필드는 원본 데이터셋에 존재하는 열을 의미하며, 필요에 따라 기존 필드를 활용해 새로운 분류 기준을 만들 수 있다. 예를 들어 가격 데이터를 바탕으로 저가, 중간 가격, 고가 메뉴와 같이 새로운 범주를 생성할 수 있다.
계산된 필드는 원본 데이터에 없는 값을 Tableau 내부의 계산식을 통해 만드는 기능이다. 여러 변수의 합계나 차이, 조건 충족 여부, 추천 점수 등을 생성할 수 있어 단순 시각화를 넘어 분석 목적에 맞는 새로운 정보를 도출할 수 있다.
또한 매개변수를 이용하면 사용자가 직접 입력하거나 선택한 값에 따라 결과가 달라지는 상호작용형 시트를 만들 수 있다. 매개변수 자체는 데이터를 필터링하지 않기 때문에, 계산된 필드와 함께 사용해야 실제 결과에 반영된다는 점도 확인했다.
메뉴 추천 데이터셋 구성
Tableau 기능을 실습하기 위한 주제로 음식 메뉴 추천 시스템을 선정했다. 먼저 Excel에서 약 70개의 메뉴를 포함하는 가상 데이터셋을 구성했다.
데이터셋에는 다음과 같은 항목을 포함했다.
- 메뉴명
- 음식 종류
- 가격
- 칼로리
- 매운맛
- 혼밥 적합도
- 건강도
- 평점
한식, 중식, 일식, 양식, 분식, 패스트푸드, 건강식, 동남아 음식 등 다양한 음식 종류를 포함해 사용자가 여러 조건을 적용했을 때 추천 결과가 달라지도록 구성했다. 가격과 칼로리처럼 비교적 객관적인 값뿐만 아니라, 혼밥 적합도와 건강도처럼 추천을 위해 임의로 평가한 값도 함께 포함했다.
이번 데이터는 실제 음식의 영양성분이나 가격을 정확하게 분석하기 위한 목적이 아니라 Tableau의 필터와 계산 기능을 실습하기 위한 교육용 데이터로 구성했다.
메뉴 추천 시트 제작
메뉴 추천 시트에서는 사용자가 원하는 조건을 입력하면 조건을 만족하는 음식만 남도록 구성했다.
사용자가 선택하는 주요 조건은 다음과 같다.
- 최대 예산
- 최대 칼로리
- 허용 가능한 매운맛
- 원하는 음식 종류
최대 예산, 최대 칼로리, 매운맛은 매개변수로 만들고, 음식 종류는 필터로 선택할 수 있도록 구성했다. 이후 계산된 필드를 이용해 각 음식이 사용자의 조건을 만족하는지 판단했다.
계산의 기본 구조는 다음과 같다.
가격이 최대 예산 이하이고,
칼로리가 최대 칼로리 이하이며,
매운맛이 허용 단계 이하이면
추천 후보로 분류
이를 Tableau 계산식으로 표현하면 다음과 같은 형태가 된다.
IF [가격] <= [최대 예산]
AND [칼로리] <= [최대 칼로리]
AND [매운맛] <= [허용 매운맛]
THEN "추천 후보"
ELSE "조건 미충족"
END
이 계산된 필드를 필터에 적용해 추천 후보만 표시하도록 했다. 사용자가 매개변수 값을 변경하면 추천 목록도 함께 바뀌기 때문에, 매개변수와 계산된 필드가 어떻게 연결되는지 직관적으로 확인할 수 있었다.
추천 후보가 여러 개일 때는 평점, 건강도, 혼밥 적합도를 활용해 추천 점수를 계산할 수 있도록 구상했다.
추천 점수 =
평점 × 10
+ 건강도 × 5
+ 혼밥 적합도 × 3
추천 점수를 기준으로 정렬하면 조건을 만족하는 메뉴 중 상대적으로 적합도가 높은 메뉴를 상위에 표시할 수 있다. 이를 통해 단순히 데이터를 필터링하는 것과, 여러 조건을 종합해 우선순위를 결정하는 것의 차이를 확인할 수 있었다.
대시보드 구성 방향
최종 대시보드는 크게 세 영역으로 구성할 수 있다.
왼쪽에는 최대 예산, 칼로리, 매운맛, 음식 종류와 같은 사용자 입력 조건을 배치한다. 가운데에는 추천 점수가 높은 메뉴 목록이나 추천 순위를 표시하고, 오른쪽에는 선택한 메뉴의 가격, 칼로리, 평점, 건강도 등의 상세 정보를 보여준다.
여러 시트를 하나의 대시보드에 배치하고 필터와 매개변수를 연결하면, 사용자의 선택에 따라 전체 화면이 함께 변하는 상호작용형 대시보드를 만들 수 있다.
포켓몬 실전 배틀 대시보드 구상
메뉴 추천 시트를 제작하는 것과 별개로, 포켓몬 실전 배틀에 활용할 수 있는 대시보드에 대해서도 고민해 보았다.
기존에 제작한 포켓몬 이름 검색 및 타입·종족값 출력 시트를 확장해, 단순한 포켓몬 정보 조회가 아니라 실제 배틀에서 의사결정을 지원할 수 있는 기능을 구상했다. 예를 들어 상대 포켓몬을 선택했을 때 타입 상성을 확인하거나, 내 포켓몬과 상대 포켓몬의 스피드를 비교하고, 팀 전체의 타입 약점을 분석하는 방식이다.
다만 개체값, 노력치, 성격, 기술 위력, 날씨, 특성, 아이템 등을 모두 반영한 정교한 대미지 계산기는 입력 요소와 계산 과정이 복잡해 Tableau보다는 웹 애플리케이션에 더 적합하다는 점을 알게 되었다.
따라서 Tableau에서는 완전한 배틀 계산기를 구현하기보다 다음과 같은 의사결정 지원형 대시보드가 현실적이라고 판단했다.
- 상대 포켓몬의 타입별 약점 확인
- 내 팀의 공통 약점 타입 분석
- 포켓몬 간 스피드 비교
- 상대 포켓몬을 상대로 유리한 후보 탐색
- 타입 상성과 능력치를 종합한 후보 정렬
이를 통해 Tableau가 복잡한 계산기를 만드는 도구라기보다, 여러 정보를 한 화면에 정리하고 사용자가 조건을 변경하며 비교할 수 있도록 지원하는 시각화 도구라는 점을 이해할 수 있었다.
오늘 학습하며 느낀 점
Tableau의 기능은 하나씩 보면 어렵지 않지만, 실제로 원하는 결과를 만들기 위해 어떤 기능을 조합해야 하는지 판단하는 과정이 중요했다. 특히 매개변수는 단독으로 결과를 변경하는 기능이 아니라 계산된 필드와 연결해야 한다는 점을 직접 실습하면서 이해할 수 있었다.
메뉴 추천 시트를 제작하며 조건 설정 → 계산된 필드 생성 → 추천 후보 필터링 → 추천 점수 계산 → 대시보드 구성의 전체 흐름을 경험했다. 단순한 차트 제작보다 사용자의 입력에 따라 결과가 변하는 시트를 만들어 보면서 Tableau의 상호작용 기능을 더욱 효과적으로 익힐 수 있었다.
또한 포켓몬 배틀 대시보드를 구상하는 과정에서, 도구에 따라 잘할 수 있는 역할이 다르다는 점도 배웠다. Tableau는 정교한 시뮬레이션보다 데이터 비교, 조건별 탐색, 결과 요약과 의사결정 지원에 강점이 있다. 앞으로도 단순히 기능을 외우기보다는 실제로 해결하고 싶은 문제를 먼저 정한 뒤, 그 목적에 맞는 기능을 하나씩 적용해 보는 방식으로 학습해 나가고자 한다.