블로그 글
박재성 선생님이 개발 블로그에 쓴 글입니다.
![[실습] Spring Boot에서 인덱스에 맞게 Document 정의하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-8091-a5be-daeed539103e-0a9682772676841e.webp&w=3840&q=75)
[실습] Spring Boot에서 인덱스에 맞게 Document 정의하기
✅ Spring Boot에서 인덱스에 맞게 Document 정의하기 Spring Data JPA에서 DB의 테이블에 맞게 Entity를 작성하는 것처럼, Spring Data Elasticsearch에서 인덱스에 맞게 Document를 작성해야 한다.
AWS Opensearch vs Elastic Cloud
✅ AWS OpenSearch vs Elastic Cloud AWS OpenSearch와 Elastic Cloud의 차이를 알기 위해 OpenSearch의 역사에 대해 먼저 알아보자. Elasticsearch를 개발한 회사에서 Elasticsearch
[참고 자료] 프로젝트 완성본 (Github)
프로젝트 레포지토리의 final 브랜치에 프로젝트 완성본을 올려뒀다. 강의의 실습을 똑같이 따라했는데도 잘 작동하지 않았다면, 아래 코드와 비교해서 잘못 작성한 부분이 있는 지 체크해보자.
![[실습] Spring Boot에서 Elasticsearch 활용해 자동완성 API 만들기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-8078-8e93-dfd93cc460dd-e05c646ef8e7cb23.webp&w=3840&q=75)
[실습] Spring Boot에서 Elasticsearch 활용해 자동완성 API 만들기
✅ Spring Boot에서 Elasticsearch 활용해 자동완성 API 만들기 Controller에 API 추가하기 Service에 의존성 추가하기 Service에 메서드 만들고 로직 추가하기 Postman으로 테스트를 위한 더미 데이터 넣기 P
[실습] 대소문자 구분 없이 검색 / 단어 순서 상관없이 검색 / HTML 태그 섞이지 않게 검색
✅ 요구사항 반영하기 대소문자 구분없이 검색할 수 있게 만들기 단어의 순서에 상관없이 검색 잘 되게 만들기 HTML 태그로 검색되지 않게 만들기 요구사항을 잘 반영했는 지 테스트해보기

인프라 아키텍처 설계하기
✅ 인프라 아키텍처 설계하기 MySQL과 Elasticsearch의 장단점은 명확하다. MySQL은 트랜잭션을 기반으로 데이터의 정합성을 보존해주는 게 큰 장점이다. 반면에 Elasticsearch는 빠른 검색에 최적화 되어 있다. 현업에서는 이 2가
![[실습] Spring Boot에서 Elasticsearch 활용해 검색 API 만들기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-8021-ba6e-f4edc0132eed-dacd150a7ddd20f8.webp&w=3840&q=75)
[실습] Spring Boot에서 Elasticsearch 활용해 검색 API 만들기
✅ Spring Boot에 검색 API 만들기 Controller에 API 추가하기 Service에 메서드 추가하기 깔끔한 테스트를 위해 기존 데이터 삭제하기 Postman으로 테스트를 위한 더미 데이터 집어넣기 테스트해보기 지금까지 구현하고자 한 자
![[실습] Spring Boot에 Elasitc Cloud의 Elasticsearch 연결하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-8016-ac8c-d278aad0b14f-33de327f3823c006.webp&w=3840&q=75)
[실습] Spring Boot에 Elasitc Cloud의 Elasticsearch 연결하기
✅ Spring Boot에 Elasitc Cloud의 Elasticsearch 연결하기 Spring Boot에 Elastic Cloud의 Elasicsearch를 연결하기 위해서는 주소(Endpoint), username, password 이 3가지를
![[실습] MySQL에 데이터 삽입/삭제 시 Elasticsearch에도 같이 반영되게 만들기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-800d-8720-f676caa8362a-15c6fd0c95b79a0b.webp&w=3840&q=75)
[실습] MySQL에 데이터 삽입/삭제 시 Elasticsearch에도 같이 반영되게 만들기
✅ MySQL에 데이터 삽입/삭제 시 Elasticsearch에도 같이 반영되게 만들기 이전 강의에서 설계했던 인프라 아키텍처에 맞게 작동하도록 만들어보자. ProductDocumentRepository 의존성 추가 상품 등록 로직 수정하기 상품 삭제

애널라이저(Analyzer)란?
✅ 애널라이저(Analyzer)란? 이전 강의에서 products의 name 필드값을 토큰(token)으로 분리해 역인덱스(Inverted Index)로 저장하는 과정을 살펴봤다. 이 과정에서 문자열(text)을 토큰으로 변환시켜주는 장치를 보고 애널
![[실습] 단어의 형태(-ed, -ing, -s 등)에 상관없이 검색하는 방법 (stemmer)](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2c111062-ff07-80f4-93db-cd87aaa08142-9e0c5ced5e9216eb.webp&w=3840&q=75)
[실습] 단어의 형태(-ed, -ing, -s 등)에 상관없이 검색하는 방법 (stemmer)
✅ 단어의 형태(-ed, -ing, -s, -er 등)에 상관없이 검색하는 방법 영어 단어를 보면 play, playing, played, player 등 다양한 형태로 사용된다. 검색을 할 때 단어의 형태에 상관없이 검색이 가능하다면 훨씬 편하게 원
[실습] 검색할 때 필요없는 불용어(a, an, the, or, but) 제거하기 (stop)
✅ 검색할 때 필요없는 불용어(a, an, the, or, but 등) 제거하기 (stop) 영어로 작성된 게시글을 보면 검색어로 잘 사용하지 않는 a, an, the, or과 같은 불용어(= 의미없는 단어)가 많이 포함되어 있다. 역인덱스의 효율적인