🌳 고급 백엔드
ElasticSearch가 뭔가요?
쉽게 이해하기
도서관에서 책을 찾을 때 사서가 모든 책을 일일이 뒤지지 않고 카드 목록을 보듯이, ElasticSearch는 데이터의 '색인(Index)'을 미리 만들어둬요. 그래서 수억 건의 데이터 중에서도 원하는 정보를 0.1초 만에 찾을 수 있죠. 여러 조건으로 동시에 검색할 수 있고, 오타가 있어도 비슷한 결과를 찾아주는 똑똑한 검색 시스템이에요.
핵심 정리
ElasticSearch는 대량의 데이터를 빠르게 검색하고 분석할 수 있는 검색 엔진이에요.
자세히 알아보기
ElasticSearch는 Apache Lucene 기반의 분산 검색 엔진이에요. 일반 데이터베이스는 정확한 매칭에 강하지만, 텍스트 검색이나 복잡한 필터링에는 느려요. ElasticSearch는 '역색인(Inverted Index)' 구조로 이런 문제를 해결해요.
실무에서는 주로 세 가지 용도로 써요. 첫째, 사이트 내 검색 기능이에요. 쿠팡이나 네이버 쇼핑의 상품 검색이 대표적이죠. 둘째, 로그 분석이에요. 서버 로그를 ElasticSearch에 저장하고 Kibana로 시각화해서 모니터링해요. 셋째, 추천 시스템이에요. 사용자 행동 데이터를 분석해서 비슷한 상품을 추천하는 데 사용돼요.
ElasticSearch는 분산 아키텍처라서 데이터를 여러 노드에 나눠 저장하고, 샤딩과 레플리케이션으로 고가용성을 보장해요. 한 서버가 죽어도 다른 서버가 대신 응답할 수 있죠. 또한 실시간에 가까운 검색이 가능해요. 데이터를 넣으면 1초 안에 검색 결과에 반영돼요.
다만 메모리를 많이 사용하고, 설정이 복잡해서 운영 난이도가 높아요. 단순한 CRUD 위주 서비스라면 일반 데이터베이스로 충분하고, 복잡한 전문 검색이나 대용량 로그 분석이 필요할 때 도입하는 게 좋아요. AWS의 OpenSearch(ElasticSearch의 오픈소스 버전)를 쓰면 관리 부담을 줄일 수 있어요.