[java] Apache Commons Codec를 이용한 GZIP 압축 예제

Apache Commons Codec는 GZIP 압축을 쉽게 처리할 수 있는 유용한 도구입니다. 이 예제에서는 Apache Commons Codec를 사용하여 텍스트 데이터를 GZIP 형식으로 압축하는 방법을 보여줍니다.

먼저, Apache Commons Codec를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 아래의 의존성을 추가합니다.

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.15</version>
</dependency>

그런 다음, 다음과 같은 코드를 사용하여 텍스트 데이터를 GZIP 형식으로 압축할 수 있습니다.

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.StringUtils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

public class GzipCompressionExample {

    public static void main(String[] args) throws IOException {
        String input = "This is a sample text to be compressed using GZIP.";

        // 문자열을 바이트 배열로 변환
        byte[] inputBytes = StringUtils.getBytesUtf8(input);

        // GZIP 압축을 위해 버퍼 지정
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        GZIPOutputStream gzipStream = new GZIPOutputStream(byteStream);

        // 원본 데이터를 GZIP으로 압축
        gzipStream.write(inputBytes);
        gzipStream.close();

        // 압축된 데이터를 Base64로 인코딩
        byte[] compressedBytes = byteStream.toByteArray();
        String base64Encoded = Base64.encodeBase64String(compressedBytes);

        System.out.println("Compressed and encoded output: " + base64Encoded);
    }
}

이 코드는 주어진 문자열을 GZIP 형식으로 압축한 다음, 압축된 데이터를 Base64로 인코드하여 출력합니다.

위의 예제에서는 Apache Commons Codec의 Base64StringUtils 클래스를 사용하여 데이터를 인코드하고 디코드할 수 있습니다.

Apache Commons Codec 공식 문서에는 더 많은 정보와 유용한 기능들이 있으니 참고하시기 바랍니다.

Apache Commons Codec는 텍스트뿐만 아니라 바이너리 데이터의 인코딩/디코딩에도 사용될 수 있으므로 유용한 도구입니다. GZIP 압축 외에도 여러 다른 유형의 인코딩/디코딩 작업을 지원합니다.