[B+Tree/BTree/BST/Hash Table] 인덱스에서 B+Tree를 사용하는 이유
·
Computer Science/Data Structure
DB 설계에서 가장 중요한 인덱스에 대해서 아는게 너무 없는 것 같아 개인적으로 공부한 내용들이다.  데이터 구조인덱스는 왜 B+Tree를 사용하고 있을까? 이 질문에 대한 해답을 찾기에 앞서, 탐색에 용이한 데이터 구조들과 특징들에 대해 살펴보자. Binary Search Tree(BST) 이진 탐색 트리(Binary Search Tree, BST)는 이진 탐색과 연결 리스트(Linked List)의 장점을 결합한 자료구조이다.이진탐색장점: 탐색에 소요되는 시간복잡도가 O(log N)으로 빠르다.연결 리스트장점: 자료 입력, 삭제에 필요한 시간 복잡도가 O(1). (하지만 맨 앞 또는 맨 뒤의 데이터에 대해서만 시간 복잡도가 O(1)이고 특정 노드 다음에 삽입, 삭제가 이루어지는 경우에는 O(n+1) ..
[실수(Real Number)] 부동 소수점과 오차
·
Computer Science/Data Structure
실무에서 소수점을 중요하게 다루는 작업이 많이 이뤄진다. 실수 계산의 정확도가 떨어지는 경우를 발견하고, 해결하는 작업을 하면서 다시금 부동 소수점에 대해 공부를 하게 되었고 이를 정리한 글이다. 컴퓨터는 0과 1로 이루어진 기계어를 사용한다. 인간은 수를 표현할 때 기본적으로 10진법을 사용하지만, 컴퓨터는 0과 1을 사용한 2진법을 사용한다. 그러므로 컴퓨터가 수를 표현하는 법에 대해서 얘기하려면 10진수를 2진수로 바꾸는 방법에 대해 알아둘 필요가 있다. 이진 기수법 0, 1, 10, 11, 100, 101, 110, 111, 1000, ... 이런 식으로 10진수 기준으로 2가 나올 차례가 되면 2를 쓰는 대신 자릿수를 늘려주는 것이다. 10진수에서는 10^n에 해당하는 수가 될 때마다 자릿수가 ..