본문 바로가기

티스토리챌린지18

[Spring] OpenSearch를 이용한 검색어 자동완성 기능 제작 검색어 자동완성을 구현하는 가장 쉬운 방법은 RDB에서 매번 특정 칼럼에 Like문을 때리는 것이다. 그런데 이렇게 하면 문제가 있다. 첫번째, 검색어 자동완성 자체가 이벤트가 일어날 때 마다 지속적으로 api 요청을 보내는데, 거기에 Full Scan으로 검색하는 RDB Like 문으로 검색하면 DB 부하가 장난 아닐 것이다. 두번째, 모든 데이터가 영어로 보장되있다면 그나마 괜찮은데 (인덱스를 활용하면 되기 때문), 한글 데이터가 들어가는 순간, Like 문 검색은 반드시 피해야된다. 왜냐하면, 한글 특성상 DB 인덱스를 사용하기 매우 어렵기 때문이다. 한글은 자모음 분리가 가능하고, 초성 검색 등의 특수한 경우를 고려해야 하기에, 기본적인 Like 문으로는 성능이 급격히 떨어진다.  따라서, Ela.. 2024. 11. 10.
[AWS] AWS Lambda의 활용 Serverless란 무엇인가?많이들 오해 하는데, 서버리스라는게 백엔드 서버가 없다는 뜻이 아니다. 우리가 직접 서버를 관리하지 않아 신경 쓸 필요가 없다는 의미로 서버리스라고 부르는 것이다.  필요한 컴퓨팅 리소스와 스토리지만 동적으로 할당한 다음, 그 부분에 대해서만 비용을 청구하는 모델이다. 사용한만큼 비용이 청구되기 때문에 매우 경제적이며 자원을 효율적으로 사용이 가능. 비용도 굉장히 저렴하다.  300원에 200만뷰 소화하기 - 서버리스 아키텍처 AWS 람다(Lambda) 활용 사례 - 로켓펀치 공식 블로그  로켓펀치에서는 기본적인 웹 서비스 외에 제휴를 통해 로켓펀치의 채용 공고를 위젯 형식으로 노출하는 경우가 있습니다. (예 : 플래텀 오른쪽 사이드바 위젯) 이런 위젯들을 운영하다 보니bl.. 2024. 11. 9.
[DB] ElasticSearch Index 설정과 텍스트 분석 Index API의 개요ElasticSearch를 할 때 가장 기초가 되는 부분이다. 물론 데이터를 삽입할 때, Index가 없으면 자동으로 생성하지만... 사실 세부적으로 검색을 튜닝하려면 Index에 대한 세부적인 설정은 필수이다. Index API는 Index를 생성하고 설정을 하는 역할을 한다. 이 때, 데이터 모델링을 진행한다. 이때, 한번 생성한 맵핑 타입은 변경할 수 없으니 주의할 것! Index 설정 요청은 아래처럼 생겼다. 크게 setting 부분과 mapping 부분 이렇게 두개로 나뉜다고 보면 된다.PUT /complex_index{ "settings": { "analysis": { "analyzer": { "korean_analyzer": { .. 2024. 11. 8.
[DB] Elastic Search의 기초 Elastic Search란?방대한 양의 데이터를, 거의 실시간에 가깝게 저장, 검색, 분석 할 수 있도록 하는 오픈소스 분산 검색 엔진이다. ELK Stack이란?Elastic Search, Logstash, Kibana 3개를 합쳐 ELK라고 부른다. 보통 로그 분석으로 사용되며, 여기서 특히 Elastic Search가 범용성이 높아 단독으로 사용되는 경우가 많다.FileBeat : 로그 파일 Logstash에게 전달하기 위한 놈Logstash : 다양한 소스의 로그 또는 데이터를 수집, 집계, 파싱하여 ElasticSearch에게 전달하는 놈ElasticSearch : Logstash로 부터 받은 데이터를 검색 및 집계하는 역할Kibana : ElasticSearch로 검색한 데이터를 GUI로 시.. 2024. 11. 7.