모듈 zlib
zlib는 gzip, deflate 및 zlib와 같은 다양한 압축 형식과 모드를 지원하는 내장 압축 모듈입니다.
zlib는 주로 다음 세 가지 기능으로 구성됩니다.
- deflate: 압축된 데이터;
- inflate: 데이터 압축을 푼다.
- gzip: gzip 압축 형식입니다.
zlib을 사용하기 전에 사용해야 하는 압축 알고리즘에 따라 둘 중 하나를 선택해야 합니다. 해당 압축 알고리즘을 선택하려면 zlib의 상수를 참조할 수 있습니다. 예를 들어, 모듈 설명을 위해 deflate 압축 알고리즘을 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const zlib = require('zlib');
const {
NO_COMPRESSION,
BEST_SPEED,
BEST_COMPRESSION,
DEFAULT_COMPRESSION
} = require('zlib');
// compress data
const deflated = zlib.deflate('hello, world', BEST_SPEED);
console.log(deflated.toString());
// decompress data
const inflated = zlib.inflate(deflated);
console.log(inflated.toString());
위의 코드는 데이터를 압축하고 푸는 방법을 보여주며, 먼저 문자열을 zlib.deflate
압축하는 방법을 사용하고, 압축 수준 옵션으로 전달한 후, 데이터의 압축을 푸는 방법을 사용합니다. 출력 결과는 원본 문자열과 동일해야 합니다. .hello, world
BEST_SPEED
zlib.inflate
zlib.deflate
둘 zlib.inflate
다 압축 수준 정의를 지원합니다. 압축 수준은 값 범위의 숫자입니다 [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]
. 기본값은 입니다 DEFAULT_COMPRESSION
. 이 네 가지 압축 수준의 의미는 다음 표를 참조하세요.
압축 수준 | 의미 |
---|---|
zlib.NO_COMPRESSION | 압축되지 않은 데이터(압축 헤더 완성 지원) |
zlib.BEST_SPEED | 압축 속도는 가장 빠르지만 이에 따라 압축률이 더 나빠집니다. |
zlib.DEFAULT_COMPRESSION | 압축 알고리즘의 기본값에 따르면 일반적으로 BEST_SPEED보다 느리지만 압축률은 더 높습니다. |
zlib.BEST_COMPRESSION | 압축률은 가장 높지만 그에 따라 압축 속도도 느려집니다. |
모듈을 사용할 zlib
때 주의해야 할 점 은 데이터를 압축하고 압축을 동시에 풀려면 모듈을 사용하여 deflate
먼저 데이터를 압축한 다음 inflate
데이터를 압축 해제하는 데 사용하여 오류를 방지하는 것이 좋습니다. 다양한 압축 형식과 알고리즘의 경우 압축 및 압축 해제를 위한 다른 클래스와 메서드가 있으며, 다음 문서를 참조하여 사용할 수 있습니다.
정적 함수
createDeflate
수축 스트림 객체 생성
1static Stream zlib.createDeflate(Stream to);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createDeflateRaw
deflateRaw 스트림 객체 생성
1static Stream zlib.createDeflateRaw(Stream to);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createGunzip
gunzip 스트림 객체 생성
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createGzip
gzip 스트림 객체 생성
1static Stream zlib.createGzip(Stream to);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createInflate
팽창 스트림 객체 생성
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createInflateRaw
inflateRaw 스트림 객체 생성
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
deflate
deflate 알고리즘을 사용하여 데이터 압축(zlib 형식)
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
결과 반환:
- Buffer, 압축된 이진 데이터를 반환합니다.
deflateTo
deflate 알고리즘을 사용하여 데이터를 스트림 객체(zlib 형식)로 압축합니다.
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
deflate 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 객체(zlib 형식)로 압축합니다.
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
inflate
deflate 알고리즘(zlib 형식)으로 압축된 데이터 압축 해제
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축된 데이터가 주어지면
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Buffer, 압축이 풀린 이진 데이터를 반환합니다.
inflateTo
deflate 알고리즘으로 압축된 데이터를 스트림 객체(zlib 형식)로 압축 해제
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축을 풀 데이터가 주어지면
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
소스 스트림에서 deflate 알고리즘으로 압축된 데이터를 스트림 객체(zlib 형식)로 압축 해제
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
gzip
gzip 알고리즘을 사용하여 데이터 압축
1static Buffer zlib.gzip(Buffer data) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
결과 반환:
- Buffer, 압축된 이진 데이터를 반환합니다.
gzipTo
gzip 알고리즘을 사용하여 데이터를 스트림 객체로 압축
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
호출 매개변수:
gzip 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 개체로 압축합니다.
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
호출 매개변수:
gunzip
gzip 알고리즘으로 압축된 데이터 압축 해제
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축된 데이터가 주어지면
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Buffer, 압축이 풀린 이진 데이터를 반환합니다.
gunzipTo
gzip 알고리즘으로 압축된 데이터를 스트림 객체로 압축 해제
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축을 풀 데이터가 주어지면
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
소스 스트림의 gzip 알고리즘으로 압축된 데이터를 스트림 객체로 압축 해제
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
deflateRaw
deflate 알고리즘(deflateRaw)을 사용하여 데이터 압축
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
결과 반환:
- Buffer, 압축된 이진 데이터를 반환합니다.
deflateRawTo
deflate 알고리즘을 사용하여 데이터를 스트림 객체로 압축합니다(deflateRaw).
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
deflate 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 객체(deflateRaw)로 압축합니다.
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
inflateRaw
deflate 알고리즘(inflateRaw)으로 압축된 데이터 압축 해제
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축된 데이터가 주어지면
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Buffer, 압축이 풀린 이진 데이터를 반환합니다.
inflateRawTo
deflate 알고리즘으로 압축된 데이터를 스트림 객체(inflateRaw)로 압축 해제
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축을 풀 데이터가 주어지면
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
소스 스트림의 deflate 알고리즘으로 압축된 데이터를 스트림 객체(inflateRaw)로 압축 해제
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
끊임없는
NO_COMPRESSION
압축 수준을 낮추고 압축하지 않도록 설정
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
압축 수준을 낮추고 가장 빠른 압축을 설정합니다.
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
압축 수준을 낮추고 가장 높은 압축을 설정하십시오.
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
압축 수준을 낮추고 기본 설정을 지정합니다.
1const zlib.DEFAULT_COMPRESSION = -1;