1. 테블로(Tableau) 기본 개념
- 데이터 시각화 툴
- 테블로는 데이터를 쉽고 직관적으로 시각화하고, 대시보드를 구성하여 인사이트를 도출할 수 있는 BI(Business Intelligence) 도구입니다.
- 직관적인 드래그 앤 드롭 방식, 풍부한 시각화 타입을 제공하여 비즈니스 사용자도 쉽게 접근 가능합니다.
- 워크플로우 이해
- 데이터 연결(Data Connection)
- 데이터 준비(Data Preparation)
- 시트(Sheet) 작성
- 대시보드(Dashboard) 제작
- 스토리(Story) 구성
- 주요 용어
- 워크북(Workbook): 테블로에서 작업한 전체 파일
- 시트(Sheet): 차트가 배치되는 단위
- 대시보드(Dashboard): 여러 시트(차트)를 한 화면에 모아 인사이트 제공
- 스토리(Story): 대시보드/시트를 연결하여 ‘프레젠테이션’ 형태로 보여주는 기능
2. 데이터 연결 및 준비 (Data Connection & Preparation)
- 데이터 연결
- Excel, CSV, 관계형 DB(Oracle, MySQL 등), 빅데이터(Hadoop, Spark) 등 다양한 소스 연결 가능
- 라이브(Live) 연결 vs 추출(Extract)
- 라이브: 실시간 DB 반영 / DB 부하가 큼
- 추출: .hyper 등 추출 파일로 저장 / 빠른 대시보드 속도
- 데이터 준비
- 테블로 내장 편집 기능 혹은 Tableau Prep으로 전처리
- 필요 없는 행/열 제거, 데이터 타입 변경, 계산 필드 생성 등으로 분석에 최적화
- 조인(Join) vs 블렌드(Blend)
- 조인: 같은 DB(데이터 소스) 안에서 여러 테이블을 가로(열) 방향으로 결합(SQL Join과 유사)
- 블렌드: 서로 다른 데이터 소스 테이블을 시각화 시점에 결합
- 집합(Sets) & 합수(Union)
- 정의: 특정 멤버(차원 값)들을 ‘IN/OUT’으로 구분하는 기능. 조건(Top/Bottom N, 특정 값 등)에 따라 자동 or 수동으로 멤버가 결정.
- 종류: 고정 집합(Fixed Set), 동적 집합(Dynamic Set)
- 활용:
- 필터나 계산 필드에서 ‘집합 IN’을 기준으로 분석, 혹은 세트 액션(Set Action)으로 대화형 구성
- 기존 ‘그룹(Group)’과 달리 ‘IN/OUT’ 논리로 자유롭게 활용 가능
- 정의: 여러 테이블(혹은 파일)을 ‘행’ 기준으로 세로로 이어 붙이는 방식
- 특징: 열(Column) 구조가 동일해야 하며, 일부 열이 다르면 Null이 들어올 수 있음
- 활용 예시: 월별/분기별로 나뉘어 있는 Excel 시트를 하나로 합쳐서 전체 기간 데이터를 분석
- 3.1 집합(Sets)
3. 차트 구성의 핵심: 선반(Shelf)과 마크(Marks) 카드
- 행(Row)/열(Column) 선반
- 차원(카테고리) 또는 측정값(Measure)을 어느 선반에 놓느냐에 따라 차트 축(x, y)이 달라짐.
- 드래그앤드롭으로 빠르게 차트 형태 변환 가능.
- 마크(Marks) 카드
- 차트 유형(Bar, Line, Circle, etc), 색상(Color), 크기(Size), 라벨(Label), 상세(Detail), 툴팁(Tooltip) 등을 제어.
- 차원을 ‘색상’에 두면 범례가 생기고, 측정값을 ‘크기’에 두면 값에 따라 마크 크기가 달라짐.
- 자동 차트 추천(Show Me)
- 차원을 선택한 후 ‘Show Me’를 누르면, 테블로가 적절한 차트 유형을 제안.
4. 계산 필드(Calculated Fields)와 파라미터(Parameters)
- 계산 필드(Calculated Fields)
- 테블로가 제공하는 각종 함수를 활용하여 새로운 필드를 만들거나 기존 필드를 가공.
- SUM, AVG, IF, DATE, STRING 함수 등 다양.
- 파라미터(Parameter)
- 사용자가 대시보드/시트 상에서 값(숫자, 날짜, 문자열 등)을 직접 입력하거나 선택하여 동적으로 시각화를 제어할 수 있도록 하는 기능.
- 예: “년도 선택” 파라미터 → 선택된 연도 데이터만 반영.
- 집합(Sets)과 계산 필드 결합
- 예: IF [Customer Set] THEN [Sales] ELSE 0 END 식으로 집합(IN/OUT)에 따라 계산 로직 분기
- 집합이 동적으로 바뀌면 계산 결과도 실시간 반영.
5. 테이블 계산(Table Calculations) & LOD(레벨 오브 디테일) 표현
- 테이블 계산(Table Calculations)
- 이미 ‘시각화된 결과’(집계)에 대해 추가적인 연산을 수행할 때 사용.
- 예: 전월 대비 증감률, 누적합, 순위(Rank), 이동평균 등
- 빠른 테이블 계산: 우클릭 → “빠른 테이블 계산”으로 퍼센트 차이, 누적합 등을 간단히 적용.
- LOD(Level of Detail) 표현식
- FIXED, INCLUDE, EXCLUDE 를 사용해 특정 차원 레벨에서 집계를 강제.
- 예: {FIXED [Region] : SUM([Sales])} → Region 레벨로 매출을 고정 집계
- 복잡한 분석 로직(여러 차원이 얽힐 때)을 단순화하고, 다양한 레벨 비교를 유연하게 수행 가능.
6. 대시보드(Dashboard) & 스토리(Story) 구성
- 대시보드 제작
- 여러 시트(차트)를 한 화면에 배치해 종합 인사이트 제공.
- 컨테이너(Container)로 레이아웃 설계, 필터와 액션 등을 배치.
- PC, 태블릿, 모바일 등 다양한 해상도에 맞춰 반응형(Responsive) 옵션 고려.
- 스토리(Story)
- 분석 흐름을 ‘페이지’ 단위로 스토리텔링 형태로 구성.
- 업무 보고나 프레젠테이션 시, 한 장씩 핵심 메시지 전달에 유용.
7. 대화형 기능 및 UX 강화
- 필터(Filter)
- 시트 또는 대시보드 전체에 적용할 수 있으며, 사용자가 원하는 조건을 직접 선택하도록 제공.
- 범위 슬라이더, 체크박스, 검색창 등 다양.
- 하이라이트(Highlight)
- 클릭한 값(카테고리/데이터 포인트)을 다른 시트에서도 강조 표시해 연관성 파악을 용이하게 함.
- 액션(Action)
- 필터 액션: 한 시트에서 클릭한 값을 다른 시트 필터로 사용
- 하이라이트 액션: 선택 항목을 다른 시트에서 하이라이트
- URL 액션: 특정 항목 클릭 → 외부 사이트나 내부 웹페이지로 이동
- 세트 액션(Set Action): 대시보드에서 선택한 멤버를 집합(Set)에 동적으로 추가/제거
8. 성능 최적화 및 베스트 프랙티스
- 데이터 추출(Extract) 사용
- 대용량 데이터를 라이브로 연동하면 속도가 느려질 수 있으므로 추출(.hyper) 파일을 활용해 로딩 성능 향상.
- 필요한 데이터만 불러오기
- 분석에 필요 없는 열(컬럼)과 행(로우)은 미리 필터링해 데이터 크기를 줄임.
- 차원 및 필터 구조 간소화
- 지나치게 많은 필터나 차원(계층)을 세분화하면 퍼포먼스 저하.
- LOD, 집합 사용 주의
- 무분별한 FIXED LOD, 혹은 집합 생성 남발은 쿼리 복잡도를 높이고 관리가 어려워질 수 있음.
9. 실무 활용 팁
- 데이터 이해가 우선
- 테블로는 시각화 툴이므로, 데이터 자체에 대한 이해(구조, 범위, 품질 등)가 먼저 선행되어야 함.
- 시각적 스토리텔링
- 차트를 나열하기보다, ‘무엇을 말하고 싶은가?’를 먼저 정리하고 시각화 기법 활용.
- 협업 & 버전 관리
- Tableau Server나 Tableau Online 등을 사용해 팀 단위로 공유, 권한 관리, 버전 추적 가능.
- 계산 필드·집합·LOD 숙달
- 분석 로직 고도화를 위해 계산 필드, 집합, LOD가 필수적인 스킬.
- 계산 식과 집합을 잘 활용하면 반복적/복잡한 분석 작업이 훨씬 간단해짐.
- Union과 Join, Blend를 적절히 활용
- Union: 행(기간, 파트 등)을 세로로 확장
- Join: 열(속성)을 가로로 확장
- Blend: 서로 다른 데이터 소스를 필요 시점에 결합
10. 자주 쓰는 함수(Function) 정리
테블로 계산 필드에서 많이 사용되는 함수를 크게 집계 함수, 숫자 함수, 문자열 함수, 날짜/시간 함수, 논리 함수, 기타(형 변환 등) 로 나누어 간단히 살펴보겠습니다.
10.1 집계(Aggregate) 함수
- SUM([필드]): 합계를 구함
- AVG([필드]): 평균값
- MIN([필드]) / MAX([필드]): 최소값 / 최대값
- COUNT([필드]): 전체 개수 (Null 제외)
- COUNTD([필드]): 고유한 값의 개수 (Distinct Count)
- MEDIAN([필드]): 중앙값
- STDEV([필드]), VAR([필드]): 표준편차, 분산
예시
SUM([Sales])
COUNTD([Customer Name])
10.2 숫자(Number) 함수
- ABS(number): 절댓값
- CEILING(number): number보다 크거나 같은 최소 정수 (올림)
- FLOOR(number): number보다 작거나 같은 최대 정수 (내림)
- ROUND(number, [decimals]): 소수점 n번째 자리에서 반올림
- INT(number): 소수점 이하 버림 → 정수 변환
- ZN(number): Null을 0으로 변환
예시
ROUND([Profit] / [Sales], 2) → ‘판매 대비 이익률’을 소수점 둘째 자리까지 반올림
10.3 문자열(String) 함수
- LEFT(string, n): 문자열 왼쪽부터 n개 문자 추출
- RIGHT(string, n): 문자열 오른쪽부터 n개 문자 추출
- MID(string, start, length): 특정 인덱스(start)부터 length만큼 추출
- LEN(string): 문자열 길이
- LOWER(string), UPPER(string): 소문자/대문자로 변환
- TRIM(string): 공백 제거
- REPLACE(string, ‘old’, ‘new’): 문자열 내 old를 new로 대체
- SPLIT(string, ‘delimiter’, token_number): 구분자로 분리해 token_number번째 텍스트를 반환
예시
LEFT([Category], 3) → “Furniture”에서 “Fur” 추출
REPLACE([City], "Seoul", "서울")
10.4 날짜/시간(Date/Time) 함수
- YEAR([Date]), MONTH([Date]), DAY([Date]): 년/월/일 추출
- DATEPART(‘week’, [Date]): 날짜에서 특정 부분(주, 월, 분 등)을 숫자로 반환
- DATETRUNC(‘month’, [Date]): 특정 기간으로 잘라서 날짜를 ‘해당 월의 1일’ 등으로 고정
- DATEDIFF(‘year’, [Start Date], [End Date]): 두 날짜 사이의 연차, 월차, 일차 등을 계산
- MAKEDATE(year, month, day): 주어진 연/월/일로 날짜 객체 생성
- MAKETIME(hour, minute, second): 시/분/초로 시간 객체 생성
예시
DATEPART('month', [Order Date]) → 주문 날짜의 ‘월’을 숫자로 반환 (1~12)
DATEDIFF('day', [Order Date], [Ship Date]) → 배송까지 걸린 일 수
10.5 논리(Logical) 함수
- IF ... THEN ... ELSE ... END: 조건문
- CASE ... WHEN ... THEN ... END: 다중 분기
- AND, OR, NOT: 논리 연산
- ISNULL([필드]): Null 여부 확인
- IIF(test, value_if_true, value_if_false): 간단한 IF 대체
예시
IF [Sales] > 1000 THEN "High" ELSE "Low" END
IIF(ISNULL([Profit]), 0, [Profit]) → 이익(Profit)이 Null이면 0으로 처리
10.6 형 변환 등 기타 함수
- STR(number): 숫자를 문자열로 변환
- INT(string 또는 number): 소수점 이하 버림
- FLOAT(string): 문자열을 실수로 변환 (형식에 맞아야 함)
예시
STR([Order ID]) → 주문 ID를 문자열로 취급
FLOAT([Parameter]) → 파라미터가 텍스트이면 숫자로 변환
10.7 테이블 계산(Table Calculation) 함수
- LOOKUP(표현식, offset): 현재 행에서 offset만큼 위/아래(또는 왼/오른쪽) 값 참조
- RUNNING_SUM(표현식): 누적 합계
- RUNNING_AVG(표현식): 누적 평균
- RANK(표현식, ['asc'/'desc'], [ ties_method ]): 특정 표현식에 대해 순위 매기기
예시
LOOKUP(SUM([Sales]), -1) → 바로 이전 행의 매출 합계를 불러옴
RUNNING_SUM(SUM([Profit])) → 처음 행부터 현재 행까지 이익 누적
이러한 테이블 계산 함수들은 ‘뷰(차트)에 배치된 차원·측정값’이 이미 집계된 결과값(행 단위)에서 추가 연산을 할 때 활용합니다.
요
- 핵심 키워드: 데이터 연결/추출, 집합(Set), 합수(Union), 계산 필드 & 파라미터, 테이블 계산, LOD, 대시보드, 스토리, 액션, 성능 최적화, 함수(Function)
- 테블로 함수는 Excel 또는 SQL 함수와 유사한 부분이 많아, 기본 로직만 익히면 쉽게 적용 가능합니다.
- 함수와 LOD, 테이블 계산을 적절히 결합하면 복잡한 비즈니스 로직도 대시보드에서 손쉽게 처리할 수 있습니다.
추가 팁
- 공식 문서(Tableau Online Help)나 커뮤니티(포럼, 블로그)에 다양한 예시와 튜토리얼이 많음
- 실제로 다양한 형태의 데이터와 비즈니스 시나리오에 적용해 보면서, 함수를 어떻게 조합하면 좋을지 습득하는 것이 중요
'DATA > Tableau' 카테고리의 다른 글
[Tableau]신병훈련소 day2 (0) | 2025.01.25 |
---|---|
[Tableau] 신병훈련소 day1 (0) | 2025.01.22 |
24.08.30 - Tableau Study #1 (0) | 2024.08.30 |