TECH 으로 돌아가기
TECH HACKER NEWS 2026.11.03 04:07 8분 읽기 30 READS

Raph Levien의 Nibnib — 압축 해제 속도에 올인한 이미지 포맷이 왜 필요할까

Raph Levien의 Nibnib — 압축 해제 속도에 올인한 이미지 포맷이 왜 필요할까
SOURCE IMAGE · HACKER NEWS
Raph Levien의 Nibnib — 압축 해제 속도에 올인한 이미지 포맷이 왜 필요할까

무슨 일이 있었나요

Rust 그래픽스 생태계에서 잘 알려진 Raph Levien이 GitHub에 Nibnib이라는 이미지 압축 프로젝트를 공개했어요. 한 줄 소개는 “극단적인 압축 해제 속도를 가진 이미지 압축”이에요.

Raph Levien이 낯선 분들을 위해 소개하면, 구글 시절 텍스트 에디터 프로젝트 xi-editor를 시작했던 사람이에요. 지금은 Rust 그래픽스·GUI 커뮤니티인 Linebender를 이끌면서, GPU로 2D 벡터 그래픽을 그리는 렌더러 Vello와 Rust GUI 프레임워크 Xilem 같은 프로젝트를 하고 있어요. 폰트 렌더링, 곡선 수학, GPU 컴퓨트 분야에서는 손꼽히는 전문가죠. 그래서 이 사람이 이미지 포맷을 만들었다는 건, UI를 빠르게 그리려다 보니 기존 포맷으로는 부족한 지점이 보였다는 신호로 읽을 수 있어요.

> 아직 초기 단계 프로젝트로 보여요. 정확한 포맷 스펙, 손실/무손실 여부, 벤치마크 수치는 저장소 README에서 직접 확인해 보세요. 이 글은 이런 포맷이 왜 필요하고 어떤 위치에 있는지를 중심으로 풀어볼게요.

압축 해제 속도가 왜 그렇게 중요할까

이미지 포맷을 평가할 땐 보통 세 가지를 봐요. 압축률(파일이 얼마나 작아지나), 인코딩 속도(압축하는 데 얼마나 걸리나), 디코딩 속도(다시 풀어서 화면에 쓸 수 있게 만드는 데 얼마나 걸리나). 셋을 다 잡기는 어려워서 포맷마다 우선순위가 달라요.

웹 이미지는 압축률이 1순위예요. 네트워크로 받아야 하니까 몇 KB라도 줄이는 게 중요하죠. 그런데 앱, 게임, 데스크톱 UI처럼 이미 로컬 디스크나 메모리에 있는 이미지를 빠르게 띄워야 하는 상황은 달라요. 아이콘 수백 개, 썸네일 수천 장을 스크롤하며 보여줘야 하는데, 디코딩이 느리면 그대로 버벅임이 되거든요. NVMe SSD 덕분에 디스크 읽기는 초당 몇 GB까지 빨라졌어요. 하지만 PNG 디코더는 그 속도를 못 따라가요. 병목이 I/O에서 CPU의 압축 해제로 옮겨온 거예요.

PNG가 느린 이유는 내부에서 DEFLATE(zip과 같은 압축 방식)를 쓰기 때문이에요. 여기 들어가는 허프만 코딩은 “자주 나오는 값은 짧게, 드문 값은 길게” 적는 방식이에요. 압축률엔 좋지만, 풀 때는 비트를 하나씩 읽으며 분기해야 해서 CPU가 병렬로 처리하기 어려워요.

이런 포맷은 보통 어떻게 빨라질까

Nibnib의 구현은 저장소를 봐야 정확히 알 수 있어요. 다만 디코딩 속도를 극대화하려는 포맷들이 흔히 쓰는 전략은 꽤 정해져 있어요.

마무리

한 줄 정리: 디스크가 빨라진 지금, 이미지의 병목은 ‘크기’에서 ‘푸는 속도’로 옮겨가고 있어요.

여러분 서비스에서 이미지 디코딩이 병목이었던 적이 있나요? 압축률과 디코딩 속도 중 하나만 골라야 한다면, 어떤 상황에서 어느 쪽을 고르시겠어요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/raphlinus/nibnib
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...