아리의 iOS 탐구생활

[iOS] Bundle이 뭘까? 본문

Swift/iOS

[iOS] Bundle이 뭘까?

Ari Lee 2021. 9. 28. 16:24
반응형

iOS 프로그래밍 강의를 듣다가 만나게 된 번들. 이 번들은 디렉토리를 추상화한 용어이다.

 

Bundle과 Package 개념을 서로 혼용해서 쓰는 경우가 많은데, 많은 Bundle이 Package이기도 하기 때문이다. application 같은 경우는 Finder에서 사용자에게 단일한 파일로 노출되는 Package이면서, 실행 코드와 리소스를 포함하여 Bundle이기도 한 대표적인 예시라고 볼 수 있다.

 

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

 

그렇다면 번들은 코드를 담고 있으니, 번들 내에 접근해서 코드를 사용할 수 있어야 한다.

마음에 드는 사용하고 싶은 번들이 있다면, 다음과 같이 접근할 수 있다.

guard let url = Bundle.main.url(forResource: "A", withExtension: "wav") else { return }

여기서 main은 무엇을 의미하는 것일까? 그리고 어떻게 저장된 값을 가져오는 것일까? 알아보자.

위에서 보았던 코드에서 url 형태를 가져올 수 있었다.

주로 path, url, object의 값들을 저장하고 가져오는 용도로 사용한다.

 

Main Bundle의 위치는 Bundle.main.bundleURL을 출력해보면 쉽게 알 수 있다. 이를 출력하면 아래와 같은 형태의 경로가 나온다.

/Users/userName/Library/Developer/CoreSimulator/Devices/...Some Hash.../AweSomeProject.app

 

따라서 번들이 가지고 있는 내용들은 info.plist, assets, string 파일 등등이 있겠다.

 

 

 

 

Reference

 

Apple Developer Documentation

 

developer.apple.com

 

[iOS - swift] 번들과 패키지(Bundle, package), Framework 개념

Bundle이란 실행 가능한 코드와 그 코드가 사용하는 자원을 포함하고 있는 디렉토리 가지고 있는 내용 - info.plist, assets, string 파일 등 프레임워크 번들은 dynamic library에서 사용하는 코드와 자원을

ios-development.tistory.com

 

[iOS] Bundle과 Package에 대해서

오늘은 Bundle, Package에 대해서 배워보겠습니다. 두 용어 모두 디렉토리를 추상화한 용어인데요, iOS에서 가장 중요한 디렉토리 추상화라고 할 수 있습니다. Bundle은 iOS 코딩을 하면서 많이 만나볼

lidium.tistory.com

 

반응형
Comments