Skip to main content

Library

라이브러리 (Library)​

라이브러리는 프로그램이 사용할 수 있는 패키지로, 여러 Object 파일들의 모음입니다.

1. 정적 라이브러리 (Static Library)​

정적 라이브러리는 소스 코드를 컴파일하여 Object Code로 변환한 후, 이를 Execute File에 결합하는 방식입니다. 이는 프로그램이 실행될 때 사용할 코드들을 모두 Execute File에 복사하여 사용하는 것을 의미합니다.

장점:​

  • 런타임 속도가 빠릅니다.

단점:​

  • Execute File의 크기가 증가하며, 프로그램 시작 시간이 길어질 수 있습니다.
  • 메모리를 많이 먹습니다.

2. 공유 라이브러리 (Shared Library 또는 Dynamic Library)​

공유 라이브러리는 링크 시에 라이브러리의 참조만을 저장하고, 실행 파일에 라이브러리 코드가 패키징되지 않습니다. 대신 특정 주소에 라이브러리 코드가 위치하고, 실행 시에 해당 주소를 참조하여 동적으로 라이브러리를 사용합니다.

장점:​

  • Execute File의 크기가 정적 라이브러리보다 작아집니다.
  • 컴파일 속도가 빠릅니다.
  • 메모리에 효율적입니다.
  • 프로그램 시작 시간이 짧아집니다.

단점:​

  • 런타임 속도가 느립니다.

동적 라이브러리는 실행 파일이 실행될 때, 라이브러리 코드를 적절한 주소에 동적으로 할당하여 사용합니다. 이는 실행 파일에 라이브러리 코드를 복사하지 않고도 라이브러리를 사용할 수 있게 합니다.

참고 사항:​

  • iOS에서는 동적 라이브러리를 사용하는 것이 정적 라이브러리보다 효율적일 수 있습니다.
  • 라이브러리는 프로그램의 모듈성을 향상시키고, 코드의 재사용성을 촉진하는 중요한 요소입니다.

실행 파일 (Execute File)이란?​

실행 파일은 컴퓨터에서 직접 실행할 수 있는 프로그램을 포함하는 파일입니다. 일반적으로 이 파일은 컴파일된 코드, 라이브러리, 데이터, 그리고 프로그램이 동작하는 데 필요한 다양한 정보를 포함하고 있습니다.

특징​

  • 확장자: macOS에서는 .exe
  • 실행 권한: 실행 파일은 실행 권한이 부여되어 있어야 하며, 이는 해당 파일이 실행될 수 있도록 하는 권한을 의미합니다.