🎨 데이터, 예술이 되다: Kibana와 Nori 이야기
오늘은 딱딱한 텍스트 데이터를 살아 숨 쉬는 그림으로 만드는 마법사, Kibana와 만났다. 그리고 그 마법을 더욱 정교하게 만들어주는 한국어 전문가, Nori 분석기를 파헤쳐 보았다.
💡 “데이터는 새로운 석유다. 하지만 정제되지 않으면 쓸모없다.”
Kibana는 원석 같은 데이터를 보석으로 만드는 연마기이고, Nori는 그 보석의 가치를 알아보는 감정사와 같다. 이 둘을 잘 활용해야 비로소 데이터의 진짜 가치를 발견할 수 있겠다고 느꼈다.
🔬 1. Nori 분석기, 한국어 마스터하기
Nori는 단순히 텍스트를 쪼개는 것을 넘어, 한국어의 미묘한 특징까지 분석하는 꼼꼼함이 있다. 사용자 사전과 다양한 필터를 조합하면, 우리가 원하는 대로 한국어를 ‘튜닝’할 수 있다.
| 필터 종류 | 핵심 역할 | 사용 예시 |
|---|---|---|
nori_part_of_speech |
조사, 어미 등 불필요한 품사를 제거 | stoptags로 “JKS”(주격조사) 등을 지정해 노이즈 감소 |
nori_readingform |
한자를 한글로 변환해 검색 일관성을 높임 | “大韓民國” → “대한민국”으로 자동 변환 |
nori_number |
“오만” 같은 한글 숫자를 “50000”으로 정규화함 | 숫자 범위 검색이나 집계 시 필수! |
// 한글 숫자(NR)는 제거하고, 한자는 한글로 변환하는 분석기 설정
PUT nori_custom_analyzer
{
"settings": {
"analysis": {
"analyzer": {
"my_korean_analyzer": {
"tokenizer": "nori_tokenizer",
"filter": [ "my_pos_filter", "nori_readingform" ]
}
},
"filter": {
"my_pos_filter": {
"type": "nori_part_of_speech",
"stoptags": [ "NR" ] // 숫자 품사 제거
}
}
}
}
}
Nori의 필터들을 하나씩 적용해보니, 마치 언어학자가 된 것처럼 단어를 분해하고 조립하는 재미가 있었다. 이제 고전문학 같은 까다로운 한국어 텍스트도 자신 있게 분석할 수 있을 것 같다! 😄
🗺️ 2. Kibana, 데이터로 그림 그리기
Kibana 실습은 정말 시간 가는 줄 몰랐다. 특히 흩어져 있는 데이터를 지도 위에 표현하고, 대쉬보드를 통해 여러 시각화 결과물을 살피는 과정은 정말 흥미로웠다.
KQL, 데이터와 대화하는 언어
Kibana Query Language(KQL)를 사용하면 복잡한 JSON 코드를 몰라도, 직관적인 명령으로 데이터를 필터링할 수 있다.
location.keyword : "불광" and bank : "기업은행"
위와 같이 간단한 쿼리만으로 ‘불광역에 있는 기업은행’ 데이터를 순식간에 찾아낼 수 있었다.
✨ 오늘의 회고
오늘은 Elasticsearch 생태계의 두 핵심 축인 분석(Nori) 과 시각화(Kibana) 를 깊이 있게 경험했다. Nori를 통해 한국어 데이터 처리의 섬세함을 배웠고, Kibana를 통해 데이터가 얼마나 섬세하게 표현 될 수 있는지 깨달았습니다.
이제 데이터를 그저 쌓아두는 것을 넘어, 적극적으로 탐험하고, 질문하고, 시각화하여 숨겨진 인사이트를 찾아내는 ‘데이터 탐험가’가 된 기분이다. 다음에는 실제 금융 데이터를 Kibana 대시보드로 만들어, 소비 패턴을 분석하는 개인 프로젝트를 진행해봐야겠다. 🚀