SW/WEB WAS

[Apache] 아파치 모듈 관리하기_Static, DSO 방식 비교

yeit 2024. 10. 5. 13:44
728x90

 

 

기본적으로 아파치의 기능들은 모듈화하여 제공되며, 사용자들은 필요한 모듈을 추가하거나 제거할 수 있다. 이러한 모듈을 관리하는 방법에는 정적 모듈(Static Modules)과 동적 모듈(DSO, Dynamic Shared Object) 두 가지가 있다.

 

 

Static 방식

Apache를 컴파일할 때 필요한 모든 모듈을 포함하여 정적으로 빌드하는 방식이다.

이 경우에는 Apache를 시작할 때 모든 모듈이 메모리에 로드된다. Apache를 컴파일할 때 필요한 모든 모듈을 빌드하기 때문에 초기 로딩 속도가 빠르고 의존성을 신경쓰지 않아도 된다는 장점이 있지만, 불필요한 모듈까지 포함되어 메모리가 낭비될 수도 있다는 단점이 있다. 또한 새로운 모듈을 추가하거나 제거할 시에는 Apache 재컴파일이 필요하다.

 

 

 

DSO(Dynamic Shared Object) 방식

Static 방식는 다르게 필요한 모듈만 동적으로 로드하는 방식이다. 

Apache 설정 파일인 httpd.conf에서 LoadModule을 사용해 필요한 모듈을 로드할 수 있다. 필요한 모듈만 로드하기 때문에 메모리 사용량을 줄일 수 있고, Apache 재시작 없이도 모듈을 추가하거나 제거할 수 있다는 장점이 있다. 하지만 특정 모듈 로드 시에는 약간의 지연이 발생할 수 있고, 모듈 간 의존성 관리가 필요하다는 단점이 있다.

 

 

 

비교

특징 Static Modules Dynamic Modules(DSO)
로드 방식 Apache 컴파일 시 모든 모듈 빌드 필요한 모듈만 동적으로 로드
유연성 모듈 추가/제거 시 Apache 재시작 필요 Apache 재시작 없이도 쉽게 모듈 추가/제거 가능
메모리 사용률 모든 모듈이 항상 메모리 차지 필요한 모듈만 메모리에 로드
성능 초기 로딩 속도 빠름 특정 모듈 로드 시 지연 발생
의존성 의존성 문제가 적음 모듈 간 의존성 관리 필요

 

728x90