Swfit) static library, dynamic library의 차이에 대해서(feat. framework)

2023. 9. 7. 04:53·앱/Swift

Framework Vs Library

프레임워크

'특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램'

라이브러리

‘소프트웨어를 개발하기 쉽게 도와주는 여러 기능을 제공하는 도구’

가장 큰 차이점은 통제권이다.

프레임워크는, 통제권이 프레임워크한테 있다. 우리가 어떠한 소프트웨어를 만들기 위해서 특정 프레임워크를 사용한다면, 해당 프레임워크가 제공하는 룰 을 꼭 지켜서 만들어야 한다.

하지만 라이브러리는 그렇지 않다. 개발자가 원할때, 호출하는 것으로 능동적으로 사용할수 있는 도구인것.

Static Library

Untitled.png

c언어에서의 static library는, 소스코드를 컴파일후 생성되는 object코드에서 static link방식으로 라이브러리를 link하고 이를 통해 실행파일이 생성되는 과정의 라이브러리를 의미한다.

이처럼 실행파일에 라이브러리에서 사용한 코드를 결합하여, 프로그램 내부에 저장하게 된다.

  • 이로 인해 프로그램이 비대해지고 컴파일이 느려짐
  • Static library가 업데이트 되면 클라이언트 앱은 개발자가 업데이트 된 library와 다시 Link하지 않는 이상 업데이트 된 기능을 사용할 수 없다.

Dynamic Library

Untitled.png

다이나믹 라이브러리 또한 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
'앱/Swift' 카테고리의 다른 글
  • Swift) CodingKey, API명과 codable 타입 이름이 다를때 매핑하는법
  • Swift) NSCache와 NSDictionary
  • Swift) 비동기 프로그래밍에 대한 이해
  • Swift) Xcode, app thinning이란?
진ddang
진ddang
안녕하세요 진땅의 개발자 블로그 입니다. 피드백은 환영입니다. 깃헙 : https://github.com/it794613
    반응형
  • 진ddang
    맛동산이
    진ddang
  • 전체
    오늘
    어제
    • 분류 전체보기 (199)
      • 일기 그리고 목표 (1)
      • 웹 (20)
        • 리액트 (19)
      • 앱 (115)
        • Swift 문법 (15)
        • Swift (65)
        • SwiftUI (32)
        • 리액트 네이티브 (3)
      • CS (30)
        • 컴퓨터그래픽스 (8)
        • 운영체제 (6)
        • 네트워크 (16)
      • 알고리즘 (13)
        • 백준 (12)
        • 프로그래머스 (1)
      • 대외활동 (7)
        • ict한이음(2022.04) (2)
        • 멋쟁이 사자처럼 (5)
        • Apple Developer Academy (0)
      • 다양한 내용들 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SwiftUI
    composable architecture
    후기
    ReactorKit
    cs
    웹
    Swift
    swift concurrency
    운영체제
    dispatchqueue
    알고리즘
    문법
    영남대
    백준
    widget
    대외활동
    spritekit
    위젯킷
    리액트
    컴퓨터그래픽스
    네트워크
    c++
    멋사
    멋쟁이사자처럼
    스유
    Protocol
    uikit
    스위프트
    TCA
    widgetkit
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
진ddang
Swfit) static library, dynamic library의 차이에 대해서(feat. framework)
상단으로

티스토리툴바