티스토리 뷰

https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WhatAreFrameworks.html

 

What are Frameworks?

What are Frameworks? A framework is a hierarchical directory that encapsulates shared resources, such as a dynamic shared library, nib files, image files, localized strings, header files, and reference documentation in a single package. Multiple applicatio

developer.apple.com

프레임워크는 공유된 recources (dynamic shared library, nib files, image files, localized strings, header files, and reference documentation)를 single package로 캡슐화하는 계층형 디렉토리입니다.

여러 응용프로그램에서 이 모든 리소스를 동시에 사용할 수 있습니다.

시스템은 필요에 따라 해당 리소스를 메모리에 로드하고 가능한 경우 모든 응용프로그램 간에 리소스 복사본을 공유합니다.

 

 

프레임워크는 번들이며, 해당 컨텐츠는 Core Foundation Bundle Services 또는 Cocoa NSBundle 클래스를 사용하여 액세스할 수 있습니다.

그러나 대부분의 번들과 달리 프레임워크 번들은 파인더에 숨김 파일로 나타나지 않습니다.

프레임워크 번들은 사용자가 탐색할 수 있는 표준 디렉터리입니다.

이를 통해 개발자는 프레임워크 내용을 더 쉽게 탐색하고 포함된 문서 및 헤더 파일을 볼 수 있습니다.

 

 

프레임워크는 정적 및 동적 공유 라이브러리와 같은 도움을 제공합니다.

즉, 애플리케이션이 특정 작업을 수행하기 위해 호출할 수 있는 루틴(틀, 방법)들의 라이브러리를 제공합니다.

예를 들어 Application Kit 및 Foundation 프레임워크는 코코아 클래스 및 메소드에 대한 프로그래밍 인터페이스를 제공합니다.

 

프레임워크는 정적 링크 라이브러리 및 기타 유형의 동적 공유 라이브러리에 비해 다음과 같은 이점을 제공합니다.

  • 프레임워크는 관련되지만 분리된 자원을 함께 그룹화합니다. 이렇게 그룹화하면 이러한 리소스를 더 쉽게 설치, 제거 및 찾을 수 있습니다.
  • 프레임워크는 라이브러리보다 더 다양한 리소스 유형을 포함할 수 있습니다. 예를 들어 프레임워크에는 관련된 헤더 파일과 설명서가 포함될 수 있습니다.
  • 프레임워크의 여러 버전을 동일한 번들에 포함할 수 있습니다. 따라서 이전 프로그램과 역호환될 수 있습니다.
  • 프레임워크의 읽기 전용 리소스 복사본은 리소스를 사용하는 프로세스 수에 관계없이 한 번에 물리적으로 메모리에 상주합니다. 이러한 리소스 공유는 시스템의 메모리 공간을 줄이고 성능을 향상시키는 데 도움이 됩니다.

참고: 프레임워크는 프로그래밍 인터페이스를 제공할 필요가 없으며 리소스 파일만 포함할 수 있습니다. 그러나 그러한 사용은 흔하지 않습니다.

 

Darwin 계층은 많은 정적 및 동적 라이브러리를 포함하지만 그렇지 않은 경우 대부분의 OS X 인터페이스는 프레임워크로 패키징됩니다.

Carbon, Cocoa, Application Services 및 Core Services와 같은 일부 핵심 프레임워크는 작지만 관련성이 있는 여러 프레임워크의 편리한 그룹화를 제공합니다.

이러한 프레임워크 그룹은 umbrella 프레임워크라고 불리며 기술과 그 기술을 구현하는 서브프레임워크 사이에서 추상화 계층 역할을 합니다.

 

시스템 프레임워크를 사용할 수 있을 뿐만 아니라, 자신만의 프레임워크를 만들어 자신의 애플리케이션에 비공개로 사용하거나 다른 개발자가 공개적으로 사용할 수 있도록 할 수도 있습니다.

Private 프레임워크는 사용자가 자신의 응용 프로그램에서 사용하기를 원하지만 다른 개발자가 사용하기를 원하지 않는 코드 모듈에 적합합니다.

Public 프레임워크는 다른 개발자들이 사용하도록 고안되었으며 일반적으로 프레임워크의 public 인터페이스를 정의하는 헤더와 문서를 포함합니다.

 

같이 읽으면 좋은 글

라이브러리?

https://baechukim.tistory.com/130

 

[iOS] 라이브러리 - Static/Dynamic Library

정적/동적 라이브러리 (이하 스태틱/다이나믹 라이브러리) Overview of Dynamic Libraries 앱의 퍼포먼스를 결정하는 중요한 두가지 요소는 앱 실행 시간과 메모리 공간입니다. 앱의 실행가능한 파일의

baechukim.tistory.com

 

댓글
공지사항