언제 동적링킹라이브러리를 사용해야하고, 동적라이브러리를 사용함으로써 얻는 이점은 무엇인가요?

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • HyunSu Park
      참가자
      • 글작성 : 2
      • 답글작성 : 2

      제가 컴파일러 작동원리를 공부하면서, 라이브러리의 종류, 링킹방법을 배움으로써 윈도우 또는 리눅스에서 동적라이브러리를 사용함으로써 얻는 장점이 iOS에서도 존재하는지 궁금증이 들었습니다. 

      라이브러리는 동적,정적라이브러리로 나눌 수 있고, 각 라이브러리마다 링킹방식이 동적링킹과 정적링킹으로 나뉘는걸로 알고있습니다.

      또한 동적라이브러리를 사용함으로써 얻는 이점은, 각 어플리케이션들이 같은 동적라이브러리(윈도우에서는 .dll파일) 를 사용한다면 메모리를 절약할 수 있다는 것과 동적라이브러리를 변경하게될경우 어플리케이션을 재배포하는 것이 아닌, 동적라이브러리만 재배포할수 있다는 장점이 있다는것으로 알고있습니다.  ( 윈도우에서는 어떤 어플리케이션을 실행할때  ” XXX.dll 파일이 없습니다” 와 같이 경험한적이 있습니다. 그렇기때문에 사용자가 직접 dll파일을 다운받을 수 있구요 ) 

       

      Xcode에서는 프로젝트를 생성할때, framework와 static library를 선택할 수 있고, 각 프로젝트를 Mach-O 타입을 Excutable, Dynamic library, static library 등으로 지정할 수 있다고 알고있습니다.  그래서 Dynamic library로 선택할경우, 해당 프로젝트는 동적라이브러리로 만들어질것이고, 해당 라이브러리를 사용하는 다른 프로젝트가 컴파일될때는 동적링킹방식으로 컴파일될것이라고 예상합니다. 

      하지만 실제로 아이폰사용자가 동적라이브러리를 다운받거나,  설치된 앱들이 동적라이브러리를 같이 사용하는 경우가 존재한가요? 

      존재하지않는다면 동적라이브러리를 사용함으로써 얻는 큰 장점들이 없어지게되는데, 왜 동적라이브러리를 사용하는걸까요? 

      많이 검색하고 알아보았지만 명확한 대답을 들을수 없어서 질문하게되었습니다. 

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 579

      멋진 질문이네요!
      동적 라이브러리 파일은 사용자가 직접 다운로드 받을 수도 있지만 운영체제의 업데이트 등을 통해 패치가 이뤄질 수 있습니다.
      따라서 사용자의 필요에 의해 다운로드 받는 것만이 동적 라이브러리는 아닙니다.
      또, Xcode는 iOS 앱만을 위한 IDE가 아니기 때문에 macOS 등 다른 환경의 앱을 빌드하기 위한 설정도 포함하고 있습니다.
      해당 동적 라이브러리 방식은 macOS에서 주로 사용합니다.

      • HyunSu Park
        참가자
        • 글작성 : 2
        • 답글작성 : 2

        너무 감사드립니다. 🙏🏻

1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom