MongoDB 도큐먼트 모델링과 Elasticsearch 역인덱스 활용으로 NoSQL 경험 결
MongoDB를 사용한 경험에서 가장 중요하게 생각한 것은 도큐먼트 구조 설계였습니다. 자주 함께 조회되는 데이터는 같은 도큐먼트에 포함시키고, 조인이 많이 발생하는 패턴은 관계형 DB를 검토하는 기준을 팀과 함께 정했습니다.
Elasticsearch는 전문 검색 기능이 필요한 경우에 도입했습니다. 역인덱스 구조 덕분에 수십만 개의 텍스트 도큐먼트에서도 밀리초 단위로 키워드 검색이 가능했고, 한국어 형태소 분석기를 추가해 조사가 포함된 검색어도 처리할 수 있었습니다.
NoSQL을 선택할 때 스키마 유연성이 장점이자 위험 요소라는 것을 경험했습니다. 필드가 자유롭게 추가되다 보니 어느 순간 동일한 의미의 필드가 여러 이름으로 존재하는 문제가 생겼고, 초기에 네이밍 규칙을 팀과 합의해두는 것이 중요하다는 것을 배웠습니다.