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 등)을 통해 라이브러리를 호출.
프레임워크는 여러 라이브러리와 프레임워크를 래핑 가능.