지난번 포스트에서 에셋에 관해 간단히 살펴봤다.


에셋번들의 아이디어는 동적으로 로드되는 에셋에서 출발한다. 에셋에 대해 설명할 때, 에셋을 Resources 폴더 하위에 위치시키면 씬 혹은 다른 에셋에 의해 참조되지 않더라도 빌드에 포함되어 스크립트로 동적 로드가 가능하다는 것을 언급했었다.


에셋번들은 이렇게 동적으로 로드될 에셋들을 별도의 파일로 분리하여 빌드에는 포함하지 않으나 웹을 이용한 다운로드 등의 방법을 통해 파일을 읽어들여 로드하게 된다. 이는 다음의 두 가지 특징을 가지게 된다.

  1. 빌드 크기가 줄어든다.
  2. 빌드 후에 재빌드 없이 리소스만 변경, 즉 리소스 패치가 가능해진다
특히 리소스 패치는 에셋번들에서 가장 중요한 특징이다. 앱을 빌드하는 프로세스가 바뀌기 때문인데 다음 상황을 비교해보자.

에셋번들을 사용하지 않았을 때
스크립트가 변경되었다 => 앱을 빌드한다
리소스만 변경되었다 => 앱을 빌드한다

에셋번들을 사용했을 때
스크립트가 변경되었다 => 앱을 빌드한다
리소스만 변경되었다 => 바뀐 리소스를 참조하고 있는 에셋번들만 빌드한다


이렇게 앱 빌드에 추가로 에셋번들 빌드 프로세스가 추가되면서 앱의 빌드 주기가 "바이너리 패치" 와 "리소스 패치" 로 나뉠 수 있게 된다. 어느 정도 규모가 있는 프로젝트인 경우 이와 같이 에셋번들을 이용해서 리소스 패치를 행하고 있다.

Posted by 카코데몬
,