We-Co

[Python] 문자열 압축 - zlib 라이브러리를 활용해보자! 본문

Python

[Python] 문자열 압축 - zlib 라이브러리를 활용해보자!

위기의코딩맨 2024. 2. 26. 14:13
반응형

안녕하세요. 위기의 코딩맨입니다.

오늘은 데이터를 전송할 때, 용량을 줄이기 위한 라이브러리를 포스팅해보려 합니다.

python

 

예를들면 길이가 3만 바이트 이상되는 문자열을 서버로 전송한다고 생각해봅시다.

그러나 서버에서는 2천 바이트 이상은 부하가 걸릴 것 같아서 받지 않도록 했습니다.

 

그러면 3만 바이트를 나눠서 15번 보내야할까요??? ㅎㅎㅎ

zlib 를 사용하시면 됩니다.

 

 

[ zlib ]

바로 예제를 풀어보도록 하겠습니다.

import zlib

data_ = 'hi, my name is OOO' * 2000
print(len(data_))

 

위의 출력값으로는 3만6천이 출력됩니다.

zlib의 compress 함수를 통해서 압축할 정보를 encoding을 진행해서 넣어주도록 합니다.

c_data = zlib.compress(data_.encode(encoding ='utf-8'))
print(len(c_data))

 

 

 

해당 출력값은 132가 출력됩니다.

엄청나게 용량이 줄어든 것을 확인할 수 있습니다.

그러나 용량만 줄고 압축되면 의미가 없죠? 

다시 풀어서 길이를 확인해보도록 하겠습니다.

d_data = zlib.decompress(c_data).decode('utf-8')
print(len(d_data))

 

compress를 적용한 데이터를 다시 decompress 함수를 사용해서

decode를 진행해서 길이를 출력했습니다.

해당 출력 값은 처음은 3만 6천줄이 출력되는 것을 확인할 수 있습니다.

 

해당 방식을 사용하면 전송하는 데이터, 저장 데이터의 용량을 보다 쉽게 관리할 수 있을것 같습니다.

반응형