Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SwiftUI
- cs
- 리액트
- 문법
- 멋쟁이사자처럼
- uikit
- 스위프트
- swift concurrency
- TCA
- widgetkit
- 위젯킷
- composable architecture
- 운영체제
- 영남대
- spritekit
- c++
- widget
- 대외활동
- 후기
- 알고리즘
- Swift
- 스유
- 1일1알골
- dispatchqueue
- Protocol
- 멋사
- 웹
- 컴퓨터그래픽스
- 백준
- 네트워크
Archives
- Today
- Total
맛동산이
Swfit) static library, dynamic library의 차이에 대해서(feat. framework) 본문
Framework Vs Library
프레임워크
'특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램'
라이브러리
‘소프트웨어를 개발하기 쉽게 도와주는 여러 기능을 제공하는 도구’
가장 큰 차이점은 통제권이다.
프레임워크는, 통제권이 프레임워크한테 있다. 우리가 어떠한 소프트웨어를 만들기 위해서 특정 프레임워크를 사용한다면, 해당 프레임워크가 제공하는 룰 을 꼭 지켜서 만들어야 한다.
하지만 라이브러리는 그렇지 않다. 개발자가 원할때, 호출하는 것으로 능동적으로 사용할수 있는 도구인것.
Static Library
c언어에서의 static library는, 소스코드를 컴파일후 생성되는 object코드에서 static link방식으로 라이브러리를 link하고 이를 통해 실행파일이 생성되는 과정의 라이브러리를 의미한다.
이처럼 실행파일에 라이브러리에서 사용한 코드를 결합하여, 프로그램 내부에 저장하게 된다.
- 이로 인해 프로그램이 비대해지고 컴파일이 느려짐
- Static library가 업데이트 되면 클라이언트 앱은 개발자가 업데이트 된 library와 다시 Link하지 않는 이상 업데이트 된 기능을 사용할 수 없다.
Dynamic Library
다이나믹 라이브러리 또한 static library와 동일한 링킹과정을 가진다.
하지만 중요한점은 다이나믹 라이브러리는 해당 라이브러리가 실행파일에 포함되는것이 아닌, 주소가 참조만 된다.
이렇게 참조된 값을 가지고 dyld(dynamic library loader) 가 라이브러리를 가지고 오게 된다. (실행시)
따라서 앱 사이즈도 작으며, 컴파일 시간이 좀더 짧다.
정리
static library는 실행파일안에 라이브러리 코드를 포함해서 링킹하여 실행파일을 생성
dynamic library는 실행파일 안에 라이브러리의 참조를 하여, 실행파일에 라이브러리가 포함되어 있지 않는 라이브러리를 의미한다.
반응형
'앱 > Swift' 카테고리의 다른 글
Swift) CodingKey, API명과 codable 타입 이름이 다를때 매핑하는법 (0) | 2024.01.01 |
---|---|
Swift) NSCache와 NSDictionary (0) | 2023.09.07 |
Swift) 비동기 프로그래밍에 대한 이해 (0) | 2023.08.31 |
Swift) Xcode, app thinning이란? (0) | 2023.08.31 |
Swift) UIApplicationMain, UIApplication, App delegate, UIApplicationDelegate (0) | 2023.08.31 |