[java] 자바 소켓 프로그래밍에서의 데이터 압축과 압축 해제
이 글에서는 자바 소켓 프로그래밍에서 데이터를 압축하고 압축을 해제하는 방법에 대해 알아보겠습니다.
데이터 압축
데이터를 전송하기 전에 압축하는 것은 대역폭을 절약하고 전송 시간을 단축하는 데 도움이 됩니다. 자바에서는 java.util.zip
패키지를 사용하여 데이터를 압축할 수 있습니다. 아래는 압축하기 위한 예제 코드입니다.
import java.io.*;
import java.util.zip.*;
public class DataCompressor {
public static byte[] compressData(byte[] input) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (GZIPOutputStream gzipOut = new GZIPOutputStream(baos)) {
gzipOut.write(input);
}
return baos.toByteArray();
}
}
위의 코드는 GZIPOutputStream
을 사용하여 데이터를 압축합니다.
데이터 압축 해제
전송된 압축 데이터를 받은 후에는 압축을 해제해야 합니다. 자바에서는 java.util.zip
패키지를 사용하여 데이터를 압축 해제할 수 있습니다. 아래는 압축을 해제하는 예제 코드입니다.
import java.io.*;
import java.util.zip.*;
public class DataDecompressor {
public static byte[] decompressData(byte[] input) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (ByteArrayInputStream bais = new ByteArrayInputStream(input);
GZIPInputStream gzipIn = new GZIPInputStream(bais)) {
byte[] buffer = new byte[1024];
int len;
while ((len = gzipIn.read(buffer)) > 0) {
baos.write(buffer, 0, len);
}
}
return baos.toByteArray();
}
}
위의 코드는 GZIPInputStream
을 사용하여 데이터를 압축 해제합니다.
이제 데이터를 압축하고 압축을 해제하는 방법에 대해 알았습니다. 이러한 기술은 네트워크 프로그래밍에서 대역폭을 절약하고 전송 시간을 단축하는 데 유용합니다.
더 자세한 정보는 Oracle Java Documentation를 참조하시기 바랍니다.