본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.
본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.
이미지 로딩 중...
AI Generated
2025. 11. 29. · 27 Views
Kibana 시각화와 대시보드 완벽 가이드
Elasticsearch에 저장된 데이터를 Kibana를 통해 시각화하고 대시보드를 구성하는 방법을 배웁니다. 로그 분석부터 커스텀 리포트까지, 데이터를 눈으로 보는 모든 기술을 다룹니다.
목차
1. Kibana 설치와 설정
김개발 씨는 회사에서 운영 중인 서비스의 로그를 분석해달라는 요청을 받았습니다. Elasticsearch에 데이터는 쌓여 있는데, 터미널에서 JSON 응답을 눈으로 읽어가며 분석하려니 막막했습니다.
선배가 다가와 말했습니다. "Kibana 써봤어요?
데이터를 눈으로 볼 수 있어요."
Kibana는 Elasticsearch 데이터를 시각화하고 탐색하는 도구입니다. 마치 엑셀이 스프레드시트를 보여주듯, Kibana는 Elasticsearch의 복잡한 데이터를 차트와 그래프로 보여줍니다.
설치만 하면 웹 브라우저에서 바로 데이터를 탐색할 수 있습니다.
다음 코드를 살펴봅시다.
# Docker를 이용한 Kibana 설치
# Elasticsearch와 동일한 네트워크에서 실행해야 합니다
docker network create elastic
# Elasticsearch 먼저 실행
docker run -d --name elasticsearch \
--net elastic \
-p 9200:9200 \
-e "discovery.type=single-node" \
elasticsearch:8.11.0
# Kibana 실행 - Elasticsearch와 연결
docker run -d --name kibana \
--net elastic \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
kibana:8.11.0
# 브라우저에서 http://localhost:5601 접속
김개발 씨는 입사 6개월 차 백엔드 개발자입니다. 어느 날 팀장님이 찾아와 말했습니다.
"우리 서비스 로그 분석 좀 해줄 수 있어요? 최근에 에러가 자주 난다고 하는데, 패턴을 찾아봐요." 로그는 이미 Elasticsearch에 잘 쌓여 있었습니다.
김개발 씨는 curl 명령어로 Elasticsearch에 쿼리를 날려봤습니다. 결과가 화면에 주르륵 출력되었습니다.
JSON 형식의 데이터가 수백 줄씩 쏟아져 나왔습니다. 도대체 이걸 어떻게 분석한단 말인가요?
옆자리 박시니어 씨가 화면을 힐끗 보더니 웃으며 말했습니다. "그렇게 분석하면 한 달이 걸려도 못 끝내요.
Kibana 쓰세요." Kibana란 무엇일까요? 쉽게 비유하자면, Kibana는 마치 현미경과 같습니다.
맨눈으로는 보이지 않는 미세한 세포를 현미경으로 보면 선명하게 보이듯이, Kibana는 복잡한 데이터 속에 숨겨진 패턴과 트렌드를 눈에 보이게 만들어줍니다. Elasticsearch가 데이터를 저장하고 검색하는 창고라면, Kibana는 그 창고의 물건들을 예쁘게 진열해서 보여주는 쇼룸입니다.
둘은 항상 함께 다닙니다. Elastic Stack이라고 부르는 이유도 여기에 있습니다.
설치는 생각보다 간단합니다. Docker를 사용하면 명령어 몇 줄로 끝납니다.
위의 코드에서 보듯이, 먼저 Elasticsearch를 실행하고 그 다음 Kibana를 실행합니다. 중요한 점은 두 컨테이너가 같은 네트워크에 있어야 한다는 것입니다.
ELASTICSEARCH_HOSTS 환경변수가 핵심입니다. Kibana에게 "데이터는 여기서 가져와"라고 알려주는 설정입니다.
이 값이 잘못되면 Kibana는 빈 화면만 보여줍니다. 설치가 완료되면 브라우저를 열고 **http://localhost:5601**로 접속합니다.
처음 접속하면 설정 마법사가 나타납니다. Elasticsearch와의 연결을 확인하고, 필요한 초기 설정을 안내해줍니다.
Kibana 8.x 버전부터는 보안이 기본으로 켜져 있습니다. 처음 실행하면 enrollment token을 입력하라고 합니다.
Elasticsearch 로그에서 이 토큰을 찾아 입력하면 됩니다. 개발 환경에서는 보안을 끄고 사용하기도 하지만, 운영 환경에서는 반드시 보안 설정을 유지해야 합니다.
김개발 씨는 5분 만에 Kibana를 설치했습니다. 브라우저에서 Kibana 화면을 보는 순간, 이제야 뭔가 할 수 있겠다는 생각이 들었습니다.
깔끔한 UI가 그를 반겼습니다.
실전 팁
💡 - Elasticsearch와 Kibana의 버전은 반드시 동일해야 합니다
- 운영 환경에서는 반드시 보안 설정을 활성화하세요
- 메모리가 부족하면 Kibana가 느려지니 최소 2GB 이상 할당하세요
2. Data View 생성
Kibana 설치를 마친 김개발 씨가 화면을 둘러보다가 당황했습니다. "데이터가 어디 있지?" Elasticsearch에 분명히 로그가 쌓여 있는데, Kibana에서는 아무것도 보이지 않았습니다.
박시니어 씨가 말했습니다. "Data View를 먼저 만들어야 해요."
Data View는 Kibana가 Elasticsearch의 어떤 인덱스를 볼 것인지 지정하는 설정입니다. 마치 도서관에서 어떤 서가를 탐색할지 선택하는 것과 같습니다.
Data View 없이는 Kibana가 어디서 데이터를 가져올지 알 수 없습니다.
다음 코드를 살펴봅시다.
// Kibana Dev Tools에서 인덱스 확인하기
GET _cat/indices?v
// 결과 예시:
// health status index docs.count
// green open logs-2024.01.01 50000
// green open logs-2024.01.02 48000
// green open logs-2024.01.03 52000
// Data View 생성 API (Kibana 8.x)
POST kbn:/api/data_views/data_view
{
"data_view": {
"title": "logs-*",
"timeFieldName": "@timestamp",
"name": "Application Logs"
}
}
김개발 씨는 Kibana 메인 화면에서 이리저리 클릭해봤습니다. 왼쪽 메뉴에 Analytics, Observability, Security 등 많은 메뉴가 있었지만, 어딜 가든 데이터는 보이지 않았습니다.
마치 TV를 샀는데 채널이 하나도 안 잡히는 느낌이었습니다. 박시니어 씨가 설명을 시작했습니다.
"Kibana는 Elasticsearch의 모든 인덱스를 자동으로 보여주지 않아요. 어떤 인덱스를 볼 건지 명시적으로 알려줘야 해요.
그게 바로 Data View예요." Data View가 필요한 이유를 생각해봅시다. Elasticsearch에는 수십, 수백 개의 인덱스가 있을 수 있습니다.
로그 인덱스, 사용자 정보 인덱스, 상품 인덱스 등등. 이 모든 걸 한꺼번에 보여주면 오히려 혼란스럽습니다.
Data View는 마치 망원경의 초점과 같습니다. 밤하늘 전체가 아니라, 내가 보고 싶은 별자리에 초점을 맞추는 것입니다.
"나는 로그 데이터만 볼 거야"라고 Kibana에게 알려주는 것이 Data View입니다. 생성 방법은 두 가지입니다.
UI에서 만들거나 API로 만들 수 있습니다. UI로 만들려면 왼쪽 메뉴에서 Stack Management > Data Views로 들어갑니다.
Create data view 버튼을 클릭하면 설정 화면이 나타납니다. 여기서 핵심은 인덱스 패턴입니다.
위 코드의 logs-*처럼 와일드카드를 사용할 수 있습니다. 이렇게 하면 logs-2024.01.01, logs-2024.01.02 등 logs-로 시작하는 모든 인덱스를 한 번에 연결할 수 있습니다.
timeFieldName도 중요합니다. 시계열 데이터를 다룰 때 어떤 필드를 시간 기준으로 사용할지 지정합니다.
대부분의 로그 데이터는 @timestamp 필드를 사용합니다. 이 설정이 있어야 시간 범위로 데이터를 필터링할 수 있습니다.
Data View를 만들고 나면 신기한 일이 일어납니다. Kibana의 Discover, Visualize, Dashboard 등 모든 기능에서 이 데이터를 사용할 수 있게 됩니다.
마치 TV에 채널이 잡힌 것처럼요. 하나의 Elasticsearch 클러스터에 여러 개의 Data View를 만들 수 있습니다.
로그용 Data View, 메트릭용 Data View, 비즈니스 데이터용 Data View 등을 따로 만들어두면 용도에 따라 전환하며 사용할 수 있습니다. 김개발 씨는 logs-* 패턴으로 Data View를 만들었습니다.
생성 버튼을 누르자 Kibana가 해당 인덱스의 필드들을 자동으로 인식했습니다. 필드 목록이 쭉 나타나는 걸 보니, 드디어 데이터를 탐색할 준비가 된 것 같았습니다.
실전 팁
💡 - 인덱스 패턴에 와일드카드를 사용하면 날짜별 인덱스를 한 번에 연결할 수 있습니다
- 시간 필드 설정을 빠뜨리면 시간 기반 필터링이 작동하지 않습니다
- Data View는 언제든 수정하거나 삭제할 수 있으니 부담 없이 만들어보세요
3. Discover로 로그 탐색
Data View를 만든 김개발 씨가 드디어 데이터를 볼 수 있게 되었습니다. 이제 로그에서 에러를 찾아야 합니다.
하지만 수십만 건의 로그 중에서 어떻게 원하는 것만 찾을 수 있을까요? 박시니어 씨가 왼쪽 메뉴를 가리켰습니다.
"Discover부터 시작해봐요."
Discover는 Kibana의 로그 탐색 도구입니다. 마치 탐정이 증거를 찾아 헤매듯, Discover에서는 필터와 검색으로 원하는 로그를 찾아낼 수 있습니다.
시간 범위 설정, KQL 검색, 필드 필터링을 조합하면 바늘도 찾을 수 있습니다.
다음 코드를 살펴봅시다.
// KQL (Kibana Query Language) 검색 예시
// 특정 레벨의 로그만 검색
level: "error"
// 여러 조건 조합 (AND)
level: "error" and service: "payment"
// 여러 값 중 하나라도 일치 (OR)
status: 500 or status: 502 or status: 503
// 특정 문자열 포함
message: *timeout*
// 범위 검색
response_time > 1000
// 필드 존재 여부
error.message: *
김개발 씨가 왼쪽 메뉴에서 Discover를 클릭했습니다. 화면이 바뀌면서 로그들이 쏟아져 나왔습니다.
화면 상단에는 시간대별 히스토그램이, 아래에는 개별 로그 문서들이 표시되었습니다. 드디어 데이터가 보입니다.
하지만 문제가 있었습니다. 로그가 너무 많았습니다.
최근 15분간의 로그만 해도 수천 건이었습니다. 이 중에서 에러를 일일이 찾아야 할까요?
박시니어 씨가 화면 오른쪽 상단을 가리켰습니다. "먼저 시간 범위를 조절해봐요.
에러가 발생한 시점을 알면 그 근처만 보면 돼요." 시간 필터는 Discover의 핵심 기능입니다. 화면 우측 상단의 달력 아이콘을 클릭하면 다양한 옵션이 나타납니다.
Last 15 minutes, Last 1 hour, Today 같은 빠른 선택지도 있고, 특정 날짜와 시간을 직접 지정할 수도 있습니다. 다음은 KQL 검색입니다.
화면 상단의 검색창에 KQL 문법으로 쿼리를 입력할 수 있습니다. KQL은 Kibana Query Language의 약자로, Elasticsearch 쿼리를 간단하게 작성할 수 있게 해주는 언어입니다.
가장 기본적인 검색은 필드: 값 형식입니다. 예를 들어 **level: "error"**라고 입력하면 level 필드가 error인 로그만 필터링됩니다.
따옴표는 정확한 값을 찾을 때 사용합니다. 와일드카드도 지원합니다.
message: *timeout*처럼 별표를 사용하면 timeout이라는 문자열이 포함된 모든 로그를 찾을 수 있습니다. 로그 메시지에서 특정 키워드를 찾을 때 유용합니다.
조건을 조합할 수도 있습니다. and로 여러 조건을 모두 만족하는 로그를 찾거나, or로 여러 조건 중 하나라도 만족하는 로그를 찾을 수 있습니다.
복잡한 조건도 괄호로 그룹핑할 수 있습니다. 왼쪽 사이드바에는 필드 목록이 있습니다.
각 필드 옆의 플러스 버튼을 클릭하면 해당 필드가 테이블 컬럼으로 추가됩니다. 필요한 필드만 선택해서 보면 훨씬 읽기 편합니다.
김개발 씨는 **level: "error" and service: "payment"**라고 입력했습니다. Enter를 누르자 결제 서비스의 에러 로그만 필터링되었습니다.
수천 건이던 로그가 수십 건으로 줄었습니다. 이제 분석할 만한 양이 되었습니다.
각 로그를 클릭하면 상세 정보가 펼쳐집니다. 모든 필드와 값을 한눈에 볼 수 있고, 특정 필드 값으로 바로 필터를 추가할 수도 있습니다.
마치 돋보기로 문서를 자세히 들여다보는 느낌입니다. 유용한 검색 결과는 저장해둘 수 있습니다.
상단의 Save 버튼을 클릭해서 이름을 붙여 저장하면, 나중에 같은 검색을 다시 할 때 빠르게 불러올 수 있습니다.
실전 팁
💡 - 자주 쓰는 검색은 저장해두면 반복 작업을 줄일 수 있습니다
- 필드 목록에서 필드를 클릭하면 상위 값들의 통계를 볼 수 있습니다
- 히스토그램에서 특정 구간을 드래그하면 해당 시간대로 자동 필터링됩니다
4. Lens 시각화 도구
로그 탐색을 마친 김개발 씨에게 팀장님이 새로운 요청을 했습니다. "에러 현황을 차트로 만들어서 보고해줄 수 있어요?" 엑셀로 만들어야 하나 고민하던 김개발 씨에게 박시니어 씨가 말했습니다.
"Lens 써봐요. 드래그 앤 드롭으로 차트 만들 수 있어요."
Lens는 Kibana의 시각화 도구입니다. 코드 한 줄 없이 드래그 앤 드롭만으로 막대 차트, 선 그래프, 파이 차트 등을 만들 수 있습니다.
마치 파워포인트에서 도형을 만들듯이 직관적으로 데이터를 시각화할 수 있습니다.
다음 코드를 살펴봅시다.
// Lens에서 사용할 수 있는 Elasticsearch 집계 예시
// (Lens UI가 내부적으로 이런 쿼리를 생성합니다)
// 시간별 에러 카운트
GET logs-*/_search
{
"size": 0,
"aggs": {
"errors_over_time": {
"date_histogram": {
"field": "@timestamp",
"calendar_interval": "hour"
},
"aggs": {
"error_count": {
"filter": { "term": { "level": "error" } }
}
}
}
}
}
// 서비스별 에러 비율
GET logs-*/_search
{
"size": 0,
"aggs": {
"by_service": {
"terms": { "field": "service.keyword" }
}
}
}
김개발 씨가 왼쪽 메뉴에서 Visualize Library를 클릭하고 Create visualization을 선택했습니다. 여러 옵션 중에서 Lens를 선택하자 새로운 화면이 열렸습니다.
왼쪽에는 필드 목록이, 가운데는 빈 캔버스가, 오른쪽에는 설정 패널이 있었습니다. Lens는 마치 레고 블록을 조립하는 것과 같습니다.
왼쪽의 필드 블록을 가운데 캔버스에 끌어다 놓으면 자동으로 차트가 만들어집니다. 복잡한 쿼리를 직접 작성할 필요가 없습니다.
박시니어 씨가 시범을 보여주었습니다. "@timestamp 필드를 X축에 끌어다 놓고, level 필드를 Y축 영역에 놓아봐요." 김개발 씨가 따라하자 시간별 로그 건수를 보여주는 막대 차트가 자동으로 생성되었습니다.
차트 타입도 쉽게 바꿀 수 있습니다. 화면 상단에 있는 차트 타입 아이콘들 중 하나를 클릭하면 됩니다.
막대 차트, 선 그래프, 영역 차트, 파이 차트, 도넛 차트, 테이블 등 다양한 옵션이 있습니다. 핵심은 집계 함수를 이해하는 것입니다.
Y축에 필드를 놓을 때 어떤 계산을 할지 선택해야 합니다. Count는 문서 개수를 세고, Sum은 숫자 필드의 합계를, Average는 평균을 계산합니다.
Unique count는 중복을 제외한 고유 값의 개수를 셉니다. 필터도 적용할 수 있습니다.
오른쪽 패널에서 필터를 추가하면 특정 조건에 맞는 데이터만 시각화됩니다. 예를 들어 level: "error" 필터를 추가하면 에러 로그만 대상으로 차트가 그려집니다.
Break down by 기능은 데이터를 그룹별로 나누어 보여줍니다. 예를 들어 시간별 로그 건수 차트에서 서비스별로 색상을 다르게 표시하고 싶다면, service 필드를 Break down by에 추가하면 됩니다.
스택 차트나 다중 선 그래프가 자동으로 만들어집니다. 레퍼런스 라인도 추가할 수 있습니다.
평균값이나 특정 임계값을 수평선으로 표시하면 데이터가 기준을 넘었는지 한눈에 파악할 수 있습니다. 알림 기준선을 시각화할 때 유용합니다.
김개발 씨는 30분 만에 세 개의 차트를 만들었습니다. 시간별 에러 추이, 서비스별 에러 비율, 상위 에러 메시지 테이블.
엑셀로 만들었다면 반나절은 걸렸을 작업이었습니다. 완성된 시각화는 Save 버튼으로 저장합니다.
저장된 시각화는 나중에 대시보드에 추가하거나 다른 사람과 공유할 수 있습니다. 이름을 명확하게 지어두면 나중에 찾기 쉽습니다.
실전 팁
💡 - 필드를 캔버스에 놓으면 Lens가 자동으로 적절한 차트 타입을 추천해줍니다
- 복잡한 계산이 필요하면 Formula 기능을 사용해보세요
- 시각화 제목과 설명을 명확하게 작성해두면 다른 팀원이 이해하기 쉽습니다
5. 대시보드 구성
김개발 씨가 만든 차트들을 팀장님에게 보여드렸습니다. "좋은데, 이걸 한 화면에서 볼 수 있으면 좋겠어요.
매번 차트를 하나씩 열어보기 번거롭잖아요." 박시니어 씨가 말했습니다. "대시보드를 만들면 돼요.
여러 시각화를 한 화면에 모아놓을 수 있어요."
Dashboard는 여러 시각화를 한 화면에 배치하는 기능입니다. 마치 자동차 계기판처럼 중요한 지표들을 한눈에 볼 수 있게 해줍니다.
실시간으로 업데이트되며, 필터를 공유하고, 링크로 공유할 수도 있습니다.
다음 코드를 살펴봅시다.
// 대시보드에서 사용할 수 있는 컨트롤 설정 예시
// Kibana Dev Tools에서 대시보드 내보내기
GET kbn:/api/kibana/dashboards/export?dashboard=<dashboard-id>
// 대시보드 가져오기
POST kbn:/api/kibana/dashboards/import
{
"objects": [
{
"type": "dashboard",
"attributes": {
"title": "Error Monitoring Dashboard",
"panelsJSON": "[...]",
"optionsJSON": "{\"hidePanelTitles\":false}",
"timeRestore": true,
"timeTo": "now",
"timeFrom": "now-24h",
"refreshInterval": {
"pause": false,
"value": 30000
}
}
}
]
}
김개발 씨가 왼쪽 메뉴에서 Dashboard를 클릭하고 Create dashboard를 선택했습니다. 빈 화면이 나타났습니다.
여기에 앞서 만든 시각화들을 하나씩 추가할 차례입니다. 대시보드는 마치 신문의 1면과 같습니다.
가장 중요한 뉴스들이 한 페이지에 배치되어 있듯이, 대시보드에는 가장 중요한 지표들이 한 화면에 모여 있습니다. 독자가 신문 1면만 봐도 오늘의 주요 소식을 알 수 있듯이, 대시보드만 봐도 시스템의 현재 상태를 파악할 수 있어야 합니다.
상단의 Add panel 버튼을 클릭하면 여러 옵션이 나타납니다. Add from library를 선택하면 앞서 저장해둔 시각화들이 목록으로 나타납니다.
원하는 시각화를 클릭하면 대시보드에 추가됩니다. 패널의 크기와 위치는 자유롭게 조절할 수 있습니다.
패널 모서리를 드래그해서 크기를 바꾸고, 패널 상단을 드래그해서 위치를 옮깁니다. 중요한 차트는 크게, 보조 정보는 작게 배치하는 것이 좋습니다.
시간 필터 공유가 대시보드의 강력한 기능입니다. 대시보드 상단에서 시간 범위를 변경하면 모든 패널에 동시에 적용됩니다.
"지난 1시간" 대신 "지난 24시간"으로 바꾸면 모든 차트가 24시간 데이터로 업데이트됩니다. 필터 패널도 추가할 수 있습니다.
대시보드에 드롭다운 필터를 추가하면 사용자가 특정 서비스나 환경을 선택해서 볼 수 있습니다. 예를 들어 "production", "staging", "development" 환경을 선택할 수 있는 필터를 추가하면 환경별 현황을 쉽게 비교할 수 있습니다.
자동 새로고침 설정도 중요합니다. 화면 우측 상단의 새로고침 간격을 설정하면 대시보드가 주기적으로 최신 데이터를 가져옵니다.
모니터링 용도라면 30초나 1분 간격으로 설정하는 것이 일반적입니다. 김개발 씨는 대시보드에 네 개의 패널을 배치했습니다.
상단에는 핵심 숫자들을 보여주는 메트릭 패널을, 중앙에는 시간별 추이 차트를, 하단에는 서비스별 비율과 상위 에러 목록을 배치했습니다. 대시보드를 저장하면 고유한 URL이 생깁니다.
이 URL을 팀원들에게 공유하면 누구나 같은 대시보드를 볼 수 있습니다. TV 모니터에 띄워두면 팀 전체가 실시간으로 시스템 상태를 확인할 수 있습니다.
팀장님이 대시보드를 보고 만족스러워했습니다. "이제 매일 아침 이것만 확인하면 되겠네요.
다른 팀에도 공유해줘요." 김개발 씨는 뿌듯했습니다.
실전 팁
💡 - 대시보드 상단에 핵심 지표를, 하단에 상세 정보를 배치하면 읽기 쉽습니다
- 자동 새로고침을 설정할 때는 서버 부하를 고려하세요
- 대시보드를 Full Screen 모드로 전환하면 모니터링 화면으로 활용하기 좋습니다
6. Canvas 커스텀 리포트
김개발 씨의 대시보드가 회사에서 인기를 끌었습니다. 어느 날 마케팅팀에서 요청이 왔습니다.
"대시보드 좋은데, 우리 회사 로고랑 브랜드 색상으로 꾸며서 경영진 보고용으로 만들 수 있을까요?" 박시니어 씨가 웃으며 말했습니다. "Canvas가 딱이네요."
Canvas는 Kibana의 프레젠테이션 도구입니다. 마치 파워포인트처럼 슬라이드를 만들 수 있지만, 데이터는 Elasticsearch에서 실시간으로 가져옵니다.
브랜드 가이드에 맞는 커스텀 리포트, 경영진 보고서, 인포그래픽을 만들 수 있습니다.
다음 코드를 살펴봅시다.
// Canvas에서 사용하는 표현식 언어 예시
// 데이터 가져오기
essql query="SELECT service, COUNT(*) as count
FROM \"logs-*\"
WHERE level='error'
GROUP BY service"
// 메트릭 표시
filters
| essql query="SELECT COUNT(*) as total FROM \"logs-*\"
WHERE level='error' AND @timestamp > NOW() - INTERVAL 1 HOUR"
| math "total"
| metric "Errors (1h)"
metricFont={font size=48 family="Arial" color="#ff0000"
align="center"}
// 도넛 차트
filters
| essql query="SELECT service, COUNT(*) as count
FROM \"logs-*\" GROUP BY service"
| pointseries color="service" size="count"
| pie hole=50 labels=true legend="ne"
김개발 씨가 왼쪽 메뉴에서 Canvas를 클릭했습니다. 대시보드와는 완전히 다른 화면이 나타났습니다.
빈 슬라이드 위에 자유롭게 요소를 배치할 수 있는 캔버스였습니다. 마치 디자인 툴을 보는 것 같았습니다.
Canvas와 Dashboard의 차이는 무엇일까요? Dashboard가 기능성에 집중한다면, Canvas는 표현력에 집중합니다.
Dashboard에서는 패널 크기와 위치만 조절할 수 있지만, Canvas에서는 색상, 폰트, 배경, 이미지 등 모든 것을 자유롭게 디자인할 수 있습니다. Canvas는 마치 디자이너가 사용하는 일러스트레이터와 개발자가 사용하는 데이터 도구를 합쳐놓은 것과 같습니다.
예쁜 디자인과 실시간 데이터를 동시에 얻을 수 있습니다. 기본 사용법을 살펴봅시다.
왼쪽 사이드바에서 Add element를 클릭하면 다양한 요소들이 나타납니다. 차트, 이미지, 도형, 텍스트 등을 추가할 수 있습니다.
각 요소는 캔버스 위 어디든 자유롭게 배치됩니다. Canvas의 핵심은 **표현식(Expression)**입니다.
각 요소가 어떤 데이터를 보여줄지 표현식으로 정의합니다. 위 코드 예시처럼 SQL과 비슷한 문법으로 데이터를 가져오고, 그 결과를 시각화합니다.
처음에는 표현식이 어려워 보일 수 있습니다. 하지만 걱정하지 마세요.
Canvas는 GUI 편집기도 제공합니다. 요소를 클릭하고 오른쪽 패널에서 설정을 바꾸면 자동으로 표현식이 생성됩니다.
익숙해지면 표현식을 직접 수정해서 더 복잡한 작업을 할 수 있습니다. CSS 스타일링도 가능합니다.
회사 브랜드 색상을 정확히 적용하고 싶다면 CSS 코드를 직접 입력할 수 있습니다. 로고 이미지를 업로드하고, 배경색을 맞추고, 폰트를 지정할 수 있습니다.
여러 페이지를 만들 수도 있습니다. 하단의 + 버튼을 클릭하면 새 페이지가 추가됩니다.
파워포인트의 슬라이드처럼 여러 페이지를 만들어서 발표 자료나 리포트로 활용할 수 있습니다. 자동 새로고침 기능은 Canvas에서도 작동합니다.
회의실 TV에 Canvas 리포트를 띄워두면 실시간으로 데이터가 업데이트됩니다. 경영진이 지나가다 현황을 확인할 수 있는 정보 방송 화면을 만들 수 있습니다.
김개발 씨는 회사 로고를 좌측 상단에 배치하고, 브랜드 색상인 파란색을 메인 컬러로 사용했습니다. 큼직한 숫자로 핵심 지표를 보여주고, 하단에 트렌드 차트를 배치했습니다.
마케팅팀이 원하던 바로 그 모습이었습니다. 완성된 Canvas는 PDF로 내보낼 수도 있습니다.
Share 메뉴에서 PDF 옵션을 선택하면 현재 보이는 화면 그대로 PDF 파일이 생성됩니다. 이메일로 보고서를 보내거나 인쇄해서 배포할 때 유용합니다.
실전 팁
💡 - 템플릿을 활용하면 빠르게 시작할 수 있습니다. Canvas에 기본 제공되는 템플릿들을 참고하세요
- 복잡한 표현식은 작은 단위로 나눠서 테스트해보세요
- 회사 브랜드 가이드에 맞는 색상 팔레트를 미리 정해두면 일관된 디자인을 유지할 수 있습니다
이상으로 학습을 마칩니다. 위 내용을 직접 코드로 작성해보면서 익혀보세요!
댓글 (0)
함께 보면 좋은 카드 뉴스
서비스 메시 완벽 가이드
마이크로서비스 간 통신을 안전하고 효율적으로 관리하는 서비스 메시의 핵심 개념부터 실전 도입까지, 초급 개발자를 위한 완벽한 입문서입니다. Istio와 Linkerd 비교, 사이드카 패턴, 실무 적용 노하우를 담았습니다.
EFK 스택 로깅 완벽 가이드
마이크로서비스 환경에서 로그를 효과적으로 수집하고 분석하는 EFK 스택(Elasticsearch, Fluentd, Kibana)의 핵심 개념과 실전 활용법을 초급 개발자도 쉽게 이해할 수 있도록 정리한 가이드입니다.
Grafana 대시보드 완벽 가이드
실시간 모니터링의 핵심, Grafana 대시보드를 처음부터 끝까지 배워봅니다. Prometheus 연동부터 알람 설정까지, 초급 개발자도 쉽게 따라할 수 있는 실전 가이드입니다.
분산 추적 완벽 가이드
마이크로서비스 환경에서 요청의 전체 흐름을 추적하는 분산 추적 시스템의 핵심 개념을 배웁니다. Trace, Span, Trace ID 전파, 샘플링 전략까지 실무에 필요한 모든 것을 다룹니다.
CloudFront CDN 완벽 가이드
AWS CloudFront를 활용한 콘텐츠 배포 최적화 방법을 실무 관점에서 다룹니다. 배포 생성부터 캐시 설정, HTTPS 적용까지 단계별로 알아봅니다.