번들과 패키지

Sunho·2023년 1월 5일
0

ios공부

목록 보기
7/8

Bundle

A Bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code.
 - 실행 가능한 코드와, 그 코드에 의해 사용되는 리소스를 가진 디렉토리

라고 애플공식문서에 나와있다.

package

A package is any directory that the Finder presents to the user as if it were a single file.

패키지는 파인더를 통해 보았을때 사용자에게 단일파일로 보이는 디렉토리.

솔직히 여기까지 봤을때 뭐 차이인지 모르겠다? 그래서 온갖 블로그들과 공식문서를 보면서 정리를 해보려고 한다.
패키지는 객체로 인식되는 것으로 .app, .bundle, .framework 등의 확장자를 가진것을 패키지라 한다. package를 구성하는 코드와 리소스들을 보호해야 하기에 바로 들어가지 못하고 패키지보기를 이용해야 한다.
번들에 접근을 하기 위해서는 Bundle.main을 이용한다.

Bundle.main.url(forResource: "파일명", withExtension: "확장자")

파일명.확장자의 url에 접근하는 코드이다.
Main Bundle은 외부 리소스를 프로젝트에 추가하고 접근할 때 가장 흔히 사용됩니다. 외부의 파일들을 프로젝트에 추가할때마다 뜨는 창이 그 뜻이다. 그때부터 위의 코드를 통해 접근 가능.

그렇다면 또 떠오르는 질문! 프로젝트에서 번들이 무엇인지는 알았는데 이 메인번들의 리소스파일들은 언제 올라가는 걸까?

바로 빌드될때이다. xcode의 build phase에 copy bundle resource에 속한 것들만 빌드될때 앱에 추가가 된다. 여기에 없으면 번들메인에 접근하려해도 없겠지? ㅇㅇ
자 결론은 번들과 패키지는 매우 유사한 개념이라는 것이고 우리는 번들을 통해 프로젝트 도중 리소스에 접근을 할 수 있다는 것이다.

profile
앱개발자

0개의 댓글