B-tree
이진트리를 확장한 자료구조로, n개의 자식을 가질 수 있어 적은 횟수로 많은 데이터를 탐색할 수 있습니다.
B-tree에서 추가로 확장되어 부모는 키만 가지고, 자식 노드만 데이터를 보유하며 Linked list 구조를 가지는 B+ tree가 있습니다.
B+ tree는 데이터 조회 성능이 우수해 실제로 DB 자료구조로 많이 사용됩니다.
Hash table
키를 해시함수로 변환하여 인덱스로 삼아 데이터를 저장하는 자료구조입니다.
보통 O(1)
의 시간복잡도를 가지며, 데이터 조회 속도가 매우 빠르지만 해시 충돌의 위험이 있습니다.
해시 충돌을 피하기 위해 Linked list 구조를 사용하거나, 추가 연산을 사용할 수 있습니다.
EDA
Exploratory Data Analysis의 약자로, 데이터를 여러 방면에서 분석하여 가설이나 패턴을 찾는 과정을 말합니다.
N+1 Query
DB 쿼리를 실행할 때 가지고 있는 연관관계까지 조회하게 되면서 N번의 추가적인 쿼리가 발생하는 문제를 말합니다.
Eager Loading을 사용할 수 있지만 근본적인 해결은 아니며, JOIN 문 등 쿼리 최적화 기법을 사용해서 해결하는 것이 좋습니다.
Serverless
개발자가 서버를 직접 관리하지 않고도 앱을 개발하고 실행할 수 있는 구조입니다. AWS Lambda가 가장 대표적인 서비스입니다.
사용량에 따라 자동으로 확장되며, 사용한 만큼만 비용을 지불할 수 있습니다.
하지만 디버깅이 상대적으로 어려워지고, Cold start 문제가 있어 지연 시간에 민감한 서비스에는 적합하지 않습니다.