ALL 58

로그스태시(LogStash)

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 6장을 정리하여 쓴 글입니다. 로그스태시란? 일단 로그는 성능, 오류, 도작 과정 등의 중요한 정보를 담고 있다. 이러한 로그는 일반적으로 시스템 동작의 모든 행위나 이벤트를 기록해야 한다. 그리고 이 로그는 빅데이터에서는 로그 정보를 데이터 분석에 활용하기도 한다. 많은 어플리케이션에 대한 로그를 하나로 모은다고 했을때 로그는 반정형데이터라서 어플리케이션마다 설정하지 않으면 다르게 찍히게 된다. 로그 스태시는 1) 이러한 로그들을 수집, 정제하여 한눈에 보기 좋도록 만들어준다. 추가로 장애 대응 로직이나 성능 저하 요인을 쉽게 파악할 수 있는 모니터링 API, 간단한 조정으로 성능을 튜닝할 수 있는 파라미터들도 제공한다. 2) 로그스태시는 비츠, 로..

살려줘!! HyperLogLog

엘라스틱서치 스터디를 하던 중 HyperLogLog에 대한 이야기가 나왔다. HyperLogLog에 대해 이야기하기 전에 일단 왜 HyperLogLog가 나왔는지에 대해서부터 알아야 한다. 엘라스틱서치에서는 집계 쿼리를 이용하여 통계 데이터를 만든다. 이러한 통계 데이터를 만드는 종류 중에 필드의 유니크한 수를 만들기 위한 데이터를 만들 수가 있다. 그런데, 내가 써놓고서도 필드의 유니크한 수가 뭔지 모르겠다. 필드의 유니크한 수....??? 필드의 유니크한 수.. 필드의 유니크한 수는 바로 중복된 값을 제외한 데이터의 수를 말한다. 예를 들어, 필드에 월/화/수/목/금/월/화/수/목/금/토/일 데이터가 있다면 여기서 중복된 값을 제외하면 월/화/수/목/금/토/일이 나오게 된다. 원래 12개의 필드가 중..

엘라스틱서치(elasticsearch) 집계

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 5장을 정리하여 쓴 글입니다. 엘라스틱서치도 데이터를 날짜별로 묶거나 특정 카테고리별로 묶어 그룹별 통계를 내는 집계 개념(aggregation)이 있다. 집계? 데이터를 그룹핑하고 통계값을 얻는 기능이다. 집계 기능은 강력한 검색 성능과 맞물려 엘라스틱서치를 고성능 집계 엔진으로 사용할 수 있도록 한다. 대표적인 예로 키바나가 있다. 집계의 종류는 메트릭 집계, 버킷 집계, 파이프라인 집계가 있다. 집계의 Request와 Response Request 집계의 Requset는 aggs로 시작을 한다. aggs는 집계 요청을 하겠다는 의미, my_aggs는 사용자가 지정하는 집계 이름이다. agg_type은 집계 타입을 의미한다. 집계 타입에 대해서는 ..

엘라스틱서치(elasticSearch) 검색 - 2부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 4장을 정리하여 쓴 글입니다. 1부에 이어서 2부에서는 전문 쿼리, 매치 쿼리, 용어 쿼리, 멀티 매치 쿼리, 범위 쿼리, 논리 쿼리, 패턴 쿼리에 대해서 알아보려고 한다. 엘라스틱서치는 검색 쿼리로써 리프 쿼리, 복합 쿼리로 나눌 수 있다. 리프 쿼리 ? 특정 필드에서 용어를 찾는 쿼리로 match, term, range 등이 있다. 복합 쿼리 ? bool 쿼리 등이 있다. 전문 쿼리 (Full Text Query)와 용어 수준 쿼리 (Term level Query)를 자세히 보고 복합 쿼리인 논리 쿼리로 개념을 확장하려고 한다. 전문 쿼리와 용어 수준 쿼리 전문 쿼리 ? 전문 검색을 하기 위해 사용되며, 전문 검색을 할 필드는 인덱스 매핑 시 텍스..

엘라스틱서치(elasticSearch) 검색 - 1부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 4장을 정리하여 쓴 글입니다. 엘라스틱서치는 전문 검색 기능을 시작으로 꾸준히 성장했으며, 다양한 검색 쿼리를 지원하고 있다. 1부에서는 쿼리 컨텍스트와 필터 컨텍스트의 차이, 쿼리 스트링과 쿼리 DSL의 차이점 그리고 유사 스코어를 계산법에 대해서 알아본 후 2부에서 전문 쿼리, 매치 쿼리, 용어 쿼리, 멀티 매치 쿼리, 범위 쿼리, 논리 쿼리, 패턴 쿼리에 대해서 알아보려고 한다. 쿼리 컨텍스트와 필터 컨텍스트 쿼리 컨텍스트 ? 질의에 대한 유사도를 계산해 이를 기준으로 정확한 결과를 먼저 보여줌. 필터 컨텍스트 ? 유사도를 계산하지 않고 일치 여부에 따른 결과만을 반환한다. 질의에 대한 유사도의 결과 반환에 따라 다르다고 나와있다. 쿼리 컨텍스트..

OOP와 FP의 조화 : 자바 스칼라 비교(Scala란?)

* 해당 글은 모던 자바 인 액션 Chapter 20을 요약한 글입니다. 해당 챕터에서는 함수형 프로그래밍을 더욱 자극하기 위하여 자바와 스칼라를 비교하여 함수형 프로그래밍에 대한 호기심을 만족시켜주기 위하여 작성되었다. 하지만 나는 스칼라에 대해 정리하려고 한다. Scala란? 함수형 프로그래밍 언어로 자바의 복잡함을 단순화 시키기 위하여 만들어진 언어이다. 자바와 같이 JVM 위에서 돌아간다. Scala의 자료구조는 리스트, 집합, 맵, 스트림, 튜플, 옵션 등을 제공한다. Scala는 Java interface 대신에 트레이트를 사용한다. 스칼라 구조 Class Hello { val Hello = "Thanks for reading our book") def sayThankyou() { printl..

Scala 2022.02.26

엘라스틱서치(elasticSearch) 기본 - 2부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 3장을 정리하여 쓴 글입니다. 벌크 데이터 POST _bulk {"index":{"_index":"test", "_id":"1"}} {"field":"value one"} {"index":{"_index":"test", "_id":"2"}} {"field":"value two"} {"delete":{"_index":"test", "_id":"2"}} {"create":{"_index":"test", "_id":"3"}} {"field":"value three"} {"update":{"_index":"test", "_id":"1"}} {"doc":{"field":"value two"}} 여러개의 Document를 각각 API를 불러서 요청하는 것보다 B..

엘라스틱서치(elasticSearch) 기본 - 1부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 3장을 정리하여 쓴 글입니다. ElasticSearch Request / Response ElasitcSearch의 Request와 Response는 모두 REST API 형태로 제공한다. REST API란? Representational State Transfer 약자로써 웹상의 모든 리소스에 URL를 부여하고 활용하는 아키텍처이다. 시스템 상태 확인 - cat (compact and aligned text) cat를 통해 제공하는 기능들은 시스템의 상태를 확인하는 용도이다. cat API를 통해서 Node / Shard / Templat 등의 상태 정보를 확인 할 수 있다. 현재 클러스터 상태를 빠르게 확인할 수 있다. 즉, 시스템 운영할 때 클러..

엘라스틱스택(ELK Stack) 이란?

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 1 장을 정리하여 쓴 글입니다. 엘라스틱 스택은 무엇일까? 1. 엘라스틱 스택은 총 4개 엘라스틱 서치, 로그 스태시, 비츠, 키바나로 이루어져있다. 2. 빅데이터 파이프라인을 구성하기 위한 데이터 수집, 가공, 저장, 분석, 시각화에 필요한 모든 기능을 제공한다. 추가적인 정보 : 처음부터 엘라스틱 스택이 만들어 진 것은 아니다. 엘라스틱 스택은 엘라스틱 서치 > 로그 스태시, 키바나 > 비츠 순으로 오픈소스 프로젝트가 진행되며 만들어졌다. 즉, 처음에 만들어진 엘라스틱 서치를 이용한 오픈소스 검색 엔진에 머무르는게 아닌, 플랫폼으로 발전하는 길을 택했다고 볼 수 있다. 엘라스틱서치 검색 엔진이다. 용어 단위로 분해되고 역인덱스 사전을 구춘한다. 연..

Effective Kotlin 3기 마지막 회고

해당 글은 NextStep 이펙티브 코틀린 with TDD, Refactoring, Clean Code 3기를 진행하며 쓴 회고글입니다. 미션 수행률 100퍼센트 12월 8일 마지막 머지로 나의 이펙티브 코틀린의 모든 미션을 완주했다. 즉, 마지막 머지를 통하여 모든 미션을 다 통과한 것이다. 야호! 다 통과 했다! 이때의 감정은 기쁨 반, 아쉬움 반? 이였다. 기쁜 감정은 '과정이 끝났다!!'는 감정이었고, 아쉬운 감정은 '얼레..? 더 안 봐주시는 건가!!??? 제 코드 좀 더 ... 갈궈 주세요..'라는 감정이었다. 과정 종료 2021년 12월 7일 제이슨의 강의를 마지막으로 수업이 끝났으며, 2021년 12월 13일 날 리뷰어님들이 집중적으로 코드 리뷰를 해주는 시간이 끝이 났다. 이 이후에 코드..