GZIP(Gnuzip)

안녕하세요 소프트랩입니다.웹사이트 랜더링 속도와 기능면에서 이점을 갖기 위한 다양한 방법이 존재합니다~! 오늘은 그중 Gzip에 대해 알아보겠습니다.

gzip이란

Gzip이란 GNUzip의 약자로 GNU는 쉽게 소프트웨어 컬렉션이고 Gzip은 그 라이선스를 받은 파일 압축 애플리케이션 소프트웨어입니다.웹사이트의 성능 개선을 위한 노력은 그 시대에도 있었지만 1992년 10월에 첫 번째 버전의 Gzip이 그 해결책 중 하나였습니다!!Gzip은 일반 ZIP 파일처럼 DEFLATE 알고리즘을 따르지만 여러 파일을 하나의 파일로 압축할 옵션이 없다는 점에서 차이가 있다고 합니다.일반적으로 Gzip은 Tar(파일 포맷)와 함께 사용되는데 파일 간의 중복 부분을 압축해 주기 때문입니다.tar.gz 파일이 .zip 파일과 알고리즘은 같지만 용량은 더 적다고 합니다!

일반 http://t. 통신으로 수신하는 데이터량이 압축되어 전달되면 속도도 그만큼 빨라지겠죠?

Gzip 원리 우리 웹사이트는 이미지(예를 들어 이미지도 색상을 코드로 읽습니다.)를 제외하고 html, css, javascript 등 모두 텍스트로 구성되어 있습니다. Gzip에서 읽는 텍스트 같은 것은 아니지만…) Gzip의 DEFLATE 알고리즘은 텍스트를 길게 직렬로 해서 앞부분에 일치하는 가장 긴 문자열을 찾는데, (뒤에 있는 데이터에서 앞에 있는 데이터를 확인한다고 해서 lookahead라고 합니다.일치하는 문자열의 위치와 길이로 대체하여 일치하지 않는 첫 번째 문자를 출력, 반복하지 않는 1과 0의 비트로 나타내 압축한다고 합니다!

여담이지만 이런 DEFLATE 알고리즘으로 만들어진 압축 이미지에는 png이 있다고 하네요.PNG는 무손실 압축 jpg는 다른 식으로 압축되고 손실 압축된 이미지 파일 포맷이래요!

알고리즘에 대해서는 다음으로 넘어가 사용자 경험 부분에 대해 살펴보겠습니다!보통 웹사이트의 http://t. 통신에 대해 살펴보면 사용자(클라이언트)가 요청을 보내면 서버가 읽고 데이터에 응답해 줍니다. 그리고 브라우저 화면으로 보여주는 겁니다!

Gzip을 사용한 통신은 사용자가 서버에 요청을 보내기 전까지는 동일합니다! 하지만 서버에서 하는 일이 조금 다릅니다. Gzip은 그 설정에 따라 사용자가 요청한 데이터만 압축해서 보낼 수도 있고 미리 저장해둔 데이터를 보낼 수도 있습니다.압축된 파일은 서버에서 브라우저로 전송될 때가 훨씬 가볍죠?그리고 받은 압축 파일은 브라우저가 압축 해제하여 사용자에게 보여주는 것입니다.요즘 우리가 사용하는 브라우저는 대부분 Gzip이 내장되어 있습니다!! WOW!!

Gzip 사용법은 크게 3가지가 있습니다.

  1. 아파치(Apache)나 엔진엑스(Nginx) 같은 웹서버에서 처리 2. 톰캣이나 Weblogin 같은 웹애플리케이션서버(WAS)에서 처리 3. 정적인 파일을 미리 압축

Gzip은 무조건 되나? 그건 또 아니래요. 사용자 경험에 있어서 데이터 전송은 신속하게 처리되지만 압축과 해제는 사용자 컴퓨터의 CPU가 이용되기 때문에 압축할 파일의 크기가 너무 작으면 오히려 느려진다고 합니다.

그리고 최근에는 Bzip2, XZ 등 다양한 대체품이 나오고 있어 상황에 따라 다른 이점을 제공하고 있다고 합니다.압축 해제 시간이 가장 짧은 것은 Gzip, 압축률이 가장 높은 것은 XZ, 압축률과 처리 속도의 균형이 다른 두 가지보다 좋은데 압축 해제 속도가 가장 느린 Bzip2 정도로 요약할 수 있습니다.

사실 이 세 가지가 큰 차이는 없지만 스토리지 용량이나 처리 속도 등 어떤 것에 중심을 두느냐에 따라서 선택하면 될 것 같습니다.

어떠셨나요?오늘은 함께 웹사이트 성능 향상을 위한 데이터 압축 소프트웨어 Gzip에 대해 이야기했습니다.사용자 경험이 중요해지면서 웹사이트 처리 속도가 정말 중요해졌어요.요즘 로드 시간이 3초 이상 가는 걸 참는 사람도 별로 없잖아요.ㅋㅋㅋ 만약 당신의 웹사이트가 느리다면 데이터 용량을 압축해 보는건 어때요??지금까지 소프트랩입니다. 감사합니다。

error: Content is protected !!