Application Bundle
: ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ํ์ ๋ฒ๋ค
-
Package - Finder๊ฐ ์ฌ์ฉ์์๊ฒ ๋จ์ผ ํ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๋๋ ํ ๋ฆฌ
Package
๋ macOS์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ์ํํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค.Package
๋ ๋๋ ํ ๋ฆฌ์ด์ง๋ง,Finder
์์๋ ์ด๋ฅผ ๋จ์ผํ ํ์ผ๋ก ์ธ์ํ๋ค. ๊ทธ๋์ ์ผ๋ฐ์ ์ธ ๋๋ ํ ๋ฆฌ๋ฅผFinder
์์ ๋๋ธ ํด๋ฆญํ์ฌ ์ด๋ฉด ๋๋ ํ ๋ฆฌ ์์ผ๋ก ์ด๋ํ์ง๋ง,Package
๋ ํ์ผ์ด ์คํ๋๋ค.Finder
์์ ์์ฉ ํ๋ก๊ทธ๋จ ํญ์ผ๋ก ์ด๋ํ ํ ์๋ฌด ์ฑ ์์ด์ฝ์ ์ค๋ฅธ์ชฝ ํด๋ฆญ์ผ๋ก ํ์ธํ๋ฉด ๋๋๊ฒ๋ ํจํค์ง ๋ด์ฉ ๋ณด๊ธฐ ์ต์ ์ด ์กด์ฌํ๋ค. ์ด๋App
๋Package
์ ์ข ๋ฅ ์ค ํ๋์์ ์๋ฏธํ๋ค. MacOS์์๋ ํ๋์ Application์.app
์ด๋ผ๋ ํ์ฅ์๊ฐ ๋ถ๋Package
๋ก ์ทจ๊ธํ๋ค. ์์คํ (Finder
)์.app
,.bundle
,.framework
,.plugin
์ ๊ฐ์ ํ์ฅ์๋ฅผ ๊ฐ์ง ๋๋ ํ ๋ฆฌ๋ฅผPackage
๋ก ์ธ์ํ๋ค.
-
Bundle - ์คํ ๊ฐ๋ฅํ ์ฝ๋์ ์ฝ๋์ ์ํด ์ฌ์ฉ๋๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ง ๋๋ ํ ๋ฆฌ
Bundle
์Package
์ฒ๋ผ ๋๋ ํ ๋ฆฌ์ ํ ์ข ๋ฅ๋ฅผ ์ง์นญํ์ง๋ง, ์คํ ๊ฐ๋ฅํ ์ฝ๋์ ๋ฆฌ์์ค๋ฅผ ํฌํจํ๋ ๋๋ ํ ๋ฆฌ์ด๋ค. ๋ง์Bundle
์ดPackage
์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์Bundle
๊ณผPackage
๊ฐ๋ ์ ์๋ก ํผ์ฉํด์ ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.application
๊ฐ์ ๊ฒฝ์ฐ๋Finder
์์ ์ฌ์ฉ์์๊ฒ ๋จ์ผํ ํ์ผ๋ก ๋ ธ์ถ๋๋Package
์ด๋ฉด์, ์คํ ์ฝ๋์ ๋ฆฌ์์ค๋ฅผ ํฌํจํ์ฌBundle
์ด๊ธฐ๋ ํ ๋ํ์ ์ธ ์์ด๋ค.Bundle์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์ด๋ฆ๊ณผ ์ค์ Bundle์ด ์ฌ์ฉํ๋ File System์ ์ด๋ฆ์ ๋ฐ๋ก ๊ด๋ฆฌํ๋ค. ์๋ฅผ ๋ค์ด, Finder์์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ Display Name๋ง ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค.
์์ ๋งํ๋ฏ ์ฑ์ ํจํค์ง์ด๋ฉด์ ๋ฒ๋ค์ด๊ธฐ๋ ํ ๋ํ์ ์ธ ์์ด๋ค.
์ด๋ฅผ ํ ๋๋ก App Bundle์ ๋ํด ์ข ๋ ์์ธํ ์ค๋ช
ํ๋ฉด, App Bundle์ ์๋๋ฐ์ค ๊ตฌ์กฐ
์์ Bundle Container๋ก ์ฑ์ ์คํ ์ฝ๋์ ๋ฆฌ์์ค๋ฅผ
ํ๋์ ๊ณต๊ฐ์ ๊ทธ๋ฃนํํ์ฌ ์ ์ฅํ ๋๋ ํ ๋ฆฌ
๋ฅผ ๋งํ๋ค.
์ฌ๊ธฐ์ ์๋๋ฐ์ค
๋, ๋ณดํธ๋ ์์ญ ๋ด์์๋ง ํ๋ก๊ทธ๋จ์ ๋์์ํค๋ ๊ฒ์ผ๋ก ์ด๋ฆฐ์์ด๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ด ์๋๋ฐ์ค ๋ด์์๋ง ๋๋๋ก ํ๋ ์๋ฏธ์์ ์ ๋๋ ๋ณด์ ๋ชจ๋ธ
์ด๋ค.
์ฐธ๊ณ ๋งํฌ 1๋ฒ์ ์ฐธ๊ณ ํ๋ฉด ๋ ์์ธํ ์ค๋ช ์ด ์๋ค.
๋ง์ฝ ์๋๋ฐ์ค๋ก ์ฑ์ ๊ฐ์ธ์ง ์๋๋ค๋ฉด ์ฑ์ ์์ ์ ์คํํ๋ ์ฌ์ฉ์์ ๋ชจ๋ ๊ถํ์ ๊ฐ๊ณ , ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ ๋ชจ๋ ๋ฆฌ์์ค์ ๋์ผํ๊ฒ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ, ์ฑ์ด๋ ์ฐ๊ฒฐ๋ ํ๋ ์์ํฌ์ ๋ณด์์ ๊ฒฐํจ์ด ์์ ๋ ์ด๋ฅผ ์ ์ฉํ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ์ํํ ์ ์๋ ๋ชจ๋ ์์ ์ ์ํํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ์ด๋ฌํ ๋ณด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด iOS๋ ์ฑ์ด ๋ชจ๋ SandBoxํ ๋์ด์๋ค.
์ฑ ๋ด๋ถ์ ๋ฒ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ๋์ด ์๋ค. ๋ฒ๋ค ๋ด์ ์ ๊ทผํด์ ์ง์ ์์ ์ ๋ถ๊ฐํ๊ณ , ์์ ๋ฆฌ์์ค๋ค์ ์ฌ์ฉํ๋๊ฒ์ด ํ๋ฝ๋ ์ํ์ด๋ค.
open class Bundle : NSObject {
/* Methods for creating or retrieving bundle instances. */
open class var main: Bundle { get }
}
// Usage
Bundle.main
๋ง์ฝ Xcode ํ๋ก์ ํธ์์ ์ด๋ค ์ธ๋ถ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋จ๊ฒ ๋๋๋ฐ
์ฌ๊ธฐ์ ํ์ธ์ ๋๋ฅด๋ฉด ์ฑ ์ ์ญ์์ ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ค. ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ทธ ์ธ ๋ค๋ฅธ ๋ฉ์๋๋ค์ ๊ณต์๋ฌธ์ ํ๋จ์ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
Bundle.main.url(forResource: "myImageName", withExtension: "jpg")
์ด๋ฏธ์ง ๊ฐ์ ๊ฒฝ์ฐ์๋ Xcode์์ ํน๋ณํ๊ฒ ์ทจ๊ธํ์ฌ, Bundle ์ฌ์ฉ์ ํ์ง ์์๋ ๋ฐ๋ก ์ด๋ฏธ์ง ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ๊ฑฐ๋ UIImage ํํ๋ก ์ ๊ทผํ ์ ์๋ค.
์ฑ ๋ฒ๋ค(๋ฉ์ธ ๋ฒ๋ค)์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์์ค๋ค์ ์๋์ ๊ฐ๋ค.
- Asset
- ์ธ๋ถ์์ ์ถ๊ฐํ ๋ฆฌ์์ค(ํฐํธ, ์ด๋ฏธ์ง, ์ฌ์ด๋ ํ์ผ ๋ฑ)
- Storyboard
- plist (InfoPlist ํฌํจ ๋ค๋ฅธ๊ฒ๋ค - ์ญ์ ํ๋ก์ ํธํด๋๋ก ์ง์ด๋ฃ์ผ๋๊น)
- ๋ฉ์ธ nib ํ์ผ
์ถ๊ฐ์ ์ผ๋ก, Bundle
์ ์ด์ฉํ๋ฉด ์ํํธ์จ์ด๋ฅผ ์ด์ ํ ๋ ๋จ์ํ Bundle
๋ง ์ฎ๊ธฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํจ์ ์ ๊ณตํ๋ค.