핵심 요약
- 데이터 분석 툴에서 미니 그래프(스파크라인)를 지원하지 않자 유니코드 블록 문자 8개를 조합해 텍스트 그래프를 구현했습니다.
- 별도 그래픽 라이브러리 없이 터미널 콘솔, 웹 표, SNS 등 어디서나 깨지지 않고 출력되며 정렬 기준으로도 쓸 수 있습니다.
- 포스트그레스(Postgres) DB 함수로 작성해 실제 대학 강의 주간 활동량 대시보드 시각화에 적용했습니다.
요약 데이터 시각화의 거장 에드워드 터프티(Edward Tufte)가 고안한 '스파크라인(Sparkline)'은 문장이나 표의 한 글자 크기 안에 들어가는 초소형 미니 그래프를 뜻합니다. 보통 엑셀이나 구글 스프레드시트의 셀 하나에 숫자 데이터를 압축해 트렌드를 보여줄 때 흔히 쓰입니다.
개발자 존 유델(Jon Udell)은 데이터 분석 도구인 메타베이스(Metabase)에서 포스트그레스(PostgreSQL) DB 데이터를 조회하던 중, 시간에 따른 추세를 한눈에 보여주는 스파크라인을 표 안에 띄우고 싶었지만 당시 툴 자체에는 해당 기능이 없었습니다. 이에 그는 유니코드 블록 문자 8종(U+2581~U+2588, 높이가 다른 8단계 막대 블록)을 활용해 텍스트 기반의 스파크라인을 직접 생성하는 아이디어를 적용했습니다.
로제타 코드(Rosetta Code)에 공개된 파이썬 스크립트를 기반으로 포스트그레스 사용자 정의 함수(PL/Python)를 작성했으며, 모든 숫자가 같을 때 0으로 나누는 오류를 방지하는 예외 처리도 추가했습니다. 이렇게 만들어진 함수에 숫자 배열을 넘기면 ' ▂▃▄▅▆▇█'와 같은 유니코드 문자열로 즉시 변환되어 출력됩니다.
이 방식은 대학 강의별 주간 필기·주석 활동량 등을 집계하는 대시보드에 실제로 적용되었습니다. 유니코드 스파크라인은 단순한 텍스트 문자열에 불과하므로 psql 터미널 화면, 웹 브라우저의 HTML 테이블, 트윗 등 어디서든 깨지지 않고 동일하게 보이며, SQL 쿼리상에서 정렬(sort) 기준으로 활용할 수도 있는 등 뛰어난 이식성과 실용성을 보여줍니다.
Sponsored · 광고