개요

해당 글에서는 엘라스틱서치(이하 ES)의 소스코드를분석해보고자 한다.

목적은 ES의 기본적인 색인(index), 조회(get), 검색(search)이 실제 동작하는 과정을 실제 소스코드 순서로 따라가보며 감을 익히고 소스를 파악했다는 기분(?)에 조금 더 기술에 대한 깊이와 자신감을 얻기위하는데 있다.

ES 소스코드 버전

ES는 github에 올라와있는 v2.4.1의 소스코드를 분석해보고자 한다.

버전이 이유는 필자가 Toy 프로젝트로 진행하는 ES의 버전이랑 동일하기 때문이다.

소스 분석에 필요한 배경지식

ES 구동과정을 이해하는데 있어서 필요한 사전지식들이 있다.

ES소스를 이해하기 위한 배경지식은 ES에 대한 기본지식, Google Guice일듯 하다.

ES에 대한 기본 지식은 링크와 같이 ES Definitive GuideGetting Started부분을 읽으면 될듯 하다.

Google Guice의 경우 Module에 대한 개념이 필요한데 이유는 ES가 Guice를 사용하여 DI(Dependency Injection)방식으로 Module들을 등록하기 때문이다. 또한, 각 모듈에서는 configure()를 override하여 binding을 관리하는데 binding은 해당 모듈과 관계있는 다른 모듈들을 명시하는 것이다. 따라서, 이부분에 대한 기본지식이 있으면 Module들의 소스코드를 구조적으로 이해하는데 있어 도움이 된다.

Spring Framework에 대한 지식이 있다면 Module은 bean등록 과정이라고 이해해도 무방할듯 하고, binding은 각 Module과 관계있는 다른 Module을 명시하는 것이다.

목차

포스팅할 글의 순서는 다음과 같다. 세부 링크를 클릭해보면 각 글의 내용을 볼 수 있다.