전체 글

전체 글

    [Elastic Stack] Grok Pattern에 대해

    [Elastic Stack] Grok Pattern에 대해

    파이프라인데이터를 입력받아 실시간으로 변경하고 이를 다른 시스템에 전달하는 역할입력, 필터, 출력의 3가지 옵션으로 이루어져 있으며 필터에 다양한 옵션이 있는데 그 중 Grok pattern을 사용하는 법에 대해 정리해보려고 한다. 입력 플러그인은 file, syslog, kafka, jdbc 등의 플러그인으로 데이터를 받아온다.필터 플러그인은 grok, dissect, mutate, date 등의 플러그인으로 데이터를 필터링 한다. Grok Pattern - 예악어 활용Grok은 정규 표현식을 이용해 문자열을 파싱할 수 있다. 자주 사용하는 정규 표현식들을 패턴화해뒀으며 패턴을 이용해%{패턴명:변수명} 형태로 데이터에서 특정 필드를 파싱할 수 있다.패턴명설명NUMBER십진수를 인식한다. 부호와 소수점을..

    [Grafana] Customizing Grafana Alerting Notification Templates

    Customize 하지않은 상태로 Test 알림을 보내게되면 다음과 같은 알림을 얻을 수 있는데 필요한 정보만 Alerting하게 하는것이 Customize 하는 목적입니다. **Firing** Value: [no value] Labels: - alertname = TestAlert - instance = Grafana Annotations: - summary = Notification test Silence: http://----- 1. Alerts & IRM -> Contact points 로 이동 2.Notification Templates에서 + Add notification template 버튼을 눌러 새로운 템플릿을 만듭니다. 기본적으로 Nofification Templates은 Go 언어의 ..

    Coding Test(정렬 알고리즘)

    Coding Test(정렬 알고리즘)

    선택정렬 - 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾼다. - 한번씩 순회를 하고 가장 큰 수를 찾은다음 바꿈 - 시간 복잡도 : O(N*2) - 공간 복잡도 : O(N) int[] arr = {7, 5, 2, 4, 6, 1, 3, 9, 8}; for (int i = 0; i arr[j]) { min = j; } } int temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } 삽입정렬 - 처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입한다. - 현재위치에서 아래쪽을 순회하며 크기가 작을..

    애플리케이션의 종류

    애플리케이션의 종류

    반응형 웹 화면 크기에 따라 홈페이지의 크기가 변화하는 웹사이트 적응형 웹 정해진 화면 크키가 기기에 맞게 홈페이지를 따로 제작하는 웹사이트 네이티브 앱 - 앱 각 운영체제에 맞는 앱을 개발 안드로이드 - Java, Kotlin IOS - Swift, Objective-C 크로스 플랫폼 - 앱 같은 소스코드로 안드로이드, IOS 모든 환경에서 작동할 수 있는 앱 Flutter, React native 웹 앱 - 웹사이트 스마트폰의 기종이나 기기에 상관없이 모든 단말기에서 같은 콘텐츠를 볼 수 있게함 모바일 앱과 비슷한 UI/UX를 지원하는 웹사이트 하이브리드 앱 - 웹사이트 네이티브 or 크로스 플랫폼 + 웹 뷰 PWA(Progressive Web Apps) - 웹사이트 웹 앱이지만 스마트폰과 PC의 바..

    불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해

    불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해

    우리는 왜? 불변성을 지키면서 코딩을 해야할까? 내가 알고있는 불변성이라는 개념은 'final' 불변객체는 재할당은 가능하지만, 한번 할당하면 내부 데이터를 변경할 수 없는 객체 class ImmutablePerson { private final int age; private final int name; public ImmutablePerson(int age, int name) { this.age = age; this.name = name; } } private final로 변수를 선언했기 때문에 외부에서 당연히 접근 불가 final로 했기 때문에 setter도 사용 불가능 그럼 이 불변성을 지키는것의 장단점은 무엇일까? 장점 객체에 대한 신뢰도가 높아진다 => 객체가 한번 생성되어서 그게 변하지 않는다..

    객체 지향 프로그래밍

    클래스 멤버 변수 vs 인스턴스(객체) 멤버 변수 public class Person { //클래스 멤버 변수 static String org = "jiwon"; //인스턴스 멤버 변수 String name; int age; boolean isHungry; void eat() { System.out.println("냠냠"); isHungry = false; } void work() { System.out.println("열심히.."); isHungry = true; } } public class PersonTest { public static void main(String[] args) { //지금 11줄에서 객체를 만드는 과정이 있기 전에 클래스 멤버 변수를 수정한 것임 // Person.org = "..

    땅지원의 포트폴리오

    보호되어 있는 글입니다.

    [Elastic Stack] 검색어 자동완성 구현(Spring Data Elasticsearch)

    [Elastic Stack] 검색어 자동완성 구현(Spring Data Elasticsearch)

    이번엔 평소에 해보고싶었던 ElasticSearch를 이용하여 검색어 자동완성 구현을 해보려고 한다. 웹 개발을 한다면 검색 엔진이 필수인데 이런 기능을 개발한다니 너무 재밌었다 기존에 이런 기능을 구현한 적이 있었는데 SQL의 Like 써가면서 했는데 데이터가 많아지다보니 아무리봐도 이건 아닌거같아서 기능을 찾던 도중 ElasticSearch를 찾았고 SpringBoot로 개발하다보니 Spring Data ElasticSearch가 있다는걸 알아서 바로 적용해봤다. ElasticSearch 설치 일단 로컬이나 ec2에 ElasticSearch를 설치해야한다. 난 ec2를 사용하고 있으니 편리한 Docker를 이용해서 설치했당 docker pull docker.elastic.co/elasticsearch..