본문 바로가기

전체 글145

[Elasticsearch] 기본 용어 및 기본 문법 정리 Elasticsearch은 cURL을 이용한 직접적인 REST API 호출과 Kibana의 웹 기반 콘솔을 활용하는 방식이 있습니다. 이 두 방법은 문법이 조금 다르지만, 대부분의 사용자는 Kibana를 선호하기 때문에 이후 포스팅에서는 Kibana를 활용한 예시를 중심으로 설명하고자 합니다. 기본 용어비교 항목RDBS Elasticsearch 데이터 저장 단위테이블인덱스데이터 속성 단위칼럼필드데이터 단위레코드, 로우도큐먼트데이터 구조 정의스키마매핑위에 표를 보면 알 수 있듯이 RDBS에서 인덱스랑 Elasticsearch에서 인덱스는 다른 개념입니다. 외부 클라이언트 문법(cURL, Postman) Kibana에서 Elasticsearch 문법Elasticsearch와 상호작용하기 위해 cURL이.. 2025. 6. 18.
Elasticsearch의 오해 Elasticsearch에 대해 대표적인 오해하는 부분의 대해서 아래와 같이 정리했습니다. 1. Elasticsearch는 RDBMS인가요? Elasticsearch는 관계형 데이터베이스(RDBMS)가 아닙니다. 구조화된 데이터를 저장하고 검색할 수는 있지만, 외래 키(foreign key), 조인(join), 참조 무결성, 트랜잭션 처리 등 RDBMS의 핵심 기능을 지원하지 않기 때문에 RDBMS와는 본질적으로 다릅니다. Elasticsearch는 문서 기반의 분산형 검색 및 분석 엔진입니다.2. Elasticsearch는 설정과 관리가 어렵나요?처음 시작할 때는 생각보다 간단하게 세팅하고 실행할 수 있으며, Docker나 기본 배포판으로 빠르게 테스트 환경을 구성할 수도 있습니다. 하지만 데이터가 .. 2025. 6. 18.
Elastic 스택 정리 Elasticsearch는 자체적으로도 좋은 검색 및 분석 엔진이지만, 다양한 데이터를 Logstash를 통해 추출/가공하고, Beats를 통해 전송하며, Kibana를 활용해 시각화함으로써 Elastic Stack의 핵심 구성 요소들과 유기적으로 결합됩니다. 이로써 데이터의 수집부터 분석, 시각화까지의 전체 파이프라인이 통합되어, 보다 강력한 엔드 투 엔드 파이프 라인을 완성할 수 있습니다. BeatsBeats는 다양한 외부 시스템에서 데이터를 수집하여 Elasticsearch로 전송하는 단일 목적 데이터 전송 도구(데이터 수집기)입니다. Filebeat, Metricbeat, Heartbeat 등 다양한 유형의 Beats를 통해 데이터를 수집할 수 있으며, 각 Beats는 특정한 목적에 맞춰 설.. 2025. 6. 17.
Elasticsearch랑 다른 검색 엔진 비교 검색 엔진들 개요ElasticsearchElasticsearch는 Apache Lucene이라는 오픈 소스 검색 엔진 라이브러리를 기반으로 구축된 분산형 RESTful 검색 및 분석 엔진입니다. Lucene은 Java로 작성된 더그 커팅의 풀텍스트 검색 엔진 라이브러리로, Elasticsearch는 이 Lucene의 기능을 활용하여 대규모 데이터를 실시간으로 저장하고, 검색하며, 다양한 방식으로 분석하는 데 탁월한 성능을 발휘합니다. Apache SolrApache Solr 역시 Apache Lucene 라이브러리 위에 구축된 성숙하고 안정적인 오픈 소스 검색 플랫폼입니다. Solr와 Elasticsearch 모두 뛰어난 풀텍스트 검색 기능을 제공하지만, 데이터 분석에서는 Elasticsearch가 좀 .. 2025. 6. 15.
Elasticsearch 개념 정리 ≣ 목차 Elasticsearch란?Elasticsearch는 오픈 소스 분산형 RESTful 검색 및 분석 엔진으로, 구조화된 데이터(RDBS) 및 비구조화된 데이터(No Sql, 로그 파일)를 거의 실시간으로 저장하고 검색하며 분석하는 데 특화되어 있으며, 확장 가능한 구조와 벡터 데이터베이스 기능까지 갖춘 강력한 도구입니다. 이는 검색 및 분석에만 이용하는게 아니라 로그 분석, 기업 보안 및 위혐 탐지, 모니터링 등 다양한 분야에서도 사용할 수 있습니다. Elasticsearch의 주요 활용 방법1. 데이터 수집 및 분석Elasticsearch는 대규모 데이터, 특히 시스템 및 애플리케이션 로그와 같은 데이터를 실시간으로 수집하고 분석하는 데 강력한 성능을 발휘하도록 설계되었으며, 이러한 데이터 .. 2025. 6. 13.
WSL 설치 시 오류 해결 - wsl/installdistro/service/registerdistro/createvm/hcs/hcs_e_service_not_available WSL 설치 오류Docker와 Elasticsearch 공부를 위해 WSL을 설치하시다가 아래와 같은 오류가 발생했습니다. ㅠㅠwsl/installdistro/service/registerdistro/createvm/hcs/hcs_e_service_not_available 오류 원인Microsoft 홈페이지에서 확인한 결과 시스템 부팅 시 동작하는 특정 프로그램과의 충돌로 인해 WSL 설치에 문제가 발생한 것으로 파악됩니다. 오류 해결1. 시스템 구성 > 서비스 > 모든 Microsoft 서비스 숨기기 and 모두 사용 안함 클릭 2. 시스템 구성 > 시작 프로그램 > 작업 관리자 열기 > 모든 프로그램 상태 사용 안함으로 변경 결과다행히 해당 오류를 성공적으로 해결할 수 있었습니다. 오류 해결을 .. 2025. 6. 13.
[백트래킹] 백트래킹 기본 개념 백트래킹이란?문제 해결을 위해 가능한 모든 경우의 수를 전부 체계적으로 고려하는 알고리즘을 완전 탐색(Brute-force) 또는 상태 공간 탐색이라고 하며, 이때 상태의 변화를 트리 형태로 표현한 구조를 상태 공간 트리라고 합니다.대표적인 방식에는 깊이 우선 탐색( Depth First Search, DFS), 너비 우선 탐색(Breadth First Search, BFS), 최선 우선 탐색(Heuristic Search, 휴리스틱 탐색) 등이 있습니다. 특히 모든 경우의 수를 시도해 보는 문제에서는 DFS를 사용하는 것이 구현상 더 간단하고, 백트래킹과도 잘 어울리기 때문에 많이 활용됩니다. BFS도 모든 경우의 수를 탐색할 수는 있지만, 각 단계에서 큐에 많은 상태를 저장해야 하므로 메모리 사용량이.. 2025. 5. 20.
List.indexOf() 시간 복잡도 문제 시간 복잡도 문제List 계열 자료구조에서 indexOf() 메소드를 사용할 때 시간 복잡도가 O(n)이 발생하는 이유는, List가 기본적으로 요소들을 인덱스에 따라 순차적으로 저장하는 구조이기 때문입니다. 특정 요소를 찾아내기 위해 indexOf()는 내부적으로 리스트의 첫 번째 요소부터 시작하여 마지막 요소까지 순서대로 하나씩 비교하는 선형 탐색(Linear Search) 방식을 사용하게 되며, 이 과정에서 최악의 경우 리스트의 모든 요소 개수(n)만큼 비교 연산을 수행해야 하므로 데이터의 크기가 커질수록 검색 시간이 비례하여 늘어나 시간 복잡도가 O(n)이 됩니다. 리스트의 크기가 커져서 시간 복잡도가 증가하면 어떻게 하면 될까요?? 1. HashMap을 활용하여 데이터와 인덱스 매핑값을 Key로.. 2025. 5. 9.
[Greedy] 그리디 알고리즘 - 크루스칼 알고리즘 ≣ 목차 크루스칼 알고리즘그래프에서 가장 적은 비용으로 모든 노드를 연결하면서 전체 간선 가중치의 합이 최소가 되는 알고리즘입니다. 다시 말해 최소 신장 트리(MST)를 만들기 위한 대표적인 알고리즘이라고 할 수 있습니다. 예를 들어, 여러 개의 도시가 있을 때 각 도시를 도로를 이용해 연결하고자 할 때 비용을 최소한으로 하고자 할 때 실제로 적용되는 알고리즘입니다. 추가적으로 전체 노드를 연결할 때 간선의 갯수는 전체 노드 갯수 -1이 간선의 갯수가 됩니다. 용어 정리노드 = 정점 = 목표: 그래프에서 동그라미 부분간선 = 거리 = 비용: 그래프에서 선에 해당하는 부분가중치: 각 간선이 가지는 값으로, 일반적으로 두 노드 간의 거리, 비용, 또는 시간을 의미합니다. 위에 내용을 토대로 아래 그래프를 살.. 2025. 4. 24.
[Greedy] 그리디 알고리즘 정리 그리디 알고리즘이란?그리디 알고리즘은 문제를 해결하는 데 있어 현재 시점에서 가장 최적의 선택을 하는 방식으로, 미래의 상황이나 결과를 고려하지 않는다고 해서 탐욕적인 접근법이라고 합니다. 알고리즘의 대표적인 문제 중 하나는 동전 거스름돈 문제입니다. 이 문제는 주어진 금액을 최소한의 동전으로 거슬러 주는 문제로, 동전의 단위가 정해져 있을 때 가장 큰 단위의 동전부터 선택하는 방식으로 해결할 수 있습니다. 예를 들어, 500원, 100원, 50원, 10원 동전이 있을 때, 760원을 거슬러 줄 경우 500원 1개, 100원 2개, 50원 1개, 10원 1개를 선택하여 총 4개의 동전으로 거슬러 줄 수 있습니다. 그리디 알고리즘은 현재 시점에서 최적의 선택을 하는 방식이지만, 이러한 선택이 항상 전체.. 2025. 4. 23.