🙂2022.02.15
일일 회고 13회차
할일 및 한일
경험 및 배움
배터리 관제 시스템
의 데이터 모델링 분석
배터리 관제 시스템
의 데이터 모델링 분석백엔드에 구현된 배터리 목록 조회에서 슬로우 쿼리가 발생하여 왜 그런지 분석해본 결과, 배터리 목록을 조회할 때 배터리 테이블과 여러 테이블을 Left Join
하여 Join 하는데 오래걸리는 것을 확인했다.
그래서 현재는 배터리 테이블에 인덱스를 적용하여 튜닝을 해놓은 상태이지만, 인덱스를 생성하는 것이 아닌 쿼리 튜닝으로도 성능을 향상시킬 수 있을거 같다는 의견이 나왔다.
하지만 팀원들이 현재 데이터 모델링에 대한 이해도가 부족하기 때문에, 각자 현재 데이터 모델링에 대해 분석하고 개선할 것이 있는지 미팅 때 논의한 후 쿼리를 튜닝해보기로 했다.
나는 각 테이블끼리의 변경되어야 할 관계가 있는지를 중심으로 데이터 모델링 분석을 진행했다. 왜냐하면 논리상 다대다 관계이어야 하는데 잘못 구성한 관계나 굳이 필요없는 관계, 반드시 필요한 관계 등을 놓치고 구현을 하게되면, 나중에 유지보수 하는 데 큰 어려움을 겪을 수 있기 때문이다.
이를 통해 현재 데이터 모델링에 대해 깊게 이해할 수 있었으며, 생각보다 많은 부분을 변경할지 말지 논의되어야 함을 느꼈다.
Elasticsearch
세미나 청강
Elasticsearch
세미나 청강전날에는 Elasticsearch가 간단하게 무엇인지와 설치하는 방법 그리고 문서 색인과 조회 등과 같은 간단한 사용법에 대해 세미나가 진행되었고, 오늘은 Elasticsearch를 모니터링하는 방법과 기본 개념에 대해 진행되었다.
Elasticsearch의 모니터링하는 방법으로 Prometheus와 Grafana를 사용하는 모니터링과 Kibana를 사용하는 모니터링 방식에 대해 알 수 있었다. 또한 Elasticsearch에서의 클러스터와 노드, 인덱스, 타입, 샤드, 세그먼트 개념에 대해서도 알 수 있었다.
Prometheus? Grafana? Kibana? - Prometheus : 모니터링 시스템 및 시계열 데이터베이스 - Grafana : 데이터 시각화 도구 - Kibana : ElasticSearch에서 색인된 데이터를 검색하고 시각화하는 도구
해당 세미나를 진행하면서 "Elasticsearch가 엄청 빠른데 왜 Elasticsearch를 사용하지 않고 RDBMS를 사용할까?" 라는 의문이 들어서 조사해본 결과, Elasticsearch는 검색 엔진이므로 관계 매핑과 트랜잭션 및 롤백을 지원하지 않기 때문에 RDB 사용한다는 것을 알게되었다.
개선 및 목표
데이터 모델링의 관계뿐만 아니라 관계를 어떻게 매핑할지나 속성의 네이밍 등과 같이 자세하게 고민할 필요가 있다.
Elasticsearch를 조사해봤을 때 Logstash와 Kibana를 같이 구성하여 애플리케이션의 로그나 시스템의 리소스 상태를 분석하는 시스템을 많이 사용한 다는 알게되어, ELK에 대해 좀 더 자세히 알아볼 필요가 있다.
Last updated