EEYatHo 앱 깎는 이야기

Swift ) Swift에서의 라이브러리(정적, 공유, 동적)와 프레임워크 - EEYatHo iOS 본문

iOS, Swift/Swift Theory

Swift ) Swift에서의 라이브러리(정적, 공유, 동적)와 프레임워크 - EEYatHo iOS

EEYatHo 2021. 2. 16. 21:44
반응형

라이브러리


  • iOS에서의 라이브러리 : 프로그램이 연결할 수 있는 패키징된 객체 파일들의 모음

  • 정적(Static) 라이브러리와
    공유(Share) 라이브러리가 있음. ( = 동적 라이브러리 )

    • 정적 라이브러리
      - 라이브러리가 주된(main) 실행파일의 코드에 패킹되어 있음.
      - 빌드 시스템이 가장 단순.
      - 실행 프로그램에 코드가 물리적으로 복사되어 올라감.

    • 공유(동적) 라이브러리
      - 링커에 라이브러리의 참조만 저장.
      - 프로그램이 실행중에 공유 라이브러리가 필요한 순간에 메모리에 로드.
      - 심볼과 참조를 결정짓고 해당 라이브러리를 사용.
      - macOS에서 공유 라이브러리의 확장자는 .dylib

 

 

 

프레임워크


  • 라이브러리는 단순히 실행가능한 코드이지만,
    프레임워크는 공유라이브러리 + 헤더 + 각종 리소스를 포함하는 번들 (or 디렉토리 ).

  • 프레임워크에 포함되어야 할 것.

    • 프레임워크를 설명하는 문서 (어떤 용도이며 왜 쓰는지 등)
    • API 명세 (개발자가 프레임워크를 사용하면서 접근 가능한 API들에 대한 명세)
    • 공유하는 라이브러리 (캡슐화된 소스코드)
    • 추가적인 리소스들 (Views, Controls, Custom Appearance/UI, Assets, Configuration Files)

 

ex ) MyCustomFramework의 구조. 확장자는 .framework

Sub Framework 1

Sub Framework 2

Version 1.0

   - Library

   - Header

   - Resource

Version 1.1(Current Version - Symbolic Link)

   - Library

   - Header

   - Resources

 

 

 

  • 프레임워크와 라이브러리의 차이

본질적으로 라이브러리는 호출 가능한 클래스의 집합체이며,

일반적으로 개발자는 프레임워크의 인터페이스(API, Control 등)을 통해 라이브러리를 호출.

프레임워크는 여러 라이브러리와 프레임워크를 래핑 가능.

Comments