본문 바로가기

전체 글

(52)
선형 보간법 (Linear Interpolation) 선형 보간법(Linear Interpolation) 이란?선형 보간법은 두 점 사이의 값을 추정하는 방법입니다. 이 두 점 사이에 직선을 그린 후, 직선 위의 임의의 점에서 값을 예측합니다. 쉽게 말하면, 두 지점 사이에서 값이 선형적으로(일직선 형태로) 변화한다고 가정하고, 그 사이에 있는 값들을 계산하는 방법입니다.예시로 개념 이해하기만약 어떤 사람이 2시간 동안 달렸다고 생각해봅시다.1시간 동안은 5km를 달렸고,2시간이 지났을 때는 10km를 달렸다고 가정합니다.이 두 지점 사이에 있는 1시간 30분이 지났을 때, 이 사람이 몇 km를 달렸을지 추정하려고 합니다. 이때 선형 보간법을 사용하여 그 중간 값을 쉽게 계산할 수 있습니다. 1시간에서 2시간까지 거리는 일직선으로 증가한다고 가정하고, 이 ..
[NIO] FileChannel 과 FileInput/Output Stream 과의 차이 FileChannel 은 Java의 java.nio.channels 패키지에 속하는 클래스로, 파일에서 데이터를 읽고, 쓰고, 매핑하는 기능을 제공한다. FileChannel은 입출력(I/O) 작업에 대해 더 높은 성능과 유연성을 제공하는 NIO (New Input/Output)의 핵심 요소 중 하나이다. 이 클래스는 버퍼와 채널을 사용하여 파일의 데이터를 직접 조작할 수 있는 메커니즘을 제공하여, 기존의 FileInputStream, FileOutputStream, RandomAccessFile 등을 통한 데이터 처리 방식보다 더 효율적인 작업이 가능하다. FileChannel의 주요 역할 읽기 및 쓰기 작업: FileChannel을 통해 파일의 특정 위치에서 데이터를 읽거나 쓸 수 있다. 이를 통해 ..
LSM Tree Compaction (Leveled Compaction) LSM tree 는 주기적인 compaction 을 통해 꾸준히 증가하는 disk 의 table 수를 줄이며, 중복된 키에 대한 조정 작업을 수행한다. compaction 은 병합과 조정 알고리즘을 사용해 전체 record 를 순회하고 결과를 새로 생성한 테이블에 저장한다. LSM tree 의 구조상 disk 에 쓰여져 있는 SSTable 의 record 는 정렬되어 있고, merge sort algorithm 의 특성상 iterator 의 head 만 memory 에 저장하기 때문에 memory 사용량 상한이 존재한다. 이러한 compaction 과정을 최적화 하기 위해 널리 알려진 방법중에 하나가 leveled compaction 이다. Merge - Interation Leveled Compacti..