너는 누구냐.

아.. 두부냄새.

XIB와 NIB

조금전 포스트에 언급한것과 같이 cocoadev.co.kr을 둘러봤을때 XIB에 관한 포스트가 있어 간단히 읽어봤다. 그런데 XIB가 XML형태라는것 외에는 별다른 내용이 없는것 같아 이쪽.. 내 블로그에다 약간 첨언하고자 한다.

XIB는 Xcode 3.1이 되면서 새로 생긴것이 아니라 사실 Xcode 3.0에서부터 있어왔다. XIB는 coocadev.co.kr에서 말한대로 XML 형태의 파일이다. 그런데 왜? 왜 가만히 잘있는 NIB을 XIB로 바꿨을까?

애플이 호환성 문제로 가장 골치아파 하는것중 하나가 바로 이 Bundle이다. HFS에서 지정하는 metadata가 있어야 제대로 인식되고 사용되는 이 Bundle이 왜 새삼 문제가 되는가 하면.. 비슷한 형태의 응용프로그램과는 다르게 Bundle은 소스코드의 일부분이라는것이다. 소스코드의 일부분이기에 Subversion과 같은 SCM을 통해 웹에 업로드되어야 하고 다운로드 받아야 한다는것. 그런데 결정적인 골칫거리는 웹을 왔다갔다 하면서 Bundle의 metadata가 호환성의 문제로 없어질수도 있다는것이다. 해서 애플에서 부랴부랴 XML형태의 flat file인 XIB 포맷을 만들어낸것이다.

XIB와 NIB은 100% 같다고 보면 된다. 물론 개발자에게만. NIB의 한가지 단점은 응용프로그램으로 만들어지고 난 뒤 해커? 들에 의해 마음대로 수정될수 있다는것이었다. 몇몇 애플 응용프로그램이 가진 NIB파일은 compile되었다면서 Interface builder에서 로딩하지 않지만, 대부분의 맥 응용프로그램이 포함하고 있는 NIB파일은 언제든지 수정가능한 형태로 배포되는것이 사실이다.

그렇지만 응용프로그램 번들에 포함되어 있는 XIB는 열리지 않는다. 응용프로그램이 일단 컴파일 되면 Interface Builder에서 열어볼수가 없는것이다. 개발자로서는 반가운 소식이라 생각되는데, 아무튼 그렇다. 개발자로서 XIB 사용을 회피해야 할 이유는 NIB보다 파일사이즈가 ‘아주’약간 커진다는것. XIB를 쓰지 않을 이유는 사실상 없는것이다.

dglee2 작성

8월 28, 2008 at 11:05 오후

Posted in 코코아

Tagged with , ,

팔로우

Get every new post delivered to your Inbox.