본문 바로가기
백엔드개발지식

[네트워크] Snappy에 대해 알아보자

by 세류오 2026. 1. 10.

https://techblog.musinsa.com/%EC%9D%B4%EA%B5%AC%EC%9C%84%ED%81%AC-%EC%A0%84%EC%8B%9C-%EC%9E%A5%EC%95%A0-%EB%8C%80%EC%9D%91%EA%B8%B0-redis%EC%97%90%EB%8A%94-%EB%AC%B4%EC%8A%A8-%EC%9D%BC%EC%9D%B4-%EC%9E%88%EC%97%88%EB%82%98-5599562d76b9
무신사 글을 읽다가 Snappy압축 알고리즘에 대해 궁금증이 들어 찾아본 내용을 정리하는 글이다.

[Snappy의 한 줄 정리]

Snappy는 압축률보다 압축속도를 극단적으로 우선하는 초고속 압출알고리즘이다.
이말인 즉 최대한 작게 만드는 것이 아닌 최대한 빨리 압축, 최대한 빨리 압축해제하는데 더 장점이 있다는 뜻이다.

[왜 Snappy가 만들어졌는가?]

Snappy는 기존 알고리즘들이 가지고 있는 물제들을 해결하기 위해 만들어졌다.
기존 압축 알고리즘의 문제는 다음과 같다.
- gzip: 압축률은 좋지만 압축속도가 느림
- zlib: 범용성이 좋지않으며 CPU를 많이 사용한다
- LZMA: 압축률이 매우 좋으나 그만큼 압축속도가 느림
Snappy는 이러한 기존 압축률을 높혀야하는 환경이 아닌
대용량 데이터를 계속 주고받는 환경에서 사용하기 위해 만들어졌다.
- Snappy: 압축률은 낮지만 압축속도와 압축해제 속도가 좋음

[Snappy의 특징은 무었인가?]

☑️ 엄청빠르다
압축 및 해제 속도가 gzip대비 수배 빠름
특히 해제속도가 매우 빠르다
이는 곧 실시간 처리 및 스트리밍에 최적이라는 뜻이다.

☑️ 압축률은 낮은 편
압축속도가 다른 알고리즘(gzip, zstd...등)에 비해 압축률이 낮다

☑️ CPU친화적
Snappy는 복잡한 연산이 거의 없기 때문에 GC에 대한 압박이 줄어든다
이는 곧 서버 안정성에 매우 유리하다는 뜻이다.

☑️ 스트리밍, 블록 처리에 강함
데이터를 블록 단위로 바로 압축, 해제 한다.
이러한 속성으로 Kafka등에서 자주 사용되고 있다.

☑️ 압축 실패가 거의 없다
압축연산이 복잡하지 않기때문에 대부분 압축가능하다

[Snappy는 주로 어디서 쓰이는가?]

자주 사용되는 곳 중 하나는 Kafka이다.
Kafka는 지속적으로 초당 수십만에서 수백만의 메시지를 처리해야한다.
이는 실시간으로 소비되는데 멈춤현상이 있어선 안되기 때문에 압축속도와 해제속도가 빠른 Snappy를 사용하는 것이 더 이득이다.