[ElasticSearch] 한글 검색 최적화(Nori Analyzer)
Back-End/ElasticSearch2025. 6. 1. 00:39[ElasticSearch] 한글 검색 최적화(Nori Analyzer)

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.스탠다드 애널라이저는 영어에 최적화된 유연한 검색 기능을 제공하지만, 한글에 적합하지는 않다.따라서 한글에 맞는 애널라이저인 Nori Analyzer를 써야 한다. 노리 애널라이저가 설치된 도커 컨테이너DockerfileFROM docker.elastic.co/elasticsearch/elasticsearch:8.17.4 # Nori Analyzer 플러그인 설치RUN bin/elasticsearch-plugin install analysis-nori compose.ymlservices: elastic: build: context: . dockerfile: Dockerfile po..

[ElasticSearch] 데이터 타입(data type)과 매핑(mapping)
Back-End/ElasticSearch2025. 5. 31. 16:43[ElasticSearch] 데이터 타입(data type)과 매핑(mapping)

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.데이터 타입Elasticsearch에서 데이터 타입의 종류는 아주 많다.그 중 이 글은 자주 사용하는 데이터 타입에 대해서만 정리한다. 숫자integer : 10억 이하의 정수만 저장하면 되는 경우long : 10억이 넘어가는 정수를 저장해야 될 수도 있는 경우double : 실수(소숫점을 가진 숫자 포함)를 저장해야 될 수도 있는 경우 문자text- 문자열을 토큰으로 쪼개서 저장하고 싶은 경우- 유연한 검색이 필요할 때 (완전히 일치하지 않아도 비슷한 데이터를 조회해오는 방식)keyword- 정확한 검색이 필요할 때 (정확하게 일치할 때만 데이터를 조회해오는 방식)- ex) 휴대폰 번호(010-1234-5678)..

[ElasticSearch] 애널라이저(Analyzer)
Back-End/ElasticSearch2025. 5. 31. 02:08[ElasticSearch] 애널라이저(Analyzer)

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.애널라이저(Analyzer)이론역인덱스(Inverted Index)로 저장하는 과정에서 문자열(text)을 토큰으로 변환시켜주는 장치를 보고 애널라이저(Analyzer)라고 부른다. 애널라이저(Analyzer)는 내부적으로 캐릭터 필터(character filter), 토크나이저(tokenizer), 토큰 필터(token filter)라는 걸 활용해 문자열을 토큰으로 변환시킨다. standard analyzerElasticsearch에서 제공하는 애널라이저로는 standard, simple, whitespace 등 다양한 종류가 있다.그 중 기본값으로 설정되어 있는 애널라이저는 standard analyzer이다...

[ElasticSearch] 역인덱스(Inverted Index)
Back-End/ElasticSearch2025. 5. 31. 00:45[ElasticSearch] 역인덱스(Inverted Index)

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.유연한 검색 기능RDBMS의 검색 한계MySQL의 products 테이블의 name 컬럼에 맥북 에어 13 M4라고 저장해놓고, 특정 키워드로 데이터를 검색하려면 아래와 같이 SQL문을 작성해야한다. SELECT * FROM products WHERE name = “%맥북 에어 13%”; 만약 MySQL에서 맥북 13 에어라고 검색하면 데이터가 검색되지 않는다. SELECT * FROM products WHERE name = “%맥북 13 에어%”; 하지만 실제로 우리가 쿠팡 등에서 물건을 검색할 때 단어의 순서를 정확하게 기억하고 검색하진 않는다. 위 제품을 쿠팡에 검색해서 구매하고 싶다고 할 때, 우린 쿠팡에 ..

[ElasticSearch] 인덱스, 도큐먼트, 매핑, 필드
Back-End/ElasticSearch2025. 5. 30. 14:31[ElasticSearch] 인덱스, 도큐먼트, 매핑, 필드

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.Elasticsearch의 기본 용어 정리MySQL과 Elasticsearch를 비교하면서 학습하면 Elasticsearch를 훨씬 빠르게 배울 수 있다. MySQLMySQL은 데이터베이스이다.데이터를 저장/조회/수정/삭제할 수 있다.데이터를 저장하기 위해 가장 먼저 테이블(table)을 만든다.테이블을 만들 때 어떤 유형의 데이터를 넣을 지 스키마(schema)를 정의한다.테이블의 컬럼(column)에 맞게 데이터를 저장한다. ElasticsearchElasticsearch도 데이터베이스다.Elasticsearch에 데이터를 저장/조회/수정/삭제할 수 있다.데이터를 저장하기 위해 가장 먼저 인덱스(index)를..

[ElasticSearch] 작동 방식 및 Kibana
Back-End/ElasticSearch2025. 5. 30. 14:04[ElasticSearch] 작동 방식 및 Kibana

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.ElasticSearch 작동 방식MySQL과 소통하려면 SQL문이라는 방식으로 통신해야 한다.이와 비슷하게 Elasticsearch와 소통하려면 REST API 방식으로 통신해야 한다.아래는 MySQL과 Elasticsearch의 명령어 차이를 보여준다. 데이터 삽입MySQLINSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); ElasticSearchcurl -X POST "localhost:9200/users/_doc" -H 'Content-Type: application/json' -d'{ "name": "Alice", "email"..

[ElasticSearch] 기본 개념 및 설치 방법
Back-End/ElasticSearch2025. 5. 30. 13:44[ElasticSearch] 기본 개념 및 설치 방법

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.ElasticSearch기본 개념ElasticSearch는 실시간 분산 검색 및 분석 엔진으로, 대용량 데이터를 빠르게 저장하고 검색·분석할 수 있는 시스템이다.기본적으로 Apache Lucene 기반이며, JSON 기반의 RESTful API로 동작한다.Elasticsearch는 검색, 데이터 분석에 최적화된 데이터베이스이다.Elasticsearch는 검색을 잘하는 데이터베이스라고 보면 된다. 정확히 말하면, “많은 데이터를 빠르게 검색하거나 분석”하려고 만든 시스템이다.보통 데이터베이스는 “데이터를 보고 찾는” 구조인데, ElasticSearch는 “찾기 좋게 색인해놓고 나중에 빠르게 꺼내는” 구조이다.또한 데..

[보안] CSP(Content Security Policy)
네트워크/보안2025. 5. 28. 11:44[보안] CSP(Content Security Policy)

CSP(Content Security Policy)는 웹 보안 기능 중 하나로, 웹사이트에서 실행될 수 있는 콘텐츠의 출처를 명시적으로 제한하여 악성 스크립트 실행(XSS)을 방지하는 정책이다.쉽게 말하면, "어디서 온 콘텐츠만 허용할지"를 웹 브라우저에게 미리 알려주는 보안 지침이다. 필요 이유웹사이트가 XSS(크로스 사이트 스크립팅) 공격을 받으면 악성 JavaScript가 삽입되어, 사용자 쿠키 탈취, 악성 행위 수행, 세션 탈취 등이 일어날 수 있다.CSP는 이런 스크립트 실행을 "출처 기준으로 필터링" 하여 예방한다. 주요 지시어디렉티브설명예시default-src기본 출처 정책'self' (현재 도메인만 허용)script-src자바스크립트의 출처 제한'self' https://trusted.cd..

image