728x90
반응형

분류 전체보기 185

[Elasticsearch] Elasticsearch 검색 심화 풀 텍스트 쿼리(Full Text Query)

Elasticsearch 검색 심화 풀 텍스트 쿼리(Full Text Query) 여기에 작성한 모든 내용은 Elastic 가이드 북를 참고하여 작성했습니다. 더 자세한 내용을 알고싶으면 해당 링크로 이동해주세요.^^ 🔍 검색? 데이터 시스템의 검색은 수 많은 데이터 중에서 조건에 부합하는 데이터로 범위를 축소하는 행위 라고 합니다. 인터넷 쇼핑몰에 상품이 1,000만개가 있을 때 검색창에 "무선 이어폰" 이라고 입력해서 시스템에 있는 전체 1,000만개의 상품들 중 무선 이어폰과 연관된 상품만 추려내는 과정을 검색이라고 할 수 있습니다. 검색 엔진 설정에 따라 상품명이 정확히 "무선 이어폰" 인 것만 보여줄지, “애플 무선 이어폰" 처럼 전체 상품명 중에 검색어를 포함하기만 하면 보여줄지, 가격, 출시..

[Elasticsearch] 초간단 REST API를 사용한 Elasticsearch CRUD

Elasticsearch의 진가 검색 기능 사용해보기(+벌크 API) 여기에 작성한 모든 내용은 Elastic 가이드 북를 참고하여 작성했습니다. 더 자세한 내용을 알고싶으면 해당 링크로 이동해주세요.^^ 벌크 API(_bulk API) 검색 기능을 사용하기 위해서는 데이터가 있어야겠죠? 이전 시간에 우리는 PUT 메소드를 이용하여 인덱스와 도큐먼트를 생성하는 방법을 배웠습니다. 그런데 이렇게 요청 1개당 1개의 도큐먼트를 생성하는 것은 불편합니다. 여러 명령을 한번에 수행할 수는 없을까? 🤔 여러 명령을 배치로 수행하기 위해서 _bulk API의 사용하면 됩니다! _bulk API로 index, create, update, delete의 동작이 가능하며 delete를 제외하고는 명령문과 데이터문을 한 ..

[Elasticsearch] 초간단 REST API를 사용한 Elasticsearch CRUD

😽 초간단 REST API를 사용한 Elasticsearch CRUD 여기에 작성한 모든 내용은 Elastic 가이드 북를 참고하여 작성했습니다. 더 자세한 내용을 알고싶으면 해당 링크로 이동해주세요.^^ Elasticsearch와 Kibana 설치를 완료했으면, 이제 실습을 진행해 볼까요^^?? 2023.12.13 - [데이터베이스/0 + Elasticsearch] - [Elasticsearch] ✂️ 10분 컽 초간단 Elasticsearch + kibana 설치 매뉴얼 Kibana에 접속하고 메뉴 > Management > Dev Tools 로 이동합니다. URL 구조 Elasticsearch에서는 단일 도큐먼트 별로 고유한 URL을 갖고 있습니다. https://://_doc/ Create Ela..

[Elasticsearch] ✂️ 10분 컽 초간단 Elasticsearch + kibana 설치 매뉴얼

Elasticsearch + kibana 설치 macOS Local 설치를 기준으로 설명 드립니다.^^ 다운로드 Elastic 제품 다운로드 페이지로 접속합니다. Elastcisearch와 Kibana를 다운로드 합니다. 8.1.0 버전을 다운 받습니다. https://www.elastic.co/downloads/past-releases#elasticsearch https://www.elastic.co/downloads/past-releases#kibana 운영체제에 알맞은 플랫폼을 설치합니다. 압축 해제 다운로드 받은 파일을 압축 해제 합니다. Desktop에 es8 폴더를 만드고 해당 위치로 압축해제한 폴더를 이동시킵니다. 폴더명을 아래와 같이 변경합니다. 터미널 창을 열고 해당 위치로 이동합니다. ..

[Elasticsearch] 핵심만 콕콕 Elasticsearch 기본 개념

포스팅 작성 동기 이번에 동료들과 프로젝트를 하나 진행하기로 했는데, 검색 기능이 들어가야 했습니다. 관계형데이터베이스를 사용해서 where 절로 검색 결과를 반환하기에는 무리가 있다고 판단했습니다. (이번 프로젝트에서는 검색 기능이 핵심이라고 생각했습니다....!) 따라서 검색 엔진을 도입하기로 결정했고, 그중 가장 널리쓰이는 Elasticsearch를 사용하기로 했습니다. (많은 개발자들이 사용하기 때문에 자료를 찾는 것이 수월하다고 생각했습니다.^^) 저를 비롯하여 동료도 검색 엔진은 한번도 다뤄본적이 없기에..........🥲 동료분과 함께 Elasticsearch에 대해서 배운것을 공유할겸 + 정리할겸 포스팅을 작성하게 되었습니다...! 핵심만 콕콕 Elasticsearch 기본 개념 여기에 작..

제어할 수 없는 코드가 포함된 로직을 메소드 변경 없이 테스트 코드를 작성하는 방법(오버라이딩)

제어할 수 없는 코드가 포함된 로직을 메소드 변경 없이 테스트 코드를 작성하는 방법(오버라이딩) 제어할 수 없는 코드가 포함된 레거시 코드를 받은 당신 🫵 당신은 아래의 레거시 코드를 받았고, move라는 코드의 테스트 코드를 작성해야한다. 이때 당신은 어떻게 해야할 것인가? public class Car { public static final int FORWARD_NUMBER = 1; private int position; public void move() { if (getRandom() >= FORWARD_NUMBER) { position++; } } private int getRandom() { return Randoms.pickNumberInRange(0, 9); } public int getPo..

Spring Boot에 Redis와 연동하여 처리율 제한 장치(Rate Limiter) 적용하기(Spring Boot + Redis + Bucket4j)

Spring Boot에 Redis와 연동하여 처리율 제한 장치(Rate Limiter) 적용하기(Spring Boot + Redis + Bucket4j) 포스팅 동기 개인 프로젝트를 진행하면서 처리율 제한 장치를 적용해야하는 상황이 발생했습니다. 처리율 제한 장치를 구현하기 위해서는 크게 2가지 방법이 있는데, Client와 Server 사이에 MiddleWare를 두어서 Gateway를 이용하는 방법과 Server에서 구현하는 방법이 있습니다. 저는 Gateway를 사용하기에는 규모가 작은 프로젝트라서 Server에 직접 구현하였습니다.^^ 추가로 처리율 제한 장치에 여러 알고리즘이 존재하는데, 리소스를 고려하여 구현이 간편한 토큰 버킷 알고리즘을 사용했습니다.^^ 이 모든 내용을 혼자만 알고있기에는 ..

0+ 스프링 2023.10.22

[가상 면접 사례로 배우는 대규모 설계 기초] 2. 처리율 제한 장치(Rate Limiter)

[가상 면접 사례로 배우는 대규모 설계 기초] 2. 처리율 제한 장치(Rate Limiter) 아무리 대용량 데이터를 처리할 수 있다고 하더라도, 악의적인 목적을 가진 사용자가 무한정으로 서버에 요청을 하면 문제가 발생하기 마련입니다. 그래서 빅 테크 기업에서는 네트워크 시스템에서 처리율 제한 장치(rate limiter)를 설계합니다. 이번에 처리율 제한 장치가 무엇인지 알아보자! 처리율 제한 장치(Rate Limiter) 처리율 제한 장치란 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)를 제어하기 위한 장치입니다. HTTP를 예로 들면 특정 기간내에 전송되는 클라이언트의 요청 횟수를 제한하는 것 입니다. API의 요청횟수가 제한 장치에 정의된 임계치(threshold)를 넘어서면 추가로 ..

운영체제 핵심 개요

운영체제 핵심 개요 운영체제란? 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 의미 🤔 운영체제 같은 대형 프로그램을 모두 메모리에 올리면 메모리가 낭비되는 것 아닌가요? 맞습니다.!! 운영체제처럼 규모가 큰 소프트웨어를 모두 메모리 올린다면, 메모리 낭비가 심합니다. 따라서 이러한 메모리 낭비를 고려하여, 운영체제 중 필요한 부분만 컴퓨터 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때만 메모리에 올려서 사용합니다. 🤔 운영체제 하면 항상 커널 이야기가 나오는데 커널은 뭐죠? 메모리에 항상 올라가 있는 운영체제의 부분을 커널이라고 부릅니다. (커널은 운영체제 코드 중에서 핵심적인 부분을 의미) 운영체제의 기능 운영체제는 컴퓨터 하드웨어와 사용자 또는 소프트웨어 사이에 존재합니..

[가상 면접 사례로 배우는 대규모 설계 기초] 1. 사용자 수에 따른 규모 확장성

[가상 면접 사례로 배우는 대규모 설계 기초] 1. 사용자 수에 따른 규모 확장성 넌 대용량 데이터를 다루지 않으면서 왜 이책을 보는거야? 🤔 최근 면접을 진행하면서 꼭 빠지지 않은 질문이 있었다. 바로 대용량 데이터 처리 대한 질문이었다. 그럴때마다 나는 우물쭈물 어쩔줄 몰라했다…. 😇 대용량 데이터를 처리할 수 있는 환경이 아니었단 말이야! 라고 핑계를 댈 수 있다. 진짜로, 나는 지금까지 대용량 데이터를 처리할 기회(?)가 없었다. ㅎㅎㅎㅎㅎㅎㅎㅎ 그런데 훌륭한(?) 개발자라면 대용량에 대한 설계를 고려하면서 애플리케이션을 개발해야 한다고 생각한다. 컴퓨터의 존재 목적 자체가 사람이 감당할 수 없는 대량의 데이터(1,000개, 10만개… 1,000만개!!)를 처리하기 위해 등장했다고 생각하기 때문이..

728x90
반응형