온라인 데이터 압축 시뮬레이터
텍스트를 입력하여 허프만 코딩 결과와 비트 수를 확인하세요. 교육용 압축 시뮬레이터로 원본 UTF-8 비트와 페이로드 비트를 비교합니다. 처리는 브라우저에서 로…
사용 시작
기능 및 예시
이 시뮬레이터는 텍스트의 문자 빈도를 기반으로 허프만 트리를 만들어 각 문자에 가변 길이 코드를 할당합니다. 예를 들어 ABBC를 입력하면 원본 UTF-8 비트 수는 32비트이고, 허프만 페이로드 비트 수는 6비트로 계산됩니다. 이는 압축의 개념을 이해하는 데 도움이 됩니다.
실제 동작 방식
문자 빈도에 따라 두 개의 가장 낮은 빈도 노드를 결합하여 트리를 구성합니다. 단일 문자만 있는 경우 코드는 0이 됩니다. 빈도가 같으면 코드가 달라질 수 있지만, 가중 비트 길이가 비교 기준입니다.
주의할 점
- 공백, 줄 바꿈, 대소문자, 결합 문자는 서로 다른 코드 포인트로 취급됩니다.
- 이모지 시퀀스는 여러 코드 포인트를 포함할 수 있습니다.
- JSON 표기에서 줄 바꿈은 이스케이프 시퀀스로 표시될 수 있습니다.
- 페이로드 비트 수는 코드북, 트리, 헤더, 패딩 등을 제외한 값으로 실제 파일 크기가 아닙니다.
- 입력 한도는 100,000 JavaScript UTF-16 코드 유닛이며, UTF-8 바이트나 사용자 인식 문자 수가 아닙니다.
자주 묻는 질문
Q1: 결과의 비트 수가 실제 압축 파일 크기인가요?
아니요. 페이로드 비트 수는 허프만 코드만의 길이로, 코드북이나 트리 등 오버헤드가 제외되어 실제 압축 파일 크기와 다릅니다. 특히 짧은 텍스트에서는 압축률이 보장되지 않습니다.
Q2: 입력 텍스트에 숫자나 날짜를 넣으면 어떻게 되나요?
모든 문자는 데이터로 처리되며 숫자나 날짜 형식으로 해석되지 않습니다. 예를 들어 123은 세 개의 문자로 처리됩니다.
Q3: 결과 목록이 너무 길면 어떻게 하나요?
다양한 문자가 많으면 출력 목록이 길어질 수 있습니다. 작은 샘플로 테스트하거나 입력을 줄이는 것이 좋습니다. 결과는 브라우저에서 즉시 계산되지만, 큰 입력에서는 시간이 걸릴 수 있습니다.
처리는 브라우저에서 로컬로 수행됩니다.