AVL 트리 (AVL Tree)

컴퓨터과학·AI
한 줄 정의: 왼쪽과 오른쪽 하위 트리의 높이 차이를 항상 1 이하로 유지하도록 스스로 균형을 맞추는 이진 탐색 트리입니다.

쉽게 풀면

이진 탐색 트리는 값을 순서대로 계속 넣다 보면 한쪽으로만 길게 늘어져 사실상 일렬로 늘어선 목록처럼 되어버릴 수 있습니다. 그러면 탐색 속도가 느려집니다. AVL 트리는 마치 저울 양쪽에 물건을 올릴 때 한쪽이 너무 무거워지지 않도록 계속 조정하듯, 값이 추가되거나 삭제될 때마다 양쪽 가지의 높이 차이를 확인하고 차이가 커지면 가지를 회전시켜 다시 균형을 잡습니다. 그 덕분에 어떤 순서로 값을 넣어도 탐색 시간이 항상 로그 시간 수준으로 유지됩니다.

왜 중요한가

탐색, 삽입, 삭제 연산의 시간 복잡도가 자료구조의 형태에 따라 크게 달라지기 때문에, 데이터가 계속 바뀌는 환경에서도 성능을 안정적으로 보장하는 방법은 알고리즘·시스템 분야 전반의 핵심 주제입니다. AVL 트리는 자가 균형 트리의 원조 격 구조로, 데이터베이스 색인, 메모리 관리, 컴파일러의 심볼 테이블처럼 삽입과 삭제가 잦으면서도 탐색 속도가 중요한 시스템 설계 논문에서 비교 기준(baseline)으로 자주 등장합니다. 또한 균형 유지 전략 자체가 이후 등장한 레드-블랙 트리, B-트리 등 다양한 균형 트리 연구의 출발점이 되었다는 점에서도 자주 언급됩니다.

논문에서는 이렇게 쓰입니다

"빈번한 삽입과 삭제가 발생하는 색인 구조에서도 탐색 성능을 O(log n)으로 보장하기 위해 AVL 트리(AVL tree)를 기반 자료구조로 채택하였다."

이 문장은 데이터가 계속 추가되고 지워지는 환경에서도 트리가 한쪽으로 치우치지 않도록 자동으로 균형을 맞춰, 검색 성능이 항상 일정하게 유지되도록 설계했다는 뜻입니다. 자료구조 및 색인 시스템을 다루는 논문에서 자주 인용됩니다.

"제안하는 공간 색인 기법은 하위 계층에서 AVL 트리를 사용해 범위 질의(range query) 처리 시에도 일정한 탐색 성능을 유지하도록 하였다."

지리정보시스템이나 공간 데이터베이스처럼 좁은 범위의 값을 반복적으로 검색해야 하는 상황에서도, AVL 트리의 균형 특성 덕분에 최악의 경우에도 성능이 크게 떨어지지 않는다는 점을 강조하는 문장입니다.

"실시간 임베디드 환경에서의 예측 가능한 응답 시간을 확보하기 위해, 해시 테이블 대신 AVL 트리 기반의 균형 탐색 구조를 채택하였다."

해시 테이블은 평균적으로는 빠르지만 충돌이 몰릴 경우 성능이 들쭉날쭉해질 수 있습니다. 이 문장은 그런 불확실성 대신, AVL 트리처럼 균형이 항상 보장되는 구조를 택해 응답 시간을 예측 가능하게 만들었다는 의미로, 실시간 시스템·임베디드 소프트웨어 논문에서 볼 수 있는 표현입니다.

조금 더 깊게 보면

AVL 트리에서 균형을 판단하는 핵심 지표는 각 노드의 '균형 인수(balance factor)'로, 왼쪽과 오른쪽 하위 트리 높이의 차이를 의미하며 이 값이 -1, 0, 1 범위를 벗어나면 불균형으로 간주합니다. 불균형이 발생하면 노드를 중심으로 좌회전(left rotation)이나 우회전(right rotation), 또는 이 둘을 조합한 회전을 수행해 균형을 되찾는데, 논문에서는 이 회전 연산의 횟수나 비용을 성능 지표로 함께 언급하는 경우가 많습니다. 논문을 읽을 때는 저자가 단순히 '균형 트리'라고만 서술하는지, 아니면 AVL 트리처럼 균형 조건이 엄격한 구조인지, 레드-블랙 트리처럼 조건이 다소 느슨한 구조인지를 구분해서 보는 것이 실제 성능 트레이드오프를 이해하는 데 도움이 됩니다.

주의할 점

AVL 트리는 레드-블랙 트리와 함께 대표적인 자가 균형 이진 탐색 트리로 소개되지만 둘이 같은 것은 아닙니다. AVL 트리는 균형 조건이 더 엄격해 탐색은 조금 더 빠른 대신, 삽입·삭제 시 회전이 더 자주 일어나 갱신 비용이 상대적으로 큽니다.

관련 용어