Skip to content
박성준 edited this page Feb 21, 2019 · 4 revisions

👨‍💻 고민거리

  • Cocoa Touch Framework와 Cocoa Touch Static Library의 차이점은 무엇인가?

Library

  • 프로그램이 연결할 수 있는 패키징된 객체 파일들의 모음
  • Static Library(정적 라이브러리)
    • 주된(main) 실행파일의 코드에 패킹되어 있습니다.
    • 프로그램 연결을 위해 사용
    • 각 Major 모듈이 자체 정적 라이브러리에 저장되는 빌드 시스템을 단순화하고 이후 모든 정적 라이브러리가 함께 링크되어 최종으로 실행 가능 프로그램을 작성
  • Shared Library(공유 라이브러리)
    • 링커(the linker)는 단지 라이브러리의 참조만 저장하고 그 자체는 주된(main) 실행파일에 패키징 되어 있지 않습니다.
    • 공유 라이브러리는 물리적인 RAM에 한번 올라가고 여러 애플리케이션 프로세스간에 공유 됩니다.
    • 그러나 공유 라이브러리의 객체에 사용되어지는 공간은 애플리케이션에 따라서 다릅니다.

Framework

  • 라이브러리는 단지 실행 가능한 코드이지만, 프레임워크는 공유라이브리와 헤더 및 다른 리소스의 하위 디렉토리를 포함하는 번들(디렉터리 구조)입니다.
  • 프레임워크는 다음의 내용들을 포함합니다.
    • 공유된 라이브러리
    • API를 설명하는 헤더파일들
    • 문서(Documentation)
    • 추가적인 리소스들(Views, Controls, Custom UI, Assets...)

차이점

  • Inversion of Control은 라이브러리와 프레임워크를 차이나게 만드는 가장 핵심적인 부분
    • 라이브러리는 직접 해당 코드가 호출되어지는 것이고, 프레임워크는 프레임워크가 해당 코드를 호출함
    • 라이브러리는 본질적으로 우리가 호출할 수 있는 클래스들의 집합입니다.
    • 프레임워크는 더 많은 행동이 포함된 추상디자인을 구현합니다.
      • 이를 사용하려면 프레임워크의 여러 위치에 하위 클래스를 추가하거나, 코드를 삽입하여 우리의 행동을 추가해야합니다.
Clone this wiki locally