목록 보기
200MB 모듈을 팀 단위로 해결하기: 당근 숏폼팀의 On-demand Dynamic Feature Module 도입
프론트엔드

200MB 모듈을 팀 단위로 해결하기: 당근 숏폼팀의 On-demand Dynamic Feature Module 도입

당근마켓
당근마켓
2026년 2월 27일

두줄요약

비디오 편집 모듈의 200MB 용량을 줄이기 위해 On-demand DFM을 도입했습니다. 기능 코드는 base에 두고 SO 파일만 분리해 글로벌 사용자 부담과 운영 복잡도를 함께 낮췄습니다.

문제 상황

  • 비디오 편집 기능 추가로 숏폼 모듈 용량이 200MB까지 증가한 상황
  • CDN 전환으로 40MB까지 줄였지만, 소수 기능을 전체 사용자에게 함께 설치시키는 부담 지속
  • 글로벌 사용자와 다른 서비스에 영향 없이 팀 단위로 기능을 분리할 필요성 대두

원인 분석

  • 필터, 이펙트, 스티커 등 리소스와 네이티브 라이브러리(SO) 비중이 큼
  • DFM 도입 시 Hilt/DI, SplitCompat, SO 로딩, ABI·STL, R8 규칙 등 운영 제약 발생
  • 코드와 SO를 모두 분리하려는 방식은 기술적 복잡도 대비 효율이 낮음

해결 방법

  • Android App Bundle의 On-demand Delivery 기반 Dynamic Feature Module 도입
  • 기능 코드는 base 모듈에 유지하고, 용량의 핵심인 SO 파일만 DFM으로 분리
  • bundletool, SplitCompat, SplitInstallHelper, packaging 규칙으로 설치·로딩·검증 체계 구성

적용해볼 점

  • 팀 단위 실험 기능은 글로벌 사용자 영향 범위부터 먼저 분리 검토
  • DFM 적용 시 설치 여부, 로딩 실패, 네트워크 실패, 사이즈 검증까지 함께 설계
  • 안정성, 독립성, 운영 효율성을 우선하는 구조 선택

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...