| Current Path : /proc/thread-self/root/usr/share/doc/apache2-doc/manual/ko/ |
| Current File : //proc/thread-self/root/usr/share/doc/apache2-doc/manual/ko/dso.html |
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="ko"><head><META http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>����������ü (DSO) ���� - Apache HTTP Server Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>
<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/index.html">���</a> | <a href="./mod/quickreference.html">���þ��</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">���</a> | <a href="./sitemap.html">���Ʈ��</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Server Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./index.html"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="./index.html">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>����������ü (DSO) ����</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>������ ���: </span><a href="../en/dso.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/dso.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/dso.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/dso.html" title="Korean"> ko </a> |
<a href="../tr/dso.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
<div class="outofdate">�� ������ �ֽ��� ������ �ƴմϴ�.
�ֱٿ� ����� ���� ���� ������ ����ϼ���.</div>
<p>����ġ �������� �����ڰ� ���� �����Ͽ� ������ �����
���� ���� �� �ִ� ���ȭ�� ��α��̴�. ������ �����Ҷ�
<code>httpd</code> ������Ͽ� �������� ��� �������
�� �ִ�. �ƴϸ� ��� <code>httpd</code> ������ϰ�
�и��Ͽ� ����������ü(Dynamic Shared Objects, DSO)�� �������
�� �ִ�. DSO ��� ������ ������Ҷ� ������ϰų�, Apache
Extension Tool (<a href="programs/apxs.html">apxs</a>)��
����Ͽ� ���߿� ������Ͽ� �߰��� �� �ִ�.</p>
<p>�� ������ DSO ��� ����� ��� �̷�� �����Ѵ�.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#implementation">���</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#usage">��� ���</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#background">�����</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#advantages">����</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="implementation">��� <a title="Permanent link" href="#implementation" class="permalink">¶</a></h2>
<table class="related"><tr><th>���õ� ���</th><th>���õ� ���þ�</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_so.html">mod_so</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code></li></ul></td></tr></table>
<p>����ġ �ٽɿ� �������� ������ؾ���
<code class="module"><a href="./mod/mod_so.c.html">mod_so.c</a></code>��� ��� ����ġ ���
�о��̱��� DSO�� �����Ѵ�.
�� ��� <code class="module"><a href="./mod/core.html">core</a></code>�� �����ϰ� DSO��
�� �� ���� ������ ���̴�. ����� �ٸ� ��� ����ġ ���
<a href="install.html">��ġ ����</a>���� ������
<code>configure</code>�� <code>--enable-<em>module</em>=shared</code>
�ɼ�� ����Ͽ� DSO�� ������� �� �ִ�. ���
<code>mod_foo.so</code>�� ���� DSO�� ��������� <code>apache2.conf</code>
��Ͽ� <code class="module"><a href="./mod/mod_so.html">mod_so</a></code>��
<code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> ��ɾ
����Ͽ� ���� ��۽� Ȥ�� ���۽� �� ��� �о��� ��
�ִ�.</p>
<p>����ġ ���(Ư� ����ڰ� ���� ���)�� ����� DSO ���� ����
������� <a href="programs/apxs.html">apxs</a> (<em>APache
eXtenSion</em>)��� ���ο� ���� ��α��� �ִ�. �� ��α���
����ġ �ҽ� Ʈ�� <em>�ۿ���</em> DSO�� ����� ���
������Ҷ� ����Ѵ�. ���� ����. ����ġ�� ��ġ�Ҷ�
<code>configure</code>�� <code>make install</code>��
����ġ C ������ ��ġ�ϰ�, DSO ���� ������ϱ���
�÷�� Ư���� ����Ϸ� �ɼǰ� ��Ŀ �ɼ�� <code>apxs</code>
��α��� ����Ѵ�. ���� <code>apxs</code>�� ����ϴ� ���ڴ�
����ġ ����� �ҽ� Ʈ������, �� DSO ������ ���� �÷�� Ư����
����Ϸ� �ɼǿ� ��Ŀ �ɼǿ� �Ű� �����ʰ� �ڽ�� ����ġ
��� �ҽ��� ������� �� �ִ�.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="usage">��� ��� <a title="Permanent link" href="#usage" class="permalink">¶</a></h2>
<p>Apache 2.2�� DSO ��ɿ� ���� ª�� ������ ���̴�:</p>
<ol>
<li>
<em>������� �ִ�</em> ����ġ ��� ������ϰ� ��ġ�ϴ�
���. ���� ��� <code>mod_foo.c</code>�� DSO
<code>mod_foo.so</code>��:
<div class="example"><p><code>
$ ./configure --prefix=/path/to/install --enable-foo=shared<br>
$ make install
</code></p></div>
</li>
<li>
<em>����ڰ� ����</em> ����ġ ��� ������ϰ� ��ġ�ϴ�
���. ���� ��� <code>mod_foo.c</code>�� DSO
<code>mod_foo.so</code>��:
<div class="example"><p><code>
$ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared<br>
$ make install
</code></p></div>
</li>
<li>
���� ��� <em>���߿� ����ϱ���</em> ����ġ�� �����ϴ�
���:
<div class="example"><p><code>
$ ./configure --enable-so<br>
$ make install
</code></p></div>
</li>
<li>
<em>����ڰ� ����</em> ����ġ ��� ������ϰ� ��ġ�ϴ�
���. <a href="programs/apxs.html">apxs</a>�� ����Ͽ�
����ġ �ҽ� Ʈ�� <em>�ۿ���</em> <code>mod_foo.c</code>��
DSO <code>mod_foo.so</code>��:
<div class="example"><p><code>
$ cd /path/to/3rdparty<br>
$ apxs -c mod_foo.c<br>
$ apxs -i -a -n foo mod_foo.la
</code></p></div>
</li>
</ol>
<p>��� ��� �ϴ� ���� ���� ����ϵǸ�, <code>apache2.conf</code>��
<code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> ���þ
����Ͽ� ����ġ�� �� ��� �о��̰� �����.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="background">����� <a title="Permanent link" href="#background" class="permalink">¶</a></h2>
<p>����� ���н������� <em>����������ü</em> (DSO)��
���� ��ŷ/�ε�(dynamic linking/loading)�̶�� �Ͽ�, Ư����
���� �����ڵ� ������ ����� ������ ������α���
�ּҰ����� �о��̴� ��� ���� �ִ�.</p>
<p>���� �ΰ��� ������ �о��� �� �ִ�. �ϳ��� ������α���
����Ҷ� <code>ld.so</code>��� �ý��� ��α��� �ڵ�����
�о��̴� ����, �ٸ� �ϳ��� ������ ��α���
<code>dlopen()/dlsym()</code> �ý���ȣ��� ���н� �δ�(loader)��
�ý��� ������̽��� ����Ͽ� ���� �о��̴� ����.</p>
<p>ù��° ��� DSO�� ���� <em>������̺귯��(shared libraries)</em>
Ȥ�� <em>DSO ��̺귯��</em>��� �θ���, ����
<code>libfoo.so</code>�� <code>libfoo.so.1.2</code> ����
�̸��� ������. �̵� �ý��� ���丮(���� <code>/usr/lib</code>)��
�ְ�, ����Ͻ� ��Ŀ ��ɾ <code>-lfoo</code>�� �־�
������ϰ� �����Ѵ�. �̷��� ���� ��� ��̺귯���� ������Ͽ�
����ǿ���, ��α��� ����Ҷ� ��Ŀ �ɼ� <code>-R</code>��
���� ������ ���, ȯ�溯�� <code>LD_LIBRARY_PATH</code>��
������ ��� Ȥ�� <code>/usr/lib</code>���� ���н� �δ���
<code>libfoo.so</code>�� ã�� �� �ִ�. ���� ������α���
(��� ��ã��(unresolved)) �ɺ�(symbol)�� DSO���� ã�Եȴ�.</p>
<p>DSO�� ���� ������α��� �ɺ��� ã���ʱ� ������ (DSO��
���밡���� �Ϲ���� �ڵ� ��̺귯���̹Ƿ�) ã��� ���⼭
������. ���н� �δ��� �ɺ� ã�⸦ ���� ����ϹǷ� ������α���
���� DSO���� �ɺ��� ã�� �ʿ䰡 ����. (��� <code>ld.so</code>��
�θ��� �ڵ�� ������ �ƴ� ��� ������α��� ��ũ�Ǵ� �����
����ڵ�� �Ϻδ�.) ����� ��̺귯�� �ڵ带 �������� �о��̴�
���� ��Ȯ�ϴ�. ��̺귯�� �ڵ尡 ��� ��α��� �ߺ��ؼ�
����Ǵ� ��� <code>libc.so</code>�� ���� �ý��� ��̺귯����
�ѹ��� ����DZ� ������ ��ũ ������ ����ȴ�.</p>
<p>�ι�° ��� DSO�� ���� <em>������ü(shared objects)</em>
Ȥ�� <em>DSO ���</em>�̶�� �θ���, (��Ģ�� �̸���
<code>foo.so</code>�����) ���� Ȯ��ڴ� ����Ӵ�. ��
��ϵ� ���� ��α� ��ü ���丮�� ��ġ�ϰ� ������α���
�ڵ����� ������ �ʴ´�. ��� ������α��� �����
<code>dlopen()</code>�� ����Ͽ� DSO�� �ּҰ�����
���� �о�鿩�� �Ѵ�. �̶� ������α��� DSO���� �ɺ���
ã�� �ʴ´�. ��� �տ��� �� ���н� �δ��� �ڵ����� ������ϰ�
�������� �̹� �о��� DSO ��̺귯��(Ư� �� �����ϴ�
<code>libc.so</code>�� ��� �ɺ�)���� DSO�� (��� ��ã��)
�ɺ��� ã�´�. ���� DSO�� ��ġ ó������ ������α���
�������� ��ũ�ȰͰ� ���� �������� �ɺ��� �˰Եȴ�.</p>
<p>DSO�� API�� �̿��ϱ��ؼ� ���������� ������α���
<code>dlsym()</code>���� DSO���� Ư�� �ɺ��� ã�Ƽ�, �����
����ϱ��� ����ġ(dispatch) ǥ <em>��</em>�� �����Ѵ�.
�ٸ� ���� ������α��� ����� ��� �Ǻ��� ���� ã�ƾ��Ѵ�.
�̷� ������ ���� ��α��� �Ϻθ� ��α���
�ʿ��Ҷ��� �о���� �ʾƵ� (���� �� �������
�ʰ�) �ȴٴ� ���̴�. �⺻ ��α��� ���� Ȯ���ϱ���
�ʿ��� ��� �� �κ�� �������� �о��� �� �ִ�.</p>
<p>�̷� DSO ������ �ڿ������� �������, �ּ��� ���� ����
�Ѱ����ִ�. ��α��� Ȯ���ϱ��� DSO�� ����Ҷ� DSO��
������α��� �ɺ��� ã�� ��̴�. ��? DSO�� ������α���
�ɺ��� "������ ã�� ��"�� (��̺귯���� �ڽ�� ����ϴ� ��α���
���� �ٴ�) ��̺귯�� ���迡 ���ϸ�, ��� �÷������
��������ʰ� ǥ��ȭ����� �ʾұ� �����̴�. ����� ��������
�����ɺ�(global symbol)�� ���� �ͽ��Ʈ(export)��� �ʱ����
DSO�� ����� �� ����. DSO�� ����Ͽ� ����� ��α��� Ȯ���Ϸ���
��Ŀ���� ��� �����ɺ��� �ͽ��Ʈ�ϵ��� �����ϴ� ��� �ֵ�
�ذ�å�̴�.</p>
<p>������̺귯���� DSO ���� ����Ģ��� ������̱����
�ü���� �����ϴ� ��� ��� ������ ��̺귯���� ����Ѵ�.
�ݴ�� ���� ��α��� ��α��� Ȯ���ϱ��� ������ü��
������ �ʴ´�.</p>
<p>1998�� ����� ����� ���� Ȯ���ϱ��� DSO ������ �����
���Ʈ���� ��Ű���� (XS ������ DynaLoader ��� �����)
Perl 5, Netscape Server <em>��</em>���� �幰����. ����ġ��
�̹� ���� Ȯ���ϱ��� ��� ���� ����߰� �ܺ� ���
����ġ �ٽɱ�ɿ� �����ϱ��� ��������� ����ġ����
�̿��� ���ٹ��� ����߱���� 1.3 �������� �� �뿭�� �շ��ߴ�.
���� ����ġ�� ����� ��� �о��̴µ� DSO�� ����ϵ���
���������.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="advantages">���� <a title="Permanent link" href="#advantages" class="permalink">¶</a></h2>
<p>�տ��� ���� DSO�� ����ϸ� ����� ���� ���� �ִ�:</p>
<ul>
<li>��� ���� ��μ����� ����Ͻ� <code>configure</code>
�ɼǴ�� <code>apache2.conf</code>�� <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>�� ����Ͽ� ����߿�
���յǹǷ� ���� ��Ű�� ����� �� �����ϴ�. ���� ��� �ѹ���
����ġ ��ġ������ �ٸ� ����(ǥ�� ������ SSL ����, �ּ�ȭ
������ ����߰� ���� [mod_perl, PHP3] <em>��</em>)�� ������
�� �ִ�.</li>
<li>������ ��ġ�Ŀ��� ����ڰ� ���� ��� ����Ͽ� ����
Ȯ���� �� �ִ�. �ּ��� ���� ��Ű�� ����ڴ� ����ġ �ٽ�
������ ������ PHP3, mod_perl, mod_fastcgi <em>��</em>��
�߰� ��Ű���� ���� �� �־ ū �̵�̴�.</li>
<li>DSO�� <code>apxs</code>�� ������ ����ġ �ҽ� Ʈ�� �ۿ���
�۾��ϰ� <code>apxs -i</code>�� <code>apache2ctl restart</code>
��ɾ���� ��� ������ ���� �� ������ ������ ����ġ
������ �ݿ��� �� �־ �� ���� ����ġ ��� ������ ��
�ִ�.</li>
</ul>
<p>DSO�� ����� ���� ����� �ִ�:</p>
<ul>
<li>��α��� �ּҰ����� �ڵ带 �������� �о��̴� ����
��������ʴ� �ü���� �ֱ� ������ ��� �÷������ DSO��
����� �� ����.</li>
<li>���н� �δ��� �ɺ��� ã�ƾ��ϱ� ������ ���� ����
�� 20% ���� �ʾ���.</li>
<li>������ ��ġ�����ڵ�(position independent code, PIC)
������ ����ּ����(absolute addressing)���� ����
���ּ����(relative addressing)�� ������ ���� ����
�ʿ��ϹǷ� � �÷������ ����� �� 5% ���� �ʴ�.</li>
<li>DSO ��� �ٸ� DSO��� ��̺귯��(<code>ld -lfoo</code>)��
��ũ�� �� ���� �÷���� �ֱ���� (���� ��� ELF���
�÷���� ��������� a.out��� �÷���� ���� �� ����
������� �ʴ´�) ��� ������ �� DSO�� ����� �� ����.
�ٸ� ���� DSO ��Ϸ� ������ϴ� ��� ����ġ �ٽɰ� ����ġ
�ٽ�� ����ϴ� C ��̺귯��(<code>libc</code>)�� �ٸ�
����/���� ��̺귯��, ��ġ�����ڵ带 ��� �ִ� ���� ��̺귯��
��ī�̺�(<code>libfoo.a</code>)�� �ɺ����� ����� �� �ִ�.
�ٸ� �ڵ带 ����Ϸ��� ����ġ �ٽ�� �װ�� ����ϴ���,
<code>dlopen()</code>���� ���� �ڵ带 �о�鿩�� �Ѵ�.</li>
</ul>
</div></div>
<div class="bottomlang">
<p><span>������ ���: </span><a href="../en/dso.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/dso.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/dso.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/dso.html" title="Korean"> ko </a> |
<a href="../tr/dso.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/index.html">���</a> | <a href="./mod/quickreference.html">���þ��</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">���</a> | <a href="./sitemap.html">���Ʈ��</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '☰';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>