JPG만 고집하는 서비스는 1년 안에 인프라 비용 폭탄을 맞게 됩니다

JPG만 고집하는 서비스는 1년 안에 인프라 비용 폭탄을 맞게 됩니다

박준혁·2026년 2월 1일·3

이미지 포맷 최적화가 인프라 비용에 미치는 영향과 최신 AVIF v1.2.0 사양의 실용적 가치를 백엔드 엔지니어의 관점에서 설명합니다.

솔직히 말해서, 제가 처음 청주에서 개발을 시작했을 때 이미지 포맷 따위는 안중에도 없었습니다. 연봉 1,800만 원 받으면서 월급 밀릴 걱정하기 바쁜데, 사용자가 올린 이미지가 PNG인지 JPG인지가 뭐가 중요했겠습니까. 그냥 서버에 파일이 올라가기만 하면 다행이라고 생각했죠. 그런데 트래픽이 터지는 서비스를 맡고, 백엔드 리드로 일하면서 AWS 고지서를 받아보니 정신이 번쩍 들더군요. 네트워크 이그레스(Egress) 비용, 그거 장난 아닙니다. 우리가 짠 코드 로직보다 이미지 한 장의 용량이 회사의 순이익을 더 많이 갉아먹고 있었습니다. 그래서 저는 후배들에게 항상 말합니다. "개발 잘하는 척하고 싶으면 클린 코드 타령하기 전에 트래픽 비용부터 줄여라."

최근 AOMedia에서 AVIF v1.2.0 사양을 발표했습니다. 아마 대부분의 주니어 개발자들은 "그게 나랑 무슨 상관인데요?"라고 묻고 싶을 겁니다. 하지만 이게 바로 비즈니스의 핵심입니다. 이번 업데이트의 골자는 'Sample Transforms' 지원입니다. 쉽게 말해, 코덱이 기본적으로 16비트를 지원하지 않더라도 더 높은 비트 깊이(Bit Depth)를 사용할 수 있게 꼼수를 부린 겁니다. 여기서 중요한 건 '하위 호환성'입니다. 최신 기술을 도입한다고 해서 구형 기기를 사용하는 유저들을 버리면 그건 엔지니어링이 아니라 자위행위입니다. 이번 AVIF v1.2.0은 레거시 구현체에서는 최대 12비트 정밀도로 디코딩되도록 보장하면서, 최신 환경에서는 16비트 풀 퀄리티를 뽑아냅니다.

이게 왜 돈이 되냐고요? libavif를 빌드해서 `avifenc --depth 12,8 --lossless --speed 0` 같은 명령어로 테스트를 해보면 답이 나옵니다. 원본 16비트 PNG 대비 파일 크기를 약 10%나 줄일 수 있습니다. 품질 손실 없이 말이죠. 트래픽이 하루에 수 테라바이트씩 발생하는 서비스라면, 이 10%의 절감은 곧장 인프라 비용 수천만 원 절약으로 이어집니다. SI 시절, 무조건 압축률 높여서 이미지 다 깨지게 만들고 욕먹던 때와는 차원이 다릅니다. 고화질을 유지하면서도 용량을 줄이는 것, 이게 진짜 기술이고 생존 전략입니다.

또한 이번 사양에는 Gain Maps, 즉 톤 매핑 유도 이미지 아이템에 대한 가이드도 포함되었습니다. 요즘 스마트폰 디스플레이 스펙이 워낙 좋아져서 HDR 콘텐츠가 기본이 되어가고 있습니다. 하지만 여전히 SDR 디스플레이를 쓰는 사용자도 많죠. AVIF v1.2.0은 이 두 가지 상황을 모두 커버합니다. HDR 이미지를 인코딩하되, SDR 디스플레이에서도 깨지지 않고 정상적으로 보이게 만드는 하위 호환성을 제공하는 겁니다. 프론트엔드나 디자인 팀의 영역이라고 미루지 마세요. 결국 이 이미지를 서빙하고, CDN 비용을 방어해야 하는 건 우리 백엔드 엔지니어들의 몫입니다.

저도 야놀자 레거시 청산 TF에서 일할 때 뼈저리게 느꼈습니다. 화려한 아키텍처보다 더 중요한 건, 당장 돌아가는 시스템을 유지하면서 비용을 최적화하는 '더러운 코드'의 미학입니다. AVIF v1.2.0의 Sample Transforms 기능은 겉보기엔 복잡해 보이지만, 그 내막은 철저히 실용주의적입니다. 옛것(12비트 호환)을 지키면서 새것(16비트 정밀도)을 취하는 전략이죠. 단순히 "새로운 포맷이 나왔네"하고 넘기지 말고, 당장 `libavif` 깃허브 저장소를 확인하고 빌드해보세요. 남들이 MSA 도입한다고 뜬구름 잡을 때, 이미지 포맷 최적화로 회사 돈 아껴주는 개발자가 결국 끝까지 살아남습니다.

박준혁
박준혁그로스 엔지니어링 리드

지방대 철학과, 국비지원 출신. 첫 연봉 1,800만 원에서 시작해 유니콘 기업 리드가 되기까지. 코딩 재능은 없지만 생존 본능은 있습니다.

박준혁님의 다른 글

댓글 0

첫 번째 댓글을 남겨보세요!