반응형 전체 글44 OpenSearch 데이터 인덱싱 과정과 translog 이번에 새로 맡게 된 프로젝트를 진행하면서 로그 저장소로 OpenSearch를 사용하게 되었다. 이를 계기로 OpenSearch의 인덱싱 구조와 동작 방식을 공부했고, 그 과정에서 정리한 내용을 공유하고자 한다.인덱싱 성능 이슈에서 시작된 이야기사실 미리 공부했어야 했는데, 계기는 조금 급했다. 미팅에서 OpenSearch 성능 최적화를 위해 "translog fsync 주기를 조정해야 한다"는 이야기가 나왔을 때, 솔직히 무슨 말인지 잘 따라가지 못했다. 내가 맡은 프로젝트 운영에 대한 이야기였는데, 못알아 듣는게 조금 창피하기도 했고 해서 제대로 정리해보자는 마음으로 공부를 시작했다.참고로 OpenSearch는 Elasticsearch와 동일하게 Apache Lucene 기반으로 동작한다. 따라서 기.. 2025. 9. 7. K8S 오퍼레이터 패턴 오퍼레이터 패턴이 필요한 이유쿠버네티스는 배포/스케일링/헬스체크 같은 범용 자동화는 잘 지원하지만, 특정 애플리케이션 도메인에 특화된 로직은 제공하지 않는다.예를 들어, OpenSearch 인덱스를 특정 규칙에 따라 생성하고 RBAC까지 세팅해야 한다면? 단순한 Deployment/ConfigMap 수준의 조합으로는 부족하다.즉, 이러한 부족한 도메인 요구사항을 충족할 때 오퍼레이터 패턴을 도입할 수 있다.오퍼레이터는 사용자가 정의한 리소스(Custom Resource, CR) 와 이를 지속적으로 관리하는 컨트롤러(Controller) 를 결합하여, 애플리케이션을 쿠버네티스 네이티브 방식으로 관리할 수 있도록 해준다.Desired State vs. Actual State쿠버네티스의 핵심 철학은 "원하는 .. 2025. 9. 2. 7장 분석기 모듈 7.1 개요7.1.1 구조화되지 않은 데이터 쿼리검색 시 철자 오류, 동의어, 약어 등을 인식할 수 있도록 분석기를 조정할 수 있다.7.1.2 분석기가 구원해주다분서기가 인덱싱 프로세스 중 데이터를 분석하고 요구 사항에 따라 데이터를 처리해 다양한 검색 쿼리 변형을 대응해준다.7.2 분석기 모듈분석기는 토큰화와 정규화라는 두 가지 기능을 수행하는 소프트웨어 모듈7.2.1 토큰화토큰화는 특정 규칙에 따라 문장을 개별 단어로 분할하는 프로세스이며, 이는 토크나이저라는 구성 요소에 의해 수행된다.7.2.2 정규화토큰(단어)은 어간 추출, 동의어, 불용어를 사용해 가공, 변환, 수정 및 강화된다.7.2.3 분석기 구조문자 필터, 토크나이저, 토큰 필터 등 세 가지 소프트웨어 구성 요소에 의해 토큰화와 정규화가 .. 2025. 8. 3. 6장 인덱싱작업 6.1 인덱싱 작업인덱스는 샤드로 백업된 데이터의 논리적 모음이다6.2 인덱스 생성암묵적 생성: 도큐먼트를 처음으로 인덱싱 할 때, 인덱스가 없으면, 일래스틱 서치는 암묵적으로 인덱스를 생성한다.명시적 생성: 인덱스 생성을 제어해 필요에 따라 인덱스를 사용자 정의한다.6.2.1 암묵적 인덱스 생성도큐먼트를 처음으로 인덱싱 할 때, 인덱스가 없으면, 일래스틱 서치는 암묵적으로 인덱스를 생성한다.이 방식에서 기본 샤드와 복제본 샤드 수를 1로 설정하는 등의 기본 설정이 사용된다.GET 를 호출하면 인덱스 세부 정보(aliases, mappings, settings)를 조회할 수 있다.인덱스 기능에 대한 자동 생성 비활성화아래 설정으로 인덱스 자동 생성을 차단할 수 있다.persistent 속성은 설정이 영.. 2025. 7. 8. 5장 도큐먼트 작업 5.1 도큐먼트 인덱싱도큐먼트를 인덱스에 유지하는 행위로, 일래스틱 서치에 저장하거나 유지하는 것을 의미한다.5.1.1 도큐먼트 API식별자를 이용한 도큐먼트 인덱싱(PUT)도큐먼트에 가 있으면 HTTP의 PUT 작업과 함께 단일 도큐먼트 인덱스(_doc) API 를 사용하여 인덱싱한다.PUT movies/_doc/1{ "title":"The Godfather", "synopsis":"The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son"}도큐먼트를 수정하고 다시 인덱싱하면 '_version' 필드가 업데이트 된다.식별자 없이 도큐먼트 인덱싱(POST.. 2025. 6. 8. 8장 스프링이란 무엇인가 8.1 스프링 정의자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크8.2 스프링 목적8.2.1 엔터프라이즈 개발 복잡함복잡함의 근본적 이유기술적 제약조건과 요구사항이 늘어간다.보안, 안정성, 확장성 면에서 뛰어난 성능과 서비스 요구가 늘어남엔터프라이즈 애플리케이션이 구현해야할 핵심기능인 비즈니스 로직의 복잡함이 증가한다.이전에는 복잡한 계산 혹은 빠른 분석 작업이 필요한 한정적 영역에서만 IT 시스템을 사용함.현재는 대부분의 기업의 핵심 업무를 엔터프라이즈 시스템을 이용해 처리함복잡함을 가중시키는 원인비즈니스 로직의 복잡함과 기술의 복잡함으로 인하여 이해하기 힘든 방식으로 얽혀있다.8.2.2 복잡함을 해결하려는 도전근본적인 복잡함근본적 복잡함 원인은 제거 대상이 아니다.기술적.. 2025. 6. 7. 이전 1 2 3 4 ··· 8 다음 반응형