데이터 시각화
고친 사람 github-actions[bot]
데이터 시각화는 수로 된 데이터를 그림으로 바꿔 한눈에 읽히게 합니다. 값 수천 개를 늘어놓으면 안 보이던 모양이 그림에서는 바로 드러납니다. 데이터를 살피는 사람도, 결과를 전해 듣는 사람도 이 그림을 보고 판단합니다.
쉽고 빠른 이해
데이터 시각화는 숫자를 그림으로 바꿔 줍니다. 응답 시간 백 건을 막대 몇 개로 그리면 요청이 어디에 몰렸는지 바로 보입니다.
이게 없으면 숫자 목록을 눈으로 훑어야 합니다. 평균 같은 수 몇 개로 줄이면 읽기는 쉬워집니다. 대신 값이 두 무리로 갈라진 것 같은 모양이 가려집니다.
- 무엇을 알고 싶은지 정합니다. 퍼진 모양인지, 두 값의 관계인지, 시간에 따른 변화인지
- 그 물음에 맞는 그래프를 고릅니다
- 값을 위치나 길이로 옮겨 그립니다
대가는 그림이 사람을 속일 수도 있다는 것입니다. 축을 어디서 시작하느냐만 바꿔도 작은 차이가 크게 보입니다.
상세
주소 천 줄이 적힌 목록을 받았다고 해 봅시다. 가게들이 어느 동네에 몰려 있는지는 목록을 아무리 읽어도 잘 안 잡힙니다. 같은 주소를 지도 위에 점으로 찍으면 어느 동네에 몰렸는지가 보입니다.
데이터 시각화는 데이터의 값을 눈에 보이는 표시로 옮기는 일입니다. 큰 값은 긴 막대로 그립니다. 점으로 찍을 때는 큰 값을 위쪽에 둡니다. 응답 시간을 시간 순서대로 찍어 이은 선 하나도 데이터 시각화입니다.
시각화가 필요한 까닭은 사람의 눈에 있습니다. 사람은 숫자 목록을 한 줄씩 읽습니다. 그림은 한 번에 봅니다. 그래서 어디가 높고 어디가 비었는지를 그림에서 훨씬 먼저 알아챕니다.
요약 통계만으로는 부족한 까닭도 있습니다. 요약 통계는 값 수천 개를 평균 같은 수 몇 개로 줄입니다. 줄이는 동안 값이 퍼진 모양은 버려집니다. 그림은 그 모양을 버리지 않고 보여 줍니다.
요약한 수는 거의 같아도 그려 보면 모양이 전혀 다른 묶음이 있습니다. 이런 묶음은 얼마든지 만들 수 있습니다. 널리 알려진 예로 앤스컴 콰르텟이 있습니다. 평균과 흩어진 정도가 거의 같은 네 묶음입니다.
수만 보고는 넷을 가를 수 없습니다. 그림 넷을 나란히 놓으면 바로 갈립니다.
값을 모양으로 옮기는 방법
그래프는 값 하나를 눈에 보이는 성질 하나에 맡깁니다. 어떤 성질에 맡기느냐에 따라 값이 읽히는 정도가 달라집니다.
값을 맡는 눈에 보이는 성질 하나하나가 시각 채널입니다. 가로·세로 위치, 막대의 길이, 원 조각의 각도, 도형의 넓이, 색의 진하기가 모두 시각 채널입니다. 이름을 붙여 두면 그래프를 고를 때 어느 채널이 값을 더 잘 전하는지 견줄 수 있습니다.
위치와 길이 채널은 비교적 정확하게 읽힙니다. 나란히 놓인 두 점의 높이나 두 막대의 길이는 어느 쪽이 얼마나 큰지 알아보기 쉽습니다. 각도와 넓이 채널은 그보다 잘못 읽는 폭이 커집니다. 색의 진하기 채널로는 크기의 차이를 더 읽기 어렵습니다.
그래서 가장 중요한 값을 위치나 길이 채널에 맡깁니다. 색 채널은 무리를 가르는 데 씁니다. 서버 A 는 파란색, 서버 B 는 주황색처럼 칠해 두면 두 무리가 섞이지 않습니다.
물음에 맞춰 고르는 그래프
그래프의 종류는 무엇을 묻느냐로 정합니다. 묻는 것이 정해지면 어느 값을 위치 채널에 둘지가 정해집니다. 시간에 따른 변화를 묻는다면 시간을 가로 위치에, 값을 세로 위치에 둡니다. 그렇게 그린 것이 선 그래프입니다.
흔히 쓰는 그래프를 물음과 함께 늘어놓으면 이렇습니다.
| 알고 싶은 것 | 그래프 | 그리는 법 |
|---|---|---|
| 서버별 요청 수처럼 묶음끼리 크기 비교 | 막대 그래프 | 묶음마다 막대 하나. 길이가 값입니다 |
| 시간에 따른 변화 | 선 그래프 | 가로축에 시간, 세로축에 값을 찍고 선으로 잇습니다 |
| 값이 퍼진 모양 | 히스토그램 | 값의 범위를 구간으로 나누고 구간마다 몇 건인지 막대로 세웁니다 |
| 여러 묶음의 퍼진 모양 비교 | 상자 그림 | 값을 크기순으로 늘어놓았을 때 가운데 절반을 상자로, 양 끝 쪽 값을 선으로 그립니다 |
| 두 값의 관계 | 산점도 | 한 건을 점 하나로 찍습니다. 가로가 한 값, 세로가 다른 값입니다 |
히스토그램과 막대 그래프는 둘 다 막대를 세워서 헷갈립니다. 막대 그래프의 가로축은 서버 이름처럼 이름으로 갈리는 묶음입니다. 히스토그램의 가로축은 응답 시간 같은 수입니다. 그 수를 토막 낸 구간마다 막대가 섭니다.
산점도는 두 값이 함께 움직이는지 볼 때 씁니다. 요청 크기를 가로에, 응답 시간을 세로에 찍었다고 합시다. 점들이 오른쪽 위로 뻗어 있으면 큰 요청일수록 오래 걸린다는 뜻입니다. 두 값이 이렇게 함께 움직이는 정도가 상관관계입니다.
평균이 가린 두 무리
요약 통계와 그림이 같은 데이터를 두고 어떻게 다르게 말하는지 봅니다. 응답 시간 백 건 가운데 절반은 캐시에 있던 값을 돌려줘서 금방 끝났습니다. 나머지 절반은 캐시에 없어서 오래 걸렸습니다.
이 백 건의 평균은 약 0.5초입니다. 평균만 받아 든 사람은 요청 대부분이 0.5초쯤 걸린다고 읽습니다.
같은 백 건을 0.1초 폭의 구간으로 나눠 히스토그램을 그리면 이렇게 나옵니다. 가로축의 수는 각 구간이 시작하는 값입니다.
xychart-beta
title "응답 시간 100건"
x-axis "응답 시간(초)" ["0.0", "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1.0"]
y-axis "요청 수" 0 --> 40
bar [10, 35, 5, 0, 0, 0, 0, 0, 15, 30, 5]
막대가 왼쪽과 오른쪽 두 곳에 몰려 있습니다. 평균인 0.5초 구간에는 요청이 한 건도 없습니다. 이렇게 봉우리가 둘인 모양을 쌍봉 분포라고 부릅니다.
그림을 본 사람은 「0.5초가 걸리는 요청」을 찾지 않습니다. 「오래 걸린 절반은 왜 캐시에 없었나」를 묻습니다. 그림이 다음에 던질 물음을 바꾼 것입니다.
살피는 그림과 전하는 그림
데이터 시각화는 누가 보느냐에 따라 두 갈래로 나뉩니다. 두 갈래는 그리는 속도와 다듬는 정도가 다릅니다.
첫째는 자기가 보려고 그리는 그림입니다. 데이터를 처음 받았을 때 여러 그래프를 빠르게 그려 보며 이상한 곳을 찾습니다. 결론을 내기 전에 데이터의 생김새를 먼저 살피는 이 일을 탐색적 자료 분석이라고 부릅니다. 이때 그림은 꾸밀 필요가 없습니다. 많이 그리고 많이 버립니다.
둘째는 남에게 보여 주려고 그리는 그림입니다. 보고서나 발표에 들어가는 그림이 이쪽입니다. 말하려는 것이 하나 정해져 있습니다. 그것이 먼저 눈에 들어오도록 제목·축 이름·단위를 달고 군더더기를 걷습니다.
백엔드 개발자에게 익숙한 시각화는 모니터링 화면입니다. 요청 수, 오류 수, 응답 시간을 그래프 여러 장으로 한 화면에 모아 둔 것이 대시보드입니다. 장애가 났을 때 어느 그래프가 언제부터 꺾였는지를 보고 원인을 좁힙니다.
그림이 속이는 경우
그림은 한눈에 읽히는 만큼 한눈에 잘못 읽히기도 합니다. 같은 데이터로도 그리는 방법에 따라 인상이 달라지는 경우를 셋 봅니다.
첫째는 막대 그래프의 세로축을 0 이 아닌 값에서 시작하는 경우입니다. 값 100 과 105 를 세로축 95 부터 그리면 두 번째 막대가 첫 번째의 두 배로 보입니다. 막대는 길이로 값을 읽게 하는 그래프라서 시작점이 잘리면 길이의 비가 어긋납니다.
둘째는 히스토그램의 구간 폭입니다. 앞의 응답 시간을 0.5초 폭으로 나누면 막대가 50건, 45건, 5건 셋으로 나옵니다. 가운데 비어 있던 구간이 사라져 두 무리가 붙어 보입니다. 1초 폭으로 나누면 백 건 중 아흔다섯 건이 막대 하나에 들어가 두 무리가 아예 사라집니다. 폭을 몇 가지로 바꿔 그려 보면 모양이 폭 때문에 생긴 것인지 데이터 때문인지 가를 수 있습니다.
셋째는 넓이로 값을 보이는 경우입니다. 값이 두 배인 것을 원의 지름을 두 배로 그려 보이면 넓이는 네 배가 됩니다. 보는 사람은 넓이를 읽으므로 차이를 실제보다 크게 받아들입니다. 입체 효과를 넣은 그래프도 앞쪽 막대가 커 보여 같은 일이 생깁니다.
그림을 쓰는 때와 표를 쓰는 때
그림은 모양과 흐름을 볼 때 씁니다. 어디가 높은지, 언제부터 꺾였는지, 두 값이 함께 움직이는지 같은 물음입니다. 값이 많을수록 그림의 몫이 커집니다.
값 하나하나를 찾아 읽어야 할 때는 표를 씁니다. 「3월 12일 오후 2시의 오류 수가 몇 건인가」는 그래프에서 눈금을 짚어 가며 읽기보다 표에서 찾는 편이 확실합니다. 값이 서너 개뿐이면 문장 한 줄로 적는 편이 그림보다 짧습니다.
그림과 요약 통계는 서로를 채웁니다. 그림은 모양을 보입니다. 수는 크기를 정해 줍니다. 응답 시간 대시보드가 그래프 옆에 평균과 백분위수를 함께 적어 두는 것도 그래서입니다.
관련 항목
데이터 시각화가 속하는 상위 분류
통계 · 통계학 · 기술 통계 · 데이터 분석 · 데이터 과학 · 통계 그래픽
데이터 시각화가 그리는 그래프
막대 그래프 · 선 그래프 · 히스토그램 · 상자 그림 · 산점도 · 파이 차트 · 히트맵 · 줄기 잎 그림
데이터 시각화를 이루는 구성 요소
시각 채널 · 시각적 인코딩 · 축 · 범례 · 구간 · 색상 팔레트
데이터 시각화가 드러내는 데이터의 특징
분포 · 쌍봉 분포 · 이상치 · 상관관계 · 추세 · 계절성
데이터 시각화가 보완하는 수치 요약
요약 통계 · 평균 · 백분위수 · 표준편차 · 다섯 수 요약 · 앤스컴 콰르텟
데이터 시각화를 쓰는 작업
탐색적 자료 분석 · 모니터링 · 대시보드 · 비즈니스 인텔리전스 · 보고서 · 관측 가능성
데이터 시각화가 그리는 백엔드 지표
응답 시간 · 처리량 · 오류율 · 시계열 · 꼬리 지연
데이터 시각화가 사람을 속이는 방식
오해를 부르는 그래프 · 잘린 축 · 이중 축 그래프
다른 이름: data visualization · Data Visualization · 시각화 · 데이터 비주얼라이제이션