티스토리 뷰

IT 용어 정리

라이브러리(Library)

ljy98 2021. 8. 27. 21:59

1. 라이브러리 (Library)

라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있다. 라이브러리는 정적 라이브러리와 동적 라이브러리로 구분할 수 있다.

 

[그림 1] Static Linking과 Dynamic Linking

 

2. 정적 라이브러리 (Static Linking Library)

정적 라이브러리는 컴파일 타임에 호출자가 resolve하는 루틴, 외부 함수, 변수의 집합으로 목적 파일과 단독 실행 파일 생성 중에 컴파일러와 링커에 의해 대상 애플리케이션에 복사된다. 실행 파일을 이와 같은 방식으로 컴파일하는 과정 또는 실행 파일 그 자체를 프로그램의 정적 빌드라고 부른다. 

장점 : 애플리케이션이 자신의 모든 라이브러리들이 존재하고 그것이 정확한 버전인 것을 확신할 수 있다.

           정적 링킹은 애플리케이션이 단일 실행 파일에 포함되게 함으로써 배포와 설치를 간단하게 만든다. 

 

3. 동적 라이브러리 (DLL, Dynamic Linking Library)

DLL은 내부에는 다른 프로그램이 불러서 쓸 수 있는 다양한 함수들을 가지고 있는데, 확장DLL인 경우는 클래스를 가지고 있기도 한다. DLL은 COM(Component Object Model)을 담는 그릇의 역할도 한다. 사용하는 방법에는 두 가지가 있는데, 묵시적 링킹(Implicit linking)과 명시적 링킹(Explicit linking)이 있다.

묵시적 링킹 실행 파일 자체에 어떤 DLL의 어떤 함수를 사용하겠다는 정보를 포함시키고 운영체제가 프로그램 실행 시 해당 함수들을 초기화한 후 그것을 이용하는 방법
명시적 링킹 프로그램이 실행 중일 때 API를 이용하여 DLL 파일이 있는지 검사하고 동적으로 원하는 함수만 불러와서 쓰는 방법

묵시적 링킹은 컴파일러가 자동으로 해주는 경우가 많고, 명시적 링킹은 사용하고자 하는 DLL이나 함수가 실행 환경에 있을지 없을지 잘 모르는 경우에 사용된다.

 

4. DLL 인젝션 (DLL injection)

DLL 인젝션은 다른 프로세스의 주소 공간 내에서 DLL을 강제로 로드시킴으로써 코드를 실행시키는 기술이다. DLL 인젝션은 외부 프로그램을 통해 다른 프로그램에 저작자가 의도하거나 예상하지 않은 영향을 미치기 위해 사용된다. 예를 들면, 삽입된 코드는 시스템 함수 호출을 후킹(hooking)하거나 또는 보통 방식으로는 읽을 수 없는 패스워드 텍스트 박스의 내용을 읽을 수 있다. 임의적인 코드를 삽입하는데 사용되는 프로그램을 DLL injector라고 한다. 

'IT 용어 정리' 카테고리의 다른 글

인코딩(Encoding)  (0) 2021.08.30
[21.07.08] IT 용어 정리  (0) 2021.07.08
[21.07.07] IT 용어 정리  (0) 2021.07.07
[21.07.06] IT 용어 정리  (0) 2021.07.06
[21.07.05] IT 용어 정리  (0) 2021.07.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함