[CS] 음성 파일 크기 최적화: CBR, VBR 인코딩 방식
안녕하세요. 오늘은 우리의 기도 앱에서 사용하는 강의 파일(음성 파일) 크기 자체를 어떻게 줄였는가에 대해 공유하는 시간을 가져보려고합니다. 🥸
[CS] 음성 파일 크기 최적화: CBR, VBR 인코딩 방식
안녕하세요. 오늘은 우리의 기도 앱에서 사용하는 강의 파일(음성 파일) 크기 자체를 어떻게 줄였는가에 대해 공유하는 시간을 가져보려고합니다. 🥸

1. 문제 정의
“왜 음성 파일 크기를 줄이려고 했는가?”
우리의 기도 앱은 AWS S3에 저장되어 있는 음성 파일들을 사용자가 다운로드할 수 있도록 설계되어있습니다. 그렇기에 파일의 크기가 클수록 클라우드 서비스 이용 금액에도 부담이 갔습니다.
사용자가 많지 않아 실질적인 비용이 청구되지는 않았지만, 장기적으로 봤을 때에는 결국 파일 크기를 최적화할 필요성이 있었습니다.
2. 우리의 기도 앱 만의 음성 파일 특성
먼저 파일 크기를 최적화하기 위해서는 파일이 가지고 있는 특징들을 파악해야했습니다.
파일의 전체 구간에서 소리가 나오는 비중이 얼마나 되는가?
앱에서 사용한 음성 파일 구성은 다음과 같습니다.
(대략 40초 음성 + 2분 30초 무음) * n
즉 파일 길이가 1시간이어도 실제로 음성이 나오는 시간은 대략 13분이고 남은 47분은 무음으로 구성되어있습니다. (기도와 묵상을 위한 음성 파일이기 때문)
즉 파일의 전체 구간 중 소리가 나오는 비중은 대략 22% 정도였습니다.
인코딩 방식은 어느 것을 사용했고 해당 인코딩 방식의 장단점은 무엇인가?
저는 음성 파일을 만들 때에는, CapCut 프로그램을 사용해서 만들었습니다. CapCut에서 지원하는 인코딩 방식은 CBR 방식을 지원하고 있었습니다.
CBR은 Constant Bitrate의 약자로 음성/영상 파일의 비트레이트가 전 구역에 고정적으로 할당되는 형태입니다.
이러한 특성으로 인한 장점은 파일 크기가 예측 가능해진다는 것입니다.
그래서 대역폭을 엄격하게 제어해야할 필요성이 있는 라이브 스트리밍에 사용됩니다.
단점으로는 파일 크기가 커질 수 있고, 음성이나 영상이 복잡할 경우에도 일정한 비트 레이트를 할당하기에 퀄리티가 떨어져보일 수 있습니다.
3. 해결 방안: VBR 인코딩 방식으로 변형
앞서 나열한 CBR의 장점은 우리 앱에 필요한 것들이 아니었습니다. 파일 크기를 낮춰야하는 우리 목적에 부합한 인코딩 방식이 아니었습니다.
그래서 소리가 많을 때에는 높은 비트레이트를 할당하고, 소리가 없는 무음일 때에는 낮은 비트레이트를 할당하는 방식인 VBR 인코딩 방식을 채택했습니다.
VBR은 하나의 스트림 안에 나눠진 세그먼트마다 다른 비트 레이트를 할당할 수 있는 인코딩 방식입니다
그렇기에 우리 음성 파일의 무음 구간에는 거의 0에 가까운 비트 레이트를 할당해서 파일 크기를 최적화할 수 있었습니다.
4. 결과: 대략 60% 이상 파일 크기 감소

VBR 방식(위) / CBR 방식(아래) 파일 크기 차이
위 이미지에서 보시는 바와 같이 음성 파일의 크기가 대략 60%정도 줄었습니다.
- 인코딩 방식의 변화(CBR -> VBR)
- 파일 크기 28.2MB -> 10.6MB
5. 글을 마무리하며..
이번 작업은 제가 직접 클라우드 서비스 비용을 내는 고객이었기에 고민하고 해결할 수 있었던 경험이었습니다.
이번 개선은 새로운 기능을 추가한 것도, 복잡한 로직을 구현한 것도 아닌, 단지 음성 파일의 특성과 맞지 않던 인코딩 방식을 변경했을 뿐입니다.
하지만 그 변경 하나로 파일 크기와 비용 문제를 함께 개선시킬 수 있었습니다.
어떤 문제를 해결할 때에는 기술 자체보다도 문제의 구조를 먼저 이해하는 것이 중요하다는 것을 다시 한 번 느낄 수 있던 시간이었습니다.
메타데이터
- post_id
- f3dc697e3888
- slug
- 우리의-기도-음성-파일-크기-최적화-cbr-vbr-인코딩-방식-f3dc697e3888
- url
- https://medium.com/@ehdrbdndns/%EC%9A%B0%EB%A6%AC%EC%9D%98-%EA%B8%B0%EB%8F%84-%EC%9D%8C%EC%84%B1-%ED%8C%8C%EC%9D%BC-%ED%81%AC%EA%B8%B0-%EC%B5%9C%EC%A0%81%ED%99%94-cbr-vbr-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%B0%A9%EC%8B%9D-f3dc697e3888
- canonical_url
- https://medium.com/@ehdrbdndns/%EC%9A%B0%EB%A6%AC%EC%9D%98-%EA%B8%B0%EB%8F%84-%EC%9D%8C%EC%84%B1-%ED%8C%8C%EC%9D%BC-%ED%81%AC%EA%B8%B0-%EC%B5%9C%EC%A0%81%ED%99%94-cbr-vbr-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%B0%A9%EC%8B%9D-f3dc697e3888
- author_url
- https://medium.com/@ehdrbdndns
- status
- ok
- fetched_at
- 2026-06-24 04:09:36