# [Elasticsearch] Elasticsearch 입문하기

![](https://blog.kakaocdn.net/dna/c1Uczp/dJMcabXmiz5/AAAAAAAAAAAAAAAAAAAAAG8dLWTSRtM_WRlDpZFGEcu7FRBdGeon7RihMOKlPMm0/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1772290799&allow_ip=&allow_referer=&signature=%2FaS47K5CWXgbaVFEcpedbEvbCIo%3D align="left")

\-elastic

## ▶ 들어가며

이번 프로젝트에서 **조회 및 검색 기능 구현을 맡아** 개발을 진행했다.  
Elasticsearch 없이 검색어 자동완성과 검색/조회 기능을 직접 구현하면서, 전체 검색 흐름과 동작 방식에 대해 많이 고민해볼 수 있었다. 이 과정에서 **Elasticsearch**라는 도구를 접하게 되었는데, 살펴보니 검색, 정렬, 필터링, 자동완성 등  
**주요 기능들이 내가 구현해야 했던 기능들과 거의 정확히 일치**했다.

단순히 “검색 엔진이다”라는 인상을 넘어서,  
이를 도입하면 **검색 기능 개선 측면에서도 충분히 이야기해볼 만한 포인트가 많겠다는 생각**이 들었고,  
자연스럽게 Elasticsearch를 제대로 공부해보고 싶어졌다.

이번 카테고리는  
👉 Elasticsearch를 처음 접하는 입장에서 **개념을 최대한 쉽게 정리하고,**  
👉 이후에는 실제로 어떻게 활용할 수 있는지까지 **딥다이브**하는 것을 목표로 한다.

---

## ▶ Elasticsearch가 할 수 있는 일들

Elasticsearch가 제공하는 대표적인 기능들을 정리해보면 다음과 같다.

* **조회 기능 향상**
    
* 정렬 기능 향상
    
* **필터링 서비스에 최적화**
    
* **검색어 자동완성**
    
* 동의어 기반 검색
    
* **위치(Geo) 검색에 최적화**
    
* 데이터 양이 많아도 빠른 검색 성능
    
* 로그 및 기록 관리에 유용
    

정리해보니,  
👉 **내가 구현해야 했던 기능들과 거의 정확히 겹친다.**

많은 우리나라 대기업에서 (쿠팡이나 배민과 같은) 실제로 Elasticsearch를 사용하여 대규모 데이터들을 관리하고 있기때문에 이번 기회에 제대로 공부하면 좋을듯..

---

## ▶ Elasticsearch가 뭔데 그래서?

처음 감을 잡기 위해 **아주 단순하게 한 줄로 정리하면,**

> Elasticsearch는 검색과 데이터 분석을 아주 잘하는 데이터베이스다.

물론 엄밀하게 말하면 전통적인 의미의 DB(RDBMS)와는 다르다!!

그래도 **처음 접근할 때는 DB라고 생각하는 게 가장 편하다**고 느꼈다. <s>(기능이 아주 많은 도구??)</s>

우리가 많이 사용하는 RDBMS인 **MySQL**과 비슷한 점도 많고, 차이점도 명확하다.

핵심만 정리하면

* Elasticsearch는
    
    * **검색(Search), 조회(Query)**
        
    * **데이터 분석(Analytics)**
        
    
    이 2가지에 특화되어 기능을 구현시켜주는 도구이다.
    

---

## ▶ Elasticsearch는 어떻게 다루나?

MySQL을 사용할 때를 떠올려보면,

* DataGrip
    
* MySQL Workbench
    

같은 **GUI 툴**을 사용해서 직접 데이터 삽입, 삭제, 조회를 보다 가독성있게 관리한다.

Elasticsearch도 마찬가지다.

![](https://blog.kakaocdn.net/dna/cDoeMd/dJMcaivnCRX/AAAAAAAAAAAAAAAAAAAAANv5PB_IdY55YJt_d2IOJq5h2qukll5aIhrhggPj1gbe/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1772290799&allow_ip=&allow_referer=&signature=Q4oz8idKumsL09F1UOmiKpYYKbk%3D align="left")

\-kibana

Elasticsearch는 **Kibana**라는 **GUI 도구**를 함께 사용한다.

* Elasticsearch 데이터 조회
    
* 쿼리 테스트
    
* 로그 시각화
    
* 인덱스 관리
    

등을 훨씬 편하게 할 수 있다. 나는 **Kibana 기준으로 명령어와 쿼리를 공부할 예정**이다.  

(MySQL에서 터미널을 사용하듯이 curl 같은 명령어를 사용해서 직접 요청을 보내는 것이 기본.)
