본문 바로가기
TIL/Self

[iOS/Swift] 번들Bundle에 대해 알아보자📚

by 빵떡징 2024. 11. 11.

24.11.10.Sun.
안녕하세요. 빵떡징입니다 :>.
돌아오겠다고 선언한지 일주일이 더 지나서야 쓰는 TIL..ㅠㅠ
한 번에 다 정리하려니까 진도가 안나가는거 있죠~~
 
그래서 오늘부터는 조금씩 나눠서 공부한 걸 올려보려고 합니다!
부담되지 않는 선에서 매일 쌓아가볼게욥~
 
오늘은

" 번들 Bundle " 

에 대해서 정리해보도록 할게요!


Bundle? 번들? 그게 몽데!!

실로폰 만들기 강의를 듣다가 "Bundle"이라는 개념이 등장했습니다.
Bundle? 그게 몽데! 어떻게 쓰는건데?! 를 먼저 알아보고 진도를 나가기로 해서
바아로 Apple Developer 에 접속했습니다.
 
그리고 검색했어요. B-u-n-d-l-e

사진을 누르면 Developer Bundle Documentation 창으로 이동합니다!
A representation of the code and resources stored in a bundle directory on disk.
디스크 안에 저장된 코드와 리소스를 가진 디렉토리

라고 합니다.
 
Bundle코드리소스를 가지고 있고
→ 우리는 여기 접근해서 코드와 리소스를 사용할 수 있다는 거죠!
 
이 Bundle을 활용하려면 어떻게 접근하는지를 알아야겠죠?
한 번 알아봅시다.


Bundle 번들은 어떻게 사용하나요?!

1. 앱의 메인 번들에 접근하기
먼저 앱의 메인 번들에 접근하는 코드입니다.

Bundle.main

//메인 번들을 가리키는 일종의 "주소"

 
이렇게 하면 앱과 함께 설치된 리소스 파일(기본 리소스)을 불러올 수 있어요.
 
2.URL 요청하기
Bundle 클래스의 메서드를 사용해 리소스 파일의 URL을 요청할 수 있는데요.
불러오고 싶은 리소스 파일의 이름확장자를 지정해서
이름과 확장자명이 일치하는 리소스 파일의 URL을 가져오는 방식이에요.

.url(forResource:"data", withExtension:"json")
  • forResource: "불러오고 싶은 파일명"
  • withExtension: "불러오고 싶은 확장자"

이렇게 작성하면 되는데요.
위 예시에서는 파일명이 data이고, 확장자명이 json인 파일을 요청해서
URL을 불러오게 되겠죠?!
 
저는 앱의 메인 번들에 있는 "C"라는 파일명과 "wav" 확장자를 가진
리소스 파일의 URL을 불러오고 싶어서 이렇게 작성을 해줬어요.

Bundle.main.url(forResource: "C", withExtension: "wav")

 
(제가 지금 실로폰 만들기를 하고 있어서 실로폰의 음들 중 C 코드의 소리를 가져오는 코드를 작성한거랍니다!)
 
3.옵셔널 바인딩 하기
위에서 이름과 확장자명이 일치하는 리소스 파일을 불러오도록 코드를 작성해봤는데요.
일치하는 파일이 있으면 잘 불러오겠지만 만약 일치하는 파일이 없으면?!..~!! 그럴 수도 있잖아요!?!
 
이렇게 일치하는 파일이 있을 수도 있고, 없을 수도 있다는 건
코드의 결과가 옵셔널(URL?)이라는 이야기 - ! :>
 
그래서 옵셔널 바인딩을 해줄겁니다.
결과가 nil(없을 경우)일 경우에도 크래시 없이 안전하게 메서드를 종료할 수 있도록요!

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

 
guard let을 사용해 옵셔널 바인딩을 하고,
일치하는 파일을 찾지 못할 경우, 즉 결과가 nil일 경우에는
esle구문 안의 코드(return)가 실행되어 메서드를 종료하도록 해주면 돼요.


네! 오늘은 이렇게 Bundle 개념을 간단하게 공부하고
Bundle을 사용하는 방법에 대해서 알아보는 시간을 가졌습니다.
 
강의의 극히 일부분인데..~~
공부하고 글 작성까지 하려니 시간이 후딱 흘렀네요 =3
 
그래도 개념을 하나씩 이해하며 코드를 작성해보는 게
탄탄한 기초를 쌓는 데 더욱 도움이 될 것 같습니다.
앞으로도 조금 더디더라도 차근 차근 쌓아가볼게요!
 
그럼 뇽안뇽 :>

 

'TIL > Self' 카테고리의 다른 글

[TIL] 랜만오  (1) 2024.10.28