테크레시피

자체 앱 압축 기술 공개한 페이스북

페이스북이 안드로이드용 앱 압축 기술인 슈퍼팩(Superpack)을 개발했다고 발표했다. 페이스북에 따르면 페이스북과 인스타그램, 왓츠앱, 메신저 등 안드로이드 앱에서 안드로이드 기본 집(ZIP) 압축보다 평균 20% 이상 크기를 줄이는데 성공했다고 한다.

개발자는 이메일 대량 코드를 확인하고 결국 스마트폰에 다운로드되는 앱에 추가한다. 이 코드를 그대로 추가할 때 앱 크기는 점점 커지고 결국 앱 다운로드 시간이 허용 범위를 초과하게 됐다.

앱 크기를 최소화하기 위해 데이터를 압축해야 한다. 압축해 전 세계 수십억 사용자가 작은 앱을 더 빠르게 다운로드할 수 있게 통신량보다 적게 할 수 있다. 이런 연구는 휴대전화 통신 용량이 제한되는 지역에선 더 중요하다. 하지만 앱 업데이트와 기능 추가에 대응하려면 압축만으론 충분하지 않기 때문에 페이스북은 슈퍼팩이라는 기술을 개발했다.

슈퍼팩 컴파일러 분석과 데이터 압축을 결합해 기존 압축 도구 능력을 초과하는 크기 최적화를 가능하게 할 것이라는 설명이다. 페이스북은 슈퍼팩 압축 한계를 넘어 기존 압축 도구보다 훨씬 뛰어난 압축률을 제공한다고 밝혔다.

페이스북에 따르면 슈퍼팩은 기계코드와 바이트 코드, 기타 구조화된 데이터를 압축할 수 있는 강점이 있다고 밝혔다. 이 방법은 복잡성 척도를 재는 콜모고로프 복잡도(Kolmogorov complexity) 알고리즘을 기반으로 데이터 정보 내용을 데이터를 생성할 수 있는 최단 프로그램 길이로 정의하는 것이라고 말한다. 페이스북은 다시 말해 데이터를 생성하는 프로그램으로 표현해 데이터를 압축할 수 있다며 예를 들어 피보나치 숫자를 생성하는 프로그램은 여러 피보나치 숫자가 포함된 파일을 고도로 압축한 것이라고 할 수 있다고 설명하고 있다.

슈퍼팩은 압축 측이 OCaml, 추출 측이 C로 설계되어 있다. 또 슈퍼팩은 구조화된 데이터, 코드, 점수, 문자열 데이터를 대상으로 현재는 이미지와 비디오, 오디오 파일은 대상이 없다. 지금은 페이스북 사내 엔지니어만 슈퍼팩을 사용할 수 있지만 미래에는 외부에 공개해 모든 사람에게 제공하는 걸 목표로 하고 있으며 iOS 등 다른 플랫폼에도 적용하거나 오픈소스화하는 걸 목표로 하고 있다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사