
목차1. B-트리 특징/장단점 2. B+트리 특징/장단점 3. 언제 B-트리가 유리할까? 4. 왜 데이터베이스는 B+트리를 쓸까? 5. 실제 사례 비교 (MySQL ↔ Redis) 6. 요약1. B-트리 특징/장단점 특징- 모든 노드(내부 + 리프)에 데이터 저장장점- 중간 노드에서 바로 데이터를 찾을 수 있어 단일 검색 속도 빠름- 메모리 사용 효율 높음 (리프만 따로 두지 않음)- 작은 데이터셋이나 메모리 기반 구조에 적합단점- 리프 노드들이 연결되어 있지 않아 범위 검색 비효율적2. B+트리 특징/장단점특징- 내부 노드는 인덱스만, 데이터는 리프 노드에만 저장- 리프 노드들이 연결 리스트로 연결됨장점- 범위 검색 / 순차 탐색 최적화- 내부 노드에 더 많은 키 저장 가능 → 트리 높이가 낮아짐- 대..
2의 거듭제곱소수 p의 거듭제곱4의 거듭제곱 1) 2의 거듭제곱 n > 0 && (n & (n-1)) == 02의 거듭제곱(1, 2, 4, 8, …)은 이진수로 0001, 0010, 0100, 1000 형태= 이진수 표현에서 2의 거듭제곱은 항상 1개의 비트만 켜져 있음 따라서 n과 n-1은 공통 비트가 없음 → n & (n-1) == 02) 소수 p의 거듭제곱가정: 어떤 소수 p에 대하여 표현 가능한 최대 거듭제곱을 p^k 다음 식이 성립하면 n은 반드시 p의 거듭제곱이다.n > 0 && (p^k % n == 0) 이유p^k는 소수 p의 순수 거듭제곱이므로p^k의 약수는 오직 1, p, p^2, …, p^k따라서 p^k를 나눌 수 있는 수는 p의 거듭제곱 외에는 없다소수 p최대 거듭제곱 (int 범위..

이 글은 선형 회귀로 풀고자 하는 문제를 간단히 이해하기 위해 작성했습니다.※ 참고: 1차원 선형 회귀만 다뤘습니다. 이 외에도 다양한 형태의 회귀 모델이 존재합니다. - 입력 변수가 여러 개인 다변수 회귀- 곡선 형태를 학습하는 다항 회귀 등 목차1. 선형 회귀란 무엇인가?2. 선형 회귀 한계3. 선형 회귀 수식4. 선형 회귀가 왜 필요한가?5. 선형 회귀의 핵심: 오차 최소화6. 오차를 줄이는 대표적인 방법: 경사 하강법 (Gradient Descent)7. 요약1. 선형 회귀란 무엇인가?선형 회귀(Linear Regression)는 주어진 데이터를 가장 잘 설명하는 직선 형태의 함수를 찾아, 새로운 값을 예측하는 기계학습 알고리즘입니다. 즉, 독립 변수(x)와 종속 변수(y) 사이의 선형적 관계를 ..

이 글은 3D Tiles Specification – Implicit Tiling (Cesium)을 3D GIS 엔진에 직접 적용하는 과정에서 마주친 문제들을 어떻게 해결했는지에 대한 경험을 정리한 글입니다. 깃허브 시각화 링크들어가기에 앞서안녕하세요. 이번 글에서는 전 세계 수조 개에 달하는 3D 공간 정보를 어떻게 효율적으로 관리하고 스트리밍할 수 있을까?라는 문제의식에서 출발하여, Implicit Tiling 기반의 공간 데이터 구조에 대해 소개하고자 합니다. 기존 3D GIS 엔진은 보통 모델을 '그리는 것'에는 특화되어 있었지만,정작 그 모델들을 데이터베이스처럼 체계적으로 관리하거나, 위치 기반으로 탐색하는 데에는 한계가 있었습니다. 예를 들어, "서울대입구역 8번 출구 스타벅스"의 정확한 경위..

목차1. 문제 배경: Redis가 죽은 이유2. 배경 지식: Redis의 BGSAVE와 Copy-on-Write3. 실험 목적: Copy-on-Write가 실제로 OOM을 유발하는가?4. 실험 환경: Docker 기반 Redis 컨테이너 구성5. 실험 과정: Copy-on-Write 상황 유발 및 메모리 관측6. 실험 결과: Copy-on-Write로 인한 OOM은 실제로 발생했다7. 실험을 통해 알게 된 것8. 결론9. Github 링크1. 문제 배경: Redis가 죽은 이유Redis가 예고 없이 종료될 수 있습니다.Redis의 maxmemory는 6GB로 설정되어 있었고,컨테이너의 메모리 제한은 7GB였으며,메모리 사용량이 한계에 가까운 시점에서 BGSAVE가 실행되었고,그 결과 Redis가 Out ..

들어가기에 앞서 좌측 그림은 데이터를 메모리에 선형적(Row-Major)으로 저장, 탐색하는 방식,우측 그림은 Z-order 기반으로 정사각형 블록 단위로 저장, 탐색하는 방식입니다.이 두 가지 방식의 차이가 공간 데이터 처리 성능에 어떤 영향을 미치는지 살펴보겠습니다. 현대의 지도 서비스, 자율주행 시뮬레이션, 지리 정보 시스템(GIS) 등은 방대한 공간 데이터를 실시간으로 탐색하고 처리해야 합니다.하지만 이러한 데이터를 단순히 행렬 순서(예: Row-Major)로 저장하면, 지리적으로 가까운 두 점이 메모리 상에서는 멀리 떨어져 저장될 수 있습니다. 이는 CPU 캐시 효율을 낮추고 데이터 접근 성능을 저하시키는 주된 원인이 됩니다. 이러한 문제를 해결하는 대표적인 방식이 Z-order Indexing..
- Total
- Today
- Yesterday
- child subtree availability
- z-order curve
- kernel space
- 머신러닝
- content availability
- transferto()
- cpu i/o
- z-order
- 오차 최소화
- sendfile()
- 3d tiles 1.0
- event srource
- implicit tiling
- Live BMW
- user space
- .b3dm
- bgsave
- redis
- tile availability
- redis bgsave
- event streaming
- Kafka
- Cesium
- append only
- zero-copy
- the unix timesharing system
- explicit tiling
- b3dm
- morton order
- implict titling
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |