목록 보기
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 적용 시 설치 여부, 로딩 실패, 네트워크 실패, 사이즈 검증까지 함께 설계
  • 안정성, 독립성, 운영 효율성을 우선하는 구조 선택

다음 읽기

같은 회사의 연관 글

천만 MAU를 지탱하는 커뮤니티 시스템을 소개해요

천만 MAU를 버티기 위한 커뮤니티 시스템의 구조와 선택을 소개했습니다. 웹앱과 서버앱, 모듈과 이벤트 분리로 확장성과 운영성을 함께 확보한 사례입니다.

당근마켓
당근마켓
아키텍처

댓글 0개

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

댓글을 불러오는 중...