Engineering WIKI/Book
-
기초부터 다지는 엘라스틱서치 운영 (3 ~ 4장) / 모니터링 및 기본개념Engineering WIKI/Book 2023. 9. 29. 06:35
기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작 1장. ElasticSearch 훑어보기 / 2장.ElasticSearch 기본 동작 1.1 ElasticSearch란 ElasticSearch는 루씬(Lucene) 기반의 오픈 소스 검색 엔진이다. JSON 기반의 문서를 저장하고 검색할 수 있으며 문서들의 데이터를 wonos.tistory.com 3장. ElasticSearch 모니터링 & 4장. ElasticSearch 기본 개념 3.1 Head를 이용해서 모니터링 하기 Head는 클러스터의 상태를 한눈에 살펴볼 수 있는 유용한 모니터링 도구 중 하나이다. 샤드 배치 정보를 시각적으로 확인할 수 있다는 것이다. Head를 통해 클러스터의 노드에 접근하려면 클러스터에서도 접근 ..
-
[일래스틱 스택 6 입문] 3장. 유사도 검색Engineering WIKI/Book 2023. 9. 17. 15:25
[일래스틱 스택 6 입문] 1장. 일래스틱 소개 일래스틱서치 개념 및 사용 이유 일래스틱서치는 실시간 분산 검색 및 분석 엔진으로, 수평적으로 확장할 수 있다. 또한 일래스틱 스택의 핵심으로, 중앙에서 데이터를 저장해 다양한 문제를 해 wonos.tistory.com [일래스틱 스택 6 입문] 2장. 일래스틱서치 시작하기 [일래스틱 스택 6 입문] 1장. 일래스틱 소개 일래스틱서치 개념 및 사용 이유 일래스틱서치는 실시간 분산 검색 및 분석 엔진으로, 수평적으로 확장할 수 있다. 또한 일래스틱 스택의 핵심으로, wonos.tistory.com 일래스틱서치의 핵심이라 할 수 있는 검색 기능 분석기 구조 문자 필터 : 0개 이상 토크나이저(Tokenizer) : 정확히 1개 토큰 필터(Token filter..
-
기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작Engineering WIKI/Book 2023. 9. 7. 13:15
1장. ElasticSearch 훑어보기 / 2장.ElasticSearch 기본 동작 1.1 ElasticSearch란 ElasticSearch는 루씬(Lucene) 기반의 오픈 소스 검색 엔진이다. JSON 기반의 문서를 저장하고 검색할 수 있으며 문서들의 데이터를 기반으로 분석 작업도 할 수 있다. 준실시간 검색 엔진 : 실시간이라고 생각할 만큼 색인된 데이터가 매우 빠르게 검색됨 클러스터 구성 : 한 대 이상의 노드를 클러스터로 구성하여 높은 수준의 안정성을 이루고 부하를 분산할 수 있음. 스키마리스 : 입력될 데이터에 대해 미리 정의하지 않아도 동적으로 스키마를 생성할 수 있음. REST API : REST API 기반의 쉬운 인터페이스를 제공하여 비교적 진입 장벽이 낮음 {”title”:”tes..
-
[일래스틱 스택 6 입문] 2장. 일래스틱서치 시작하기Engineering WIKI/Book 2023. 8. 22. 23:36
[일래스틱 스택 6 입문] 1장. 일래스틱 소개 일래스틱서치 개념 및 사용 이유 일래스틱서치는 실시간 분산 검색 및 분석 엔진으로, 수평적으로 확장할 수 있다. 또한 일래스틱 스택의 핵심으로, 중앙에서 데이터를 저장해 다양한 문제를 해 wonos.tistory.com 일래스틱서치와 같은 도큐먼트 지향 저장소는 데이터의 추상적 개념을 사용한다. 인덱스 타입 도큐먼트 클러스터 노드 샤드 및 복제본 매핑 및 타입 역색인 인덱스 : 단일 타입의 도큐먼트를 저장하고 관리하는 컨테이너이다. / 관계형 데이터베이스의 데이터베이스 스키마와 거의 유사하다. 일래스틱서치에서 타입은 테이블, 도큐먼트는 테이블 레코드와 같다. 일래스틱서치 6.0 이전 버전에서는 단일 인덱스에 여러 타입을 포함할 수 있었다. 6.0버전 부터는..
-
[일래스틱 스택 6 입문] 1장. 일래스틱 소개Engineering WIKI/Book 2023. 8. 22. 03:38
일래스틱서치 개념 및 사용 이유 일래스틱서치는 실시간 분산 검색 및 분석 엔진으로, 수평적으로 확장할 수 있다. 또한 일래스틱 스택의 핵심으로, 중앙에서 데이터를 저장해 다양한 문제를 해결하거나 예상치 못한 상황을 발견해 적절한 조치를 취할 수 있다. 일래스틱서치를 데이터 저장소로 사용하면 얻을 수 있는 주요 이점 스키마리스와 도큐먼트 지향 검색 분석 풍부한 클라이언트 라이브러리와 REST API 지원 운영 및 확장 용이 거의 실시간 (Near Real Time) 신속성 결함 허용성 (Fault tolerant) 스키마리스 및 도큐먼트 지향 데이터 구조에 엄격한 기준이 없고, 다양한 JSON 도큐먼트를 저장할 수 있으며, 관계형 데이터베이스의 행, 열과 달리 일래스틱서치에서 일급객체로 취급된다. 엄청난 ..
-
리팩토링 2판 - Chapter 11 (API 리팩터링)Engineering WIKI/Book 2022. 10. 20. 01:53
11.1 질의 함수와 변경 함수 분리하기 우리는 외부에서 관찰할 수 있는 겉보기 부수효과(observerable side effect)가 전혀 없이 값을 반환해주는 함수를 추구해야 한다. (...중략...) 겉보기 부수효과가 있는 함수와 없는 함수는 명확히 구분하는 것이 좋다. (...중략...) 이를 명령-질의 분리(command-query sepration)라 하는데 p.413 명령 - 질의 분리는 꽤나 유용한 행동지침입니다. 결과 값을 가져오는 것과 객체 내부 상태 변경을 한 번에 하고 있으면 사용하는 입장에서는 결과를 예측하기 어려워집니다... 그래서 두 개의 함수로 분리시키는 것이 유지보수에 좋습니다. 11.3 플래그 인수 제거하기 함수의 인자로 boolean 값을 넘기는 관례는 피해야 합니다...
-
리팩토링 2판 - Chapter 10 (조건부 로직 간소화)Engineering WIKI/Book 2022. 10. 20. 01:43
조건문이 복잡해지는 경우 다루기가 굉장히 까다로워지는데 이것을 해결하기 위한 다양한 방법들을 제안합니다. 10.3 중첩 조건문을 보호 구문으로 바꾸기 함수 중간에 guard 로 로직을 중단하는 게 의도를 더 드러낼 수 있는 경우가 있습니다. Swift에서는 명시적으로 guard라는 구문이 있어서 편리하게 사용할 수 있는데, 언어 레벨에서 구문을 지원하기 때문에 많은 개발자들이 더 활발하게 사용하게 되는 것 같습니다. 중첩 조건문을 보호 구문으로 바꾸기 리팩터링의 핵심은 의도를 부각하는데 있다. 나는 if-then-else 구조를 사용할 때 if절과 else절에 똑같은 무게를 두어, 코드를 읽는 이에게 양 갈래가 똑같이 중요하다는 뜻을 전달한다. 이와 달리, 보호 구문은 "이건 이 함수의 핵심이 아니다. ..
-
리팩토링 2판 - Chapter 9 (데이터 조직화)Engineering WIKI/Book 2022. 10. 20. 01:36
이번에는 데이터 구조에 집중한 리팩토링을 다룹니다. 9.2 필드 이름 바꾸기 데이터 구조는 무슨 일이 벌어지는지를 이해하는 열쇠다. p.334 image_credit — Educative 데이터 구조는 단순히 값을 담아두는 공간이 아니라 프로그램을 더 잘 이해할 수 있도록 유도하는 역할을 해줍니다. 데이터 구조를 잘 선택하는 것만으로도 프로그램의 이해도를 높일 수 있다고 합니다. 알고리즘 문제를 풀다 보면 큐나 스택을 적절히 고르는 것만으로 문제가 쉽게 해결되는 것을 경험한 적이 있는데 실무에서도 동일하게 적용될 수 있을 것으로 기대됩니다. 데이터 구조가 중요한 만큼 반드시 깔끔하게 관리해야 한다. 다른 요소와 마찬가지로 개발을 진행할수록 데이터를 더 잘 이해하게 된다. 따라서 그 깊어진 이해를 프로그램..