Grusie 안드로이드 개발 기술 블로그

[Android] 이미지 로딩 라이브러리 Glide, Fresco (Glide를 사용한 이유) 본문

안드로이드 개발/라이브러리

[Android] 이미지 로딩 라이브러리 Glide, Fresco (Glide를 사용한 이유)

grusie 2024. 4. 19. 10:37
728x90
반응형
SMALL

회사 기존 프로젝트에 이미지 로딩 라이브러리가 Facebook사의 Fresco로 개발이 되어있는 것을 발견하였다.

SimpleDraweeView라는 뷰를 사용해야 하는 것 같았다. controller라는 것을 사용해서, 원하는 이미지 로드 빌드를 만들어서 넣어주는 형태이며, 사용하지 않을 때 null로 해주지 않으면 메모리릭이 날 수 있을 것이라고 판단했다.

 

필자가 기존에 사용해오던 라이브러리는 Google사의 Glide라는 라이브러리인데, 사용법이 간편하고, 제공하는 기능들이 많고 커스텀하기 좋았기 때문이다.

 

사용법에 대해서는 이 블로그를 참고하면 좋을 것 같다.

https://bumjae.tistory.com/83

 

Fresco

프로젝트를 진행하다 webp 이미지 파일을 표현하기 위해 Fresco의 SimpleDraweeView를 사용하여 동적 Image를 표현하였다. 사용하는 속성들을 알아보기 위해 구글링을 좀 해보았는데 레퍼런스가 다른 것

bumjae.tistory.com

 

 

Fresco의 장점

- 더 섬세한(용량이 큰) 이미지를 띄우는데에 도움이 된다.

- Gif를 포함하여 속도가 빠르다.

 

Fresco의 단점

- 라이브러리 수가 많아진다.(webP, Gif의 경우 따로 설정해주어야 함)

- 사용법이 복잡하다. (컨트롤러를 등록, 제거 해주어야 하며, 기존 init을 하기 위해서도 어플리케이션 영역에서 세팅을 해야 한다.)

- SimpleDraweeView를 사용해야만 한다.(ImageView에 비해 커스텀이 불편하다.)

 

Glide의 장점

- 처음 세팅이 간단하다.(라이브러리 하나만 추가하고, context만 존재한다면 언제든 사용할 수 있다.)

- 사용법이 간단하다. (이미지 로드 및 placeholder, listener 등록 등을 한 줄로 처리 할 수 있다.)

- 속도가 준수하다. (Fresco와 비교하는 글들이 많을 정도로 속도가 준수하며, Picasso에 비해서는 월등히 빠르다.)

- 구글에서 공식적으로 지원한다. (안드로이드는 구글에서 만든 것이니 따라가자)

- 캐시를 위해서 적은 양의 메모리를 사용한다.

 

Fresco 대신 Glide를 사용한 이유

1. SimpleDraweeView뷰

  • SimpleDraweeView는 기본적으로 wrap_content를 지원하지 않기 때문에 이미지가 들어갈 사이즈를 미리 지정해주어야 한다.
  • controller를 통해 이미지를 띄우는 형태가 가능하며, setImageDrawable 같은 직접적인 접근은 하지 말아야 한다고 되어있다.
  • 벌써부터 커스텀이 부담스럽다는 게 느껴진다. 물론 setImageDrawable을 사용할 것이라면, 그냥 ImageView에 쓰면 될 것이고, 이미지 뷰를 wrap_content로 하는 경우가 거의 없을 것이니 크게 문제될 것은 없을 것 같긴한다.

 

2. 사용 난이도

  • 필자는 기존 프로젝트에 적용이 되어있기에, 익히는 데에 어려움은 없었으나, 처음하게 된다면 세팅부터 어려움이 많을 것이다.
  • controller를 사용하여 이미지 로딩을 진행하기에, 나중에 controller를 제거해야 메모리릭이 나지 않는 것 같ㅌ다.
  • 기본적으로 코드가 복잡해져서 처음 봤을 때 유지보수 하기가 어려울 것이다.

 

3. 필요성

  • 속도
    • 속도가 빠르다는 말을 많이들 하지만, 그렇게 큰 사이즈의 이미지를 로드할 생각이 없으며, 갤러리 이미지와 같은 대량의 이미지들을 가져오는 것이 아니고, 썸네일 정도면 표시해주는 경우가 대부분이었다.
    • 또한 Gif를 사용 할 일도 없었기에 필요성을 느끼지 못 했다.
  • 섬세함
    • 마찬가지로, 썸네일 정도만 표시해주는 것이기에, Fresco를 굳이 사용할 필요는 없었다.
    • 그렇다고 Glide가 화질이 뭉개질 정도로 안 나오는 것도 아니기 때문에 충분히 대체 가능했다.

참고

https://n-square.tistory.com/130

 

Image Load Library (Glide vs Picasso vs Fresco) feat. Image Caching

안드로이드에서 유명한 이미지 로드 라이브러리들은 대표적으로 Google의 Glide, Square의 Picasso, Facebook의 Fresco가 있다. 일단 이 이미지 로드 라이브러리를 비교해보기에 앞서, 안드로이드의 이미지

n-square.tistory.com

https://www.codenary.co.kr/techstack/list?keyword=glide

 

이 기술 스택은 어디서 쓰이고 있을까? | 코드너리

Javascript, React, Java, NestJS, Python 등 200개가 넘는 기술 스택에 대한 정보와 어떤 회사에서 사용 중인지까지 한눈에 살펴보세요.

www.codenary.co.kr

 

후기

 

라이브러리를 선택하는 것은 중요하다.

가능하면 사용법이 간단한 라이브러리를 선호하고 많은 곳의 회사에서 Glide를 사용한다기에 Glide를 접하게 되었고, 입사를 하게 되면서 Fresco에 대해서 알게 되었다. 사용법이 다르기에 공부를 해보고 장단점을 비교해 본 결과 갤러리 이미지 로드와 같은 많은 양의 이미지 로딩이 아니거나, 썸네일 정도의 간단한 이미지를 사용하려면 Glide를 사용하는 게 좋겠다는 판단을 내리게 되었다.

반응형
LIST