Library
라이브러리 (Library)
라이브러리는 프로그램이 사용할 수 있는 패키지로, 여러 Object 파일들의 모음입니다.
1. 정적 라이브러리 (Static Library)
정적 라이브러리는 소스 코드를 컴파일하여 Object Code로 변환한 후, 이를 Execute File에 결합하는 방식입니다. 이는 프로그램이 실행될 때 사용할 코드들을 모두 Execute File에 복사하여 사용하는 것을 의미합니다.
장점:
- 런타임 속도가 빠릅니다.
단점:
- Execute File의 크기가 증가하며, 프로그램 시작 시간이 길어질 수 있습니다.
- 메모리를 많이 먹습니다.
2. 공유 라이브러리 (Shared Library 또는 Dynamic Library)
공유 라이브러리는 링크 시에 라이브러리의 참조만을 저장하고, 실행 파일에 라이브러리 코드가 패키징되지 않습니다. 대신 특정 주소에 라이브러리 코드가 위치하고, 실행 시에 해당 주소를 참조하여 동적으로 라이브러리를 사용합니다.
장점:
- Execute File의 크기가 정적 라이브러리보다 작아집니다.
- 컴파일 속도가 빠릅니다.
- 메모리에 효율적입니다.
- 프로그램 시작 시간이 짧아집니다.
단점:
- 런타임 속도가 느립니다.
동적 링크 (Dynamic Link)
동적 라이브러리는 실행 파일이 실행될 때, 라이브러리 코드를 적절한 주소에 동적으로 할당하여 사용합니다. 이는 실행 파일에 라이브러리 코드를 복사하지 않고도 라이브러리를 사용할 수 있게 합니다.
참고 사항:
- iOS에서는 동적 라이브러리를 사용하는 것이 정적 라이브러리보다 효율적일 수 있습니다.
- 라이브러리는 프로그램의 모듈성을 향상시키고, 코드의 재사용성을 촉진하는 중요한 요소입니다.
실행 파일 (Execute File)이란?
실행 파일은 컴퓨터에서 직접 실행할 수 있는 프로그램을 포함하는 파일입니다. 일반적으로 이 파일은 컴파일된 코드
, 라이브러리
, 데이터
, 그리고 프로그램이 동작하는 데 필요한 다양한 정보를 포함하고 있습니다.
특징
- 확장자: macOS에서는
.exe
- 실행 권한: 실행 파일은 실행 권한이 부여되어 있어야 하며, 이는 해당 파일이 실행될 수 있도록 하는 권한을 의미합니다.