분류 전체보기146 기본 용어 기본 용어 Index : 데이터 저장 공간하나의 물리 노드에 여러개 논리 인덱스 생성하나의 인덱스가 여러 노드에 분산 저장 (M:N) Shard : 색인된 문서는 하나의 인덱스 — 인덱스 내부에 색인된 데이터는 여러개의 파티션으로 나뉘어 구성됨.(파티션 = 샤드) Type : 인덱스의 논리적 구조6.1부터 인덱스당 하나의 타입만 설정 가능(6.0 이하에서는 music 인덱스에서 rock, pop등 장르별로 분리하는데 타입을 사용할 수 있었음) Document : 데이터가 저장되는 최소 단위JSON 포맷으로 저장DB의 Row에 대응됨. Field : 문서를 구성하기 위한 속성DB의 컬럼과 비교할 수 있음하나의 필드는 목적에 따라 다수의 데이터 타입을 가질 수 있음 Mapping : 문서의 필드, 필드 속성.. 2024. 1. 31. 특징 특징 💡 ES도 NoSQL의 일종으로 분류할 수 있고, 분산처리를 통해 실시간성으로 빠른 검색이 가능하다. 특히 기존의 데이터로 처리하기 힘든 대량의 비정형 데이터 검색이 가능하며 전문 검색(full text) 검색과 구조 검색 모두를 지원한다. 기본적으로는검색엔진이지만 MongoDB나 Hbase와 같은 대용량 스토리지로도 활용이 가능하다. 2024. 1. 31. 역색인 역색인 💡 일반적인 색인의 목적은 ‘문서의 위치’에 대한 index를 만들어서 빠르게 그 문서에 접근하고자 하는 것인데, 역색인은 반대로 ‘문서 내의 문자와 같은 내용물’의 맵핑 정보를 색인해놓는 것이다. 역색인은 검색엔진과 같은 문서의 내용의 검색이 필요한 형태에서 전문 검색의 형태로 주로 쓰인다. 쉬운 예시로 들어보면 일반 색인(forward index)은 책의 목차와 같은 의미이고, 역색인(inverted index)은 책 가장 뒤의 단어 별 색인 페이지와 같다. 만약 DB에서 “Trade”라는 문구가 포함된 문자열을 찾으려고 한다면 SQL에서는 %Trade% 라고 명확히 입력해야 검색이 가능할 것이다. trade, TRADE, trAde…. 등의 문자열은 직접 하나하나 명시하기 전에는 찾을 수 없.. 2024. 1. 31. 장점과 단점 장점 오픈소스 검색엔진이다. 활발한 오픈소스 커뮤니티가 ES를 끊임없이 개선하고 발전시키고 있다. 전문검색 : 내용 전체를 색인해서 특정 단어가 포함된 문서를 검색할 수 있다. 기능별, 언어별 플러그인을 적용할 수 있다. 통계 분석 : 비정형 로그 데이터를 수집하여 통계 분석에 활용할 수 있다. Kibana를 연결하면 실시간으로 로그를 분석하고 시각화할 수 있다. Schemaless : 정형화되지 않은 문서도 자동으로 색인하고 검색할 수 있다. RESTful API : HTTP기반의 RESTful를 활용하고 요청/응답에 JSON을 사용해 개발 언어, 운영체제, 시스템에 관계없이 다양한 플랫폼에서 활용이 가능하다. Multi-tenancy : 서로 상이한 인덱스일지라도 검색할 필드명만 같으면 여러 인덱스를.. 2024. 1. 31. Elastic Search란? Elastic Search란? 💡 Elasticsearch는 Elastic Stack의 중심에 있는 분산 검색 및 분석 엔진입니다. Logstash와 Beats는 데이터 수집, 집계, 강화 및 Elasticsearch 저장을 용이하게 합니다. Kibana를 사용하면 데이터에 대한 통찰력을 대화형으로 탐색, 시각화 및 공유하고 스택을 관리 및 모니터링할 수 있습니다. Elasticsearch는 인덱싱, 검색, 분석이 이루어지는 곳입니다. Elasticsearch는 모든 유형의 데이터에 대해 거의 실시간 검색 및 분석을 제공합니다. 구조화된 텍스트, 구조화되지 않은 텍스트, 숫자 데이터, 지리공간 데이터 등 어떤 것이든 Elasticsearch는 빠른 검색을 지원하는 방식으로 이를 효율적으로 저장하고 색인화.. 2024. 1. 31. REST API REST API 정의 REST의 특징을 기반으로 서비스 API를 구현한 것 특징 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다. REST API의 설계 규칙 1. URI는 명사를 사용한다.(리소스명은 동사가 아닌 명사를 사용해야 한다.) 1-1. 아래와 같은 동사를 사용하지 말 것 /getAllUsers/getUserById/createNewUser/updateUser/deleteUser 2. 슬래시( / )로 계층 관계를 표현한다. 3. URI 마지막 문자로 슬래시 ( / )를 포함하지 않는다. 4. 밑줄( _ )을 사용하지 않고, 하이픈( - )을 사용한다. 5. URI는 소문자로만 구성한다. 6. HTTP 응답 상태 코드 사용- 클라이언트는 해당 요청에 대한 .. 2024. 1. 31. REST REST REST(REpresentational State Transfer) 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 자원의 표현에 의한 상태 전달을 의미 자원 : 해당 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터, 해당 소프트웨어 자체 등) 표현 : 그 자원을 표현하기 위한 이름(DB의 학생 정보가 자원이면 students를 자원의 표현으로 정함) 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달(JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적) 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 REST : 어떤 자원에 대해 CRUD(Create, Read, U.. 2024. 1. 31. 컨텐츠 협상 CH5-10.컨텐츠 협상 컨텐츠 협상 클라이언트가 원하는 컨텐츠를 받을 수 있도록 서버에게 부탁하는 기능 컨텐츠 타입, 언어, 인코딩 방법 등 클라이언트 맞춤 컨텐츠 제공 기능 Accept(-X) 헤더 이용 Accept : 클라이언트가 선호하는 컨텐츠 타입 Accept - Encoding : 클라이언트가 선호하는 인코딩 Accept - Language : 클라이언트가 선호하는 언어 여러 맞춤 요청을 보낼 수 있다, 여러개의 컨텐츠 협상 가능 여러 맞춤 요청을 보낼 대 Quality Value 값을 기준으로 우선순위를 매길 수 있다. 0 ≤ Quality Value(q) ≤ 1 클수록 우선순위가 높다. 명시되어있지 않다면 default = 1 2024. 1. 31. 이전 1 ··· 9 10 11 12 13 14 15 ··· 19 다음