[Android] Coil vs Glide in Compose

신민준·2025년 2월 19일
0

NowInAndroid

목록 보기
2/2

들어가며

안드로이드 앱을 만들다보면 이미지url을 사용하는 경우가 많다.
이미지url을 사용하는 방법도 Coil, Glide 등 굉장히 다양하다.
그렇다면 무엇을 사용하는 게 좋을까? 라는 의문이 자연스럽게 생긴다.
그래서 Coil과 Glide를 차이를 찾아보던 중 롯데ON 기술블로그에서 좋은 글을 발견했다.

그러나 위 글이 작성된 시점은 2022년이다.
현재 Coil이 보다 안정화되고 Compose가 보다 활성화된 현재 시점에서 주로 쓰는 AsyncImage()로 Compose 환경에서의 차이를 한번 확인해보고 싶어졌다.

테스트 환경

  • 기기 : 삼성 갤럭시 S24
  • Coil 버전 : 2.2.2
  • Glide 버전(Compose) : 1.0.0-alpha.1
  • 이미지는 원본이미지 사용

테스트 절차

Coil과 Glide를 사용해서 각각 이미지를 불러오고 이를 Android Studio Profiler로 확인해준다.

  • 처음 앱을 실행했을 경우(앱 제거 후 재설치)
  • 캐시가 저장된 후 실행했을 경우

두 경우의 상황에서 각각 Profiler를 통해 검사해준다.

시점은 앱 실행 후 15초 지점으로 몇번의 테스트 결과 이 상황에서 안정값과 이전 값의 비교를 확인하기 용이했다.

테스트 코드

  1. Coil
@Composable
fun LoadImage(imageUrl: String) {
    AsyncImage(
        model = imageUrl,
        contentDescription = "Coil Image"
    )
}
  1. Glide
@OptIn(ExperimentalGlideComposeApi::class)
@Composable
fun LoadImage(imageUrl: String) {
    GlideImage(
        model = imageUrl,
        contentDescription = "Glide Image"
    )
}

테스트 실행

Coil

처음 실행

캐시가 저장된 후

Glide

처음 실행

캐시가 저장된 후

분석

  1. Coil은 비동기로 실행되는 만큼 실제 환경에서 이미지가 순차적으로 로딩되는 것을 확인할 수 있었다.
    반면에 Glide는 모든 이미지가 한번에 로딩되는 것을 확인할 수 있었다.

  2. 캐시값이 없는 처음 실행하는 상황에서 Coil은 133.5MB, Glide는 141MB로 Coil이 메모리 사용량이 더 적었다.

  3. 캐시값이 저장된 후에는 Coil은 129.9MB, Glide는 119.8MB로 Glide가 메모리 사용량이 더 적었다.

  4. 두 상황에서 Coil은 상대적으로 메모리 사용량에 대한 편차가 작았다.
    Coil의 메모리 사용량 차 : 3.6MB
    Glide의 메모리 사용량 차 : 21.2MB

결론

✔️ Glide

  • 반복되는 이미지 사용이 많아 캐시 데이터 사용이 많을 경우

✔️ Coil

  • 다양한 이미지를 사용해서 캐시의 사용이 어려울 경우
  • 어느 상황이던간에 일정한 성능이 필요한 경우

물론 Glide는 View기반이고 Coil이 보다 Compose 친화적으로 최근에는 Coil을 추천하는 추세이다.
그렇지만 상황에 따라 필요한 라이브러리를 적절히 사용하는 것이 좋아보인다.

profile
안드로이드 외길

0개의 댓글