Package, Bundle과 프레임워크..!

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • nobleidea
      참가자
      • 글작성 : 5
      • 답글작성 : 8

      안녕하세요. 고귀한 생각을 가진 개발자 nobleidea입니다.
      오늘은 빌드 타임을 줄이기 위한 방법을 공부하다 프레임워크, 라이브러리로 빠져
      결국 패키지와 번들에 대해… 먼저 알아보았습니다.
      많이들 들어보셨을거에요. 패키지와 번들! 어렴풋이 기억하는 분들도 있으시겠지만
      정확한 개념을 위해 간략히 다시한 번 훑어보는 시간을 가져봅시당!
      먼저, 애플 공식 문서를 통해 머리 뙇 넣고 가보실까요?
      ** A package is any directory that the Finder presents to the user as if it were a single file.
      패키지란 디렉토리다, Finder가 사용자에게 하나의 파일처럼 보여주는 디렉토리다…!!
      아하, 파일처럼~보이는 디렉토리이다. 이것이 핵심입니다.
      MacOS에서 패키지는 디렉토리를 추상화하는 기법중 하나입니다. 파일처럼 인식하여 더블클릭 시 실행이 됩니다.
      보통 디렉토리의 경우에는 하위 디렉토리로 이동을 하지만요! 또한 디렉토리이기 때문에 세부내용을 볼 수 있습니다.
      예를 들어 파인더에서 Xcode 응용프로그램을 마우스 우클릭하시면 패키지내용보기가 있습니다. 하위 디렉토리에는 컨텐츠로 감싸져있으며 Xcode에 대한 많은 내용들이 있습니다.
      도대체 실행파일이면 실행파일이지 왜 이렇게 복잡하게 파일같은 디렉토리로 되어있을까요?
      이러한 방식으로 되어있는 이유는 사용자가 임의로 컨텐츠(실행코드,리소스 등)를 변경하는 것을 방지하기 위함이라고 합니다.
      오옷 조금씩 이해가 되기 시작합니다.. 이해가 되시나요?
      MacOS(파인더)에서는 .app, .bundle, .framework, .plugin 와 같은 확장자를 가진 디렉토리를 Package로 인식합니다.
      그러나… 여기서… 또 궁금증이 듭니다.
      애플리케이션도 패키지고..
      번들도 패키지고..
      프레임워크도 패키지이며… 플러그인도 패키지이다…
      패키지가 어렴풋이 개념이 잡히는데… 위와 같은 말은 가슴에..아니 머리에 와 닿지가 않습니다.
      물음표를 가진 채 … 번들을 찾으러..공식문서를 두들겨 봅시다..
      ** A Bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code.
      번들은 디렉토리이다! 표준화된 계층구조를 가지고! 실행 가능한 코드와 코드에 의해 사용되는 리소스를 가진 디렉토리이다!
      오… 이것도 디렉토리이군요! 패키지와는 조금 다른 용어들이 있다는 걸 눈치 채셨나요?
      번들은 패키지처럼 디렉토리의 한 종류이지만 실행 가능한 코드와 리소스를 포함하는 디렉토리입니다.
      또한 번들은 코드와 리소스의 구조를 정의(표준화된 계층구조!)합니다.
      좀 더 구분하기 쉽게 다가가기 위해선 왜 만들어졌는지에 대해 알아보면 이해가 빠를 것 같습니다.
      패키지는 사용자 환경을 개선하기 위해 존재하는 반면, 번들은 개발자가 코드를 패키징하고 운영 체제가 해당 코드에 액세스하는 것을 돕기 위해서 설계되었습니다.
      흔히들 번들과 패키지가 동일시 여기는 이유는 많은 유형의 번들이 동시에 패키지이기도 하기 때문입니다. 대표적인 예가 애플리케이션입니다. 파인더에서 사용자에게 단일한 파일로 노출되는 패키지면서 실행 코드와 리소스를 포함하여 번들이기도 하기 때문입니다.
      그러나 모든 번들이 패키지는 아니며 그 반대의 경우도 마찬가지입니다.
      두 가지에 대한 개념을.. 조금이나마.. 전달되고 이해가 되었으면 좋겠습니다.
      다음은..프레임워크와 라이브러리..에 대해 조금 공부해볼가 합니다 ㅎㅎ
      읽어주셔서 감사합니다~~
      잘못된 내용이나 추가내용은..답글 주시면 감사하겠습니다(꾸벅)

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 579

      좋은내용 고맙습니다!
      참고한 문서나 링크가 있다면 알려주셔도 좋을 것 같네요 😀

    • nobleidea
      참가자
      • 글작성 : 5
      • 답글작성 : 8

      참고문서 링크가 빠졌네요ㅠ
      https://nshipster.co.kr/bundles-and-packages/

    • nobleidea
      참가자
      • 글작성 : 5
      • 답글작성 : 8
    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 579
1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom