앤디가이 블로그

Unity에서 앱 최적화 및 콘텐츠 분리의 핵심 기능인 어드레서블(Addressable)에 대해 알아보자.

 

1. 어드레서블(Addressable)이란?

유니티에서 그동안 메인 앱과 콘텐츠를 나눠서 개발할 때(Apk 용량을 줄이고 리소스를 따로 빼는 작업) 주로 어셋 번들로 만들어서 다운로드하고, 로드하는 형식으로 많이 사용하였다.

어드레서블 시스템은 우리가 그동안 익숙했던 어셋 번들을 좀 더 자동화 및 관리시스템이 추가되어 새로운 패키지 형태로 나온 개념으로 이해하면 좋다.

어드레서블은 콘텐츠를 빌드하고, 로딩하고 관리하는 시스템이며, 주소를 통해 관리하기 때문에 Addressable 이란 이름으로 불린다.

 

 

2. 어드레서블(Addressable) 기본 사항

어드레서블은 유니티 2018.2 버전 이상의 시스템에서만 사용할 수 있는 제약이 있다. 2018 이전 버전 사용자는 유니티 버전 업그레이드가 필요하다. 또한 모든 동작이 비동기 시스템으로 구현되어 있기 때문에 C#의 비동기 프로그래밍을 사전 지식으로 알고 있으면 좋다.

 

3. 어드레서블(Addressable)을 왜 사용해야 하는가?

개발 초기에는 유니티의 Resources 폴더나 StreammingAssets 폴더에 리소스들을 넣어 놓고, 동적으로 Load 해서 사용하는 케이스가 많다. 이런 리소스 로드 방식은 로드 시점에 많은 cpu를 소모하게 만들고, 앱 용량(APK, IPA)을 비대하게 만드는 가장 큰 원인이다.

최근 게임 및 앱의 범위 및 리소스 사용량이 늘어남에 따라 메인 앱과 콘텐츠 영역의 분리는 필수적이다.

메인 앱을 가볍게 만들고, 콘텐츠를 다운로드하여 구동하는 방식으로 개발 설계를 하기 위해서는 에섯번들(AssetBundle)이나 어드레서블(Addressable)을 사용해야 한다. 

 

4. 어셋 번들(AssetBundle)과 어드레서블(Addressable)의 차이점

콘텐츠를 분리하여 동적으로 로드하고, 관리하는 개념으로는 어셋 번들과 어드레서블은 같은 개념이다.

어드레서블은 에셋 번들을 한번 더 래핑 하여, 사용자가 좀 더 편하게 사용하고, 메모리 관리에 대한 부분에 대한 걱정을 덜 수 있게 해 준 패키지라고 생각하면 좋다.

 

에셋 번들은 다른 에셋들과의 종속성이 있는 상황에서 무조건 로드하여 메모리에 올린다면, 메모리에 중복적으로 올라가는 상황이 있다. 에셋 번들 시스템은 이런 종속성을 생각하면서 관리 코드(로드 및 해제)를 제작해야 하지만, 어드레서블은 이런 메모리 종속성 관리까지 해주기 때문에 코드도 간략해지고, 관리도 편해진다.

 

어드레서블은 알아서 의존관계를 확인하여 리소스를 로드해주기 때문에, 어셋 번들처럼 의존 관계에 따른 로드를 개발자가 판단하지 않아도 된다.

 

 

5. 어드레서블(Addressable)패키지 임포트 방법

유니티 프로젝트를 생성 후, 상단 패키지 매니저를 열고 Addressable를 검색하여 설치해준다.

현재 설치 기준으로는 1.20.3 버전으로 설치된다.

Unity Addressable 패키지 설치
Unity Addressable 패키지 설치
유니티 어드레서블 패키지 설치 완료
유니티 어드레서블 패키지 설치 완료

설치 과정까지 완료하였다.

다음 포스팅에서는 어드레서블의 실제 사용 방법에 대해 알아보자!

 

공유하기

facebook twitter kakaoTalk kakaostory naver band