]> granicus.if.org Git - apache/blob - docs/manual/dso.html.ko.euc-kr
remove the relativepath element from the documents.
[apache] / docs / manual / dso.html.ko.euc-kr
1 <?xml version="1.0" encoding="EUC-KR"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
6 <!-- ¿ë¾î °°ÀÌ ±âÁ¦ -->
7   <head>
8     <meta name="generator" content="HTML Tidy, see www.w3.org" />
9
10     <title>µ¿Àû°øÀ¯°´Ã¼ (DSO) Áö¿ø</title>
11   </head>
12   <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
13
14   <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
15   vlink="#000080" alink="#FF0000">
16     <!--#include virtual="header.html" -->
17
18     <h1 align="center">µ¿Àû°øÀ¯°´Ã¼ (DSO) Áö¿ø</h1>
19
20     <p>¾ÆÆÄÄ¡ À¥¼­¹ö´Â °ü¸®ÀÚ°¡ ¸ðµâµéÀ» ¼±ÅÃÇÏ¿© ¼­¹ö¿¡ Æ÷ÇÔÇÒ
21     ±â´ÉÀ» °áÁ¤ÇÒ ¼ö Àִ ¸ðµâÈ­µÈ ÇÁ·Î±×·¥ÀÌ´Ù. ¸ðµâÀº ¼­¹ö°¡ ÄÄÆÄÀϵɶ§
22     <code>httpd</code> ½ÇÇàÆÄÀÏ¿¡ Á¤ÀûÀ¸·Î ÄÄÆÄÀϵɠ¼ö ÀÖ´Ù.
23     ¾Æ´Ï¸é ¸ðµâÀº Áß½ÉÀÌ µÇ´Â <code>httpd</code> ½ÇÇàÆÄÀÏ°ú º°µµ·Î
24     µ¿Àû°øÀ¯°´Ã¼(Dynamic Shared Objects, DSOs)·Î ÄÄÆÄÀϵɠ¼ö ÀÖ´Ù.
25     DSO ¸ðµâÀº ¼­¹ö°¡ ÄÄÆÄÀϵɶ§ ÄÄÆÄÀÏÇϰųª Apache Extension
26     Tool (<a href="programs/apxs.html">apxs</a>)À» »ç¿ëÇÏ¿© ³ªÁß¿¡
27     ÄÄÆÄÀÏÇÏ°í Ãß°¡ÇÒ ¼ö ÀÖ´Ù.</p>
28
29     <p>ÀÌ ¹®¼­´Â DSO ¸ðµâ »ç¿ë¹ý°ú °ü·ÃµÈ ÀÌ·ÐÀ» ¼³¸íÇÑ´Ù.</p>
30
31     <ul>
32       <li><a href="#implementation">±¸Çö</a></li>
33
34       <li><a href="#usage">»ç¿ë¹ý ¿ä¾à</a></li>
35
36       <li><a href="#background">¹è°æÁö½Ä</a></li>
37
38       <li><a href="#advantages">ÀåÁ¡°ú ´ÜÁ¡</a></li>
39     </ul>
40     <hr />
41
42     <table border="1">
43       <tr>
44         <td valign="top"><strong>°ü·ÃµÈ ¸ðµâ</strong><br />
45          <br />
46          <a href="mod/mod_so.html">mod_so</a><br />
47          </td>
48
49         <td valign="top"><strong>°ü·ÃµÈ Áö½Ã¾î</strong><br />
50          <br />
51          <a href="mod/mod_so.html#loadmodule">LoadModule</a><br />
52          </td>
53       </tr>
54     </table>
55
56     <h2><a id="implementation"
57     name="implementation">±¸Çö</a></h2>
58
59     <p>¾ÆÆÄÄ¡ ¸ðµâÀ» ÀоîµéÀ̱âÀ§ÇÑ DSO Áö¿øÀº ¾ÆÆÄÄ¡ Çٽɿ¡
60     Á¤ÀûÀ¸·Î ÄÄÆÄÀϵǾßÇÒ
61     <a href="mod/mod_so.html"><code>mod_so.c</code></a>¶ó´Â
62     ¸ðµâÀÌ Á¦°øÇÑ´Ù. À̴ <code>core.c</code>¸¦ Á¦¿ÜÇÏ°í
63     DSO°¡ µÉ ¼ö ¾ø´Â À¯ÀÏÇÑ ¸ðµâÀÌ´Ù. ½ÇÁ¦·Î ´Ù¸¥ ¸ðµç ¾ÆÆÄÄ¡ ¸ðµâÀº
64     °¢°¢ <a href="install.html">¼³Ä¡ ¹®¼­</a>¿¡¼­ ¼³¸íÇÑ
65     <code>configure</code>ÀÇ <code>--enable-<i>module</i>=shared</code>
66     ¿É¼ÇÀ» »ç¿ëÇÏ¿© DSO·Î ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù. ¸ðµâÀÌ
67     <code>mod_foo.so</code>¿Í °°ÀÌ DSO·Î ÄÄÆÄÀϵÈÈÄ <code>httpd.conf</code>
68     ÆÄÀÏ¿¡ <a href="mod/mod_so.html"><code>mod_so</code></a>ÀÇ
69     <a href="mod/mod_so.html#loadmodule"><code>LoadModule</code></a>
70     ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ¼­¹ö ½ÃÀ۽àȤÀº Àç½ÃÀ۽à±× ¸ðµâÀ» ÀоîµéÀÏ
71     ¼ö ÀÖ´Ù.</p>
72
73     <p>¾ÆÆÄÄ¡ ¸ðµâ(ƯÈ÷ Á¦»ïÀÇ ¸ðµâ)·Î »ç¿ëÇÒ DSO ÆÄÀÏÀ» ½±°Ô
74     ¸¸µé±âÀ§ÇØ <a href="programs/apxs.html">apxs</a> (<em>APache
75     eXtenSion</em>)¶ó´Â »õ·Î¿î Áö¿ø ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù.
76     À̴ ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® <em>¹Û¿¡¼­</em> DSO·Î »ç¿ëÇÒ ¸ðµâÀ»
77     ÄÄÆÄÀÏÇÒ¶§ »ç¿ëÇÑ´Ù. °³³äÀº ½±´Ù. ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÒ¶§
78     <code>configure</code>¿Í <code>make install</code>ÀÌ
79     ¾ÆÆÄÄ¡ C Çì´õÆÄÀÏÀ» ¼³Ä¡ÇÏ°í, DSO ÆÄÀÏÀ» ÄÄÆÄÀÏÇϱâÀ§ÇÑ
80     Ç÷¡Æû Æ¯À¯ÀÇ ÄÄÆÄÀÏ·¯ ¿É¼Ç°ú ¸µÄ¿ ¿É¼ÇÀ» <code>apxs</code>
81     ÇÁ·Î±×·¥¿¡ ¾´´Ù. ±×·¡¼­ »ç¿ëÀڴ <code>apxs</code>¸¦
82     »ç¿ëÇÏ¿© ¾ÆÆÄÄ¡ ¹èÆ÷º» ¼Ò½º Æ®¸®¾øÀÌ, ¶Ç DSO Áö¿øÀ» À§ÇÑ Ç÷¡Æû
83     Æ¯À¯ÀÇ ÄÄÆÄÀÏ·¯ ¿É¼Ç¿Í ¸µÄ¿ ¿É¼Ç¿¡ ½Å°æÀ» ¾²Áö¾Ê°í ÀÚ½ÅÀÇ
84     ¾ÆÆÄÄ¡ ¸ðµâ ¼Ò½º¸¦ ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.</p>
85
86     <h2><a id="usage" name="usage">»ç¿ë¹ý ¿ä¾à</a></h2>
87
88     <p>Apache 2.0ÀÇ DSO ±â´É¿¡ ´ëÇѠª°í °£·«ÇÑ ¿ä¾àÀÌ´Ù:</p>
89
90     <ol>
91       <li>
92         <em>¹èÆ÷º»¿¡ ÀÖ´Â</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡Çϴ °æ¿ì.
93         ¿¹¸¦ µé¾î <code>mod_foo.c</code>¸¦ DSO <code>mod_foo.so</code>·Î:
94
95         <table bgcolor="#f0f0f0" cellpadding="10">
96           <tr>
97             <td>
98 <pre>
99 $ ./configure --prefix=/path/to/install
100         --enable-foo=shared
101 $ make install
102 </pre>
103             </td>
104           </tr>
105         </table>
106       </li>
107
108       <li>
109         <em>Á¦»ïÀÇ</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡Çϴ °æ¿ì. ¿¹¸¦ µé¾î
110         <code>mod_foo.c</code>¸¦ DSO <code>mod_foo.so</code>·Î:
111
112         <table bgcolor="#f0f0f0" cellpadding="10">
113           <tr>
114             <td>
115 <pre>
116 $ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c 
117         --enable-foo=shared
118 $ make install
119 </pre>
120             </td>
121           </tr>
122         </table>
123       </li>
124
125       <li>
126         °øÀ¯ ¸ðµâÀ» <em>´ÙÀ½¿¡ ¼³Ä¡ÇϱâÀ§ÇØ</em> ¾ÆÆÄÄ¡¸¦ ±¸¼ºÇϴ °æ¿ì:
127
128         <table bgcolor="#f0f0f0" cellpadding="10">
129           <tr>
130             <td>
131 <pre>
132 $ ./configure --enable-so
133 $ make install
134 </pre>
135             </td>
136           </tr>
137         </table>
138       </li>
139
140       <li>
141         <em>Á¦»ïÀÇ</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡Çϴ °æ¿ì.
142         <code>mod_foo.c</code>¸¦ <a href="programs/apxs.html">apxs</a>¸¦
143         »ç¿ëÇÏ¿© ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® <em>¹Û¿¡¼­</em> DSO
144         <code>mod_foo.so</code>·Î:
145
146         <table bgcolor="#f0f0f0" cellpadding="10">
147           <tr>
148             <td>
149 <pre>
150 $ cd /path/to/3rdparty
151 $ apxs -c mod_foo.c
152 $ apxs -i -a -n foo mod_foo.la
153 </pre>
154             </td>
155           </tr>
156         </table>
157       </li>
158     </ol>
159
160     <p>¸ðµç °æ¿ì ÀÏ´Ü °øÀ¯ ¸ðµâÀÌ ÄÄÆÄÀϵǸé, <code>httpd.conf</code>¿¡
161     <a href="mod/mod_so.html#loadmodule"><code>LoadModule</code></a>
162     Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© ¾ÆÆÄÄ¡°¡ ±× ¸ðµâÀ» È°¼ºÈ­ÇÏ°Ô ÇؾßÇÑ´Ù.</p>
163
164     <h2><a id="background" name="background">¹è°æÁö½Ä</a></h2>
165
166     <p>Çö´ëÀûÀΠÀ¯´Ð½º·ù¿¡´Â <em>µ¿Àû°øÀ¯°´Ã¼</em> (DSO)ÀÇ
167     µ¿Àû ¸µÅ·/·ÎµùÀ̶ó°í ÇÏ¿©, Æ¯º°ÇÑ Çü½ÄÀÇ ½ÇÇàÄÚµå Á¶°¢À» ¸¸µé¾î
168     ½ÇÇàÁß ½ÇÇàÇÁ·Î±×·¥ÀÇ ÁÖ¼Ò°ø°£¿¡ ÀоîµéÀ̴ ¸ÚÁø ±â´ÉÀÌ ÀÖ´Ù.</p>
169
170     <p>ÀÌ ·ÎµùÀº º¸Å렵ΰ¡Áö ¹æ¹ýÀ¸·Î °¡´ÉÇÏ´Ù. Çϳª´Â ½ÇÇàÇÁ·Î±×·¥ÀÌ
171     ½ÃÀÛÇÒ¶§ <code>ld.so</code>¶ó´Â ½Ã½ºÅÛ ÇÁ·Î±×·¥ÀÌ ·ÎµùÀ»
172     ÀÚµ¿À¸·Î Çϴ °æ¿ì°í, ´Ù¸¥ Çϳª´Â ½ÇÇàÁßÀΠÇÁ·Î±×·¥¿¡¼­
173     <code>dlopen()/dlsym()</code> ½Ã½ºÅÛÄݷΠÀ¯´Ð½º ·Î´õÀÇ
174     ½Ã½ºÅÛ ÀÎÅÍÆäÀ̽ºÀ» »ç¿ëÇÏ¿© Á÷Á¢ ·ÎµùÇϴ °æ¿ì´Ù.</p>
175
176     <p>ù¹ø° °æ¿ì DSO´Â º¸Åë <em>°øÀ¯¶óÀ̺귯¸®(shared libraries)</em> È¤Àº
177     <em>DSO ¶óÀ̺귯¸®</em>¶ó°í ºÎ¸£¸ç, ÆÄÀÏÀº <code>libfoo.so</code>³ª
178     <code>libfoo.so.1.2</code> °°Àº À̸§À» °¡Áø´Ù. À̵éÀº
179     ½Ã½ºÅÛ µð·ºÅ丮(º¸Åë <code>/usr/lib</code>)¿¡ ÀÖ°í,
180     ÄÄÆÄÀϽีĿ ¸í·É¾î¿¡ <code>-lfoo</code>¸¦ Á־ÇÇàÆÄÀÏ°ú
181     ¿¬°áµÈ´Ù. ÀÌ·¸°Ô Á÷Á¢ ½áÁØ ¶óÀ̺귯¸®´Â ½ÇÇàÆÄÀÏ¿¡ ÂüÁ¶µÇ¿©¼­,
182     ¸µÄ¿ ¿É¼Ç <code>-R</code>·Î Á÷Á¢ ÁöÁ¤ÇÏ¿´°Å³ª È¯°æº¯¼ö
183     <code>LD_LIBRARY_PATH</code>·Î ÁöÁ¤ÇÑ °æ·ÎÀΠ<code>/usr/lib</code>¿¡¼­
184     À¯´Ð½º ·Î´õ°¡ ÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÒ¶§ <code>libfoo.so</code>¸¦
185     Ã£À»(resolve) ¼ö ÀÖ´Ù. ±×·¯¸é ½ÇÇàÇÁ·Î±×·¥ÀÇ (¾ÆÁ÷ ¸øãÀº)
186     ½Éº¼(symbol)À» DSO¿¡¼­ Ã£°ÔµÈ´Ù.</p>
187
188     <p>DSO´Â º¸Åë ½ÇÇàÇÁ·Î±×·¥ÀÇ ½Éº¼À» Ã£Áö¾Ê±â ¶§¹®¿¡ (DSO°¡
189     Àç»ç¿ë°¡´ÉÇÑ ÀϹÝÀûÀΠÄÚµåÀÇ ¶óÀ̺귯¸®À̹ǷÎ) Ã£±â´Â ¿©±â¼­ ³¡³­´Ù.
190     À¯´Ð½º ·Î´õ°¡ ½Éº¼ Ã£±â¸¦ ¿ÏÀüÈ÷ ´ã´çÇϹǷΠ½ÇÇàÇÁ·Î±×·¥ÀÌ Á÷Á¢
191     DSO¿¡¼­ ½Éº¼À» Ã£À» ÇÊ¿ä°¡ ¾ø´Ù. (»ç½Ç <code>ld.so</code>¸¦
192     ºÎ¸£´Â ÄÚµå´Â Á¤ÀûÀÌ ¾Æ´Ñ ¸ðµç ½ÇÇàÇÁ·Î±×·¥¿¡ ¸µÅ©µÇ´Â ½ÇÇà½Ã
193     ½ÃÀÛÄÚµåÀÇ ÀϺδÙ.) °øÅëµÈ ¶óÀ̺귯¸® Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀÌ´Â
194     ÀåÁ¡Àº ¸íÈ®ÇÏ´Ù. ¶óÀ̺귯¸® Äڵ尡 ¸ðµç ÇÁ·Î±×·¥¿¡ ÀúÀåµÇ´Â ´ë½Å
195     <code>libc.so</code>¿Í °°Àº ½Ã½ºÅÛ ¶óÀ̺귯¸®¿¡ Çѹø¸¸ ÀúÀåµÇ±â
196     ¶§¹®¿¡ µð½ºÅ© °ø°£ÀÌ Àý¾àµÈ´Ù.</p>
197
198     <p>µÎ¹ø° °æ¿ì DSO´Â º¸Åë <em>°øÀ¯°´Ã¼(shared objects)</em> È¤Àº
199     <em>DSO ÆÄÀÏ</em>À̶ó°í ºÎ¸£°í, (±ÔÄ¢»ó À̸§Àº <code>foo.so</code>ÀÌÁö¸¸)
200     ÆÄÀÏÀÇ È®ÀåÀڴ ÀÚÀ¯·Ó´Ù. ÀÌ ÆÄÀϵéÀº º¸Åë ÇÁ·Î±×·¥ ÀÚü µð·ºÅ丮¿¡
201     À§Ä¡ÇÏ°í ½ÇÇàÇÁ·Î±×·¥¿¡ ÀÚµ¿À¸·Î ¿¬°áµÇÁö ¾Ê´Â´Ù. ´ë½Å ½ÇÇàÇÁ·Î±×·¥Àº
202     <code>dlopen()</code>À» »ç¿ëÇÏ¿© DSO¸¦ ½ÇÇà½Ã ÁÖ¼Ò°ø°£¿¡ Á÷Á¢
203     Àоîµé¿©¾ß ÇÑ´Ù. À̶§ ½ÇÇàÇÁ·Î±×·¥Àº DSO¿¡¼­ ½Éº¼À» Ã£Áö ¾Ê´Â´Ù.
204     ´ë½Å À¯´Ð½º ·Î´õ°¡ ÀÚµ¿À¸·Î ½ÇÇàÆÄÀÏ°ú ½ÇÇàÆÄÀÏÀÌ À̹̠ÀоîµéÀΠDSO
205     ¶óÀ̺귯¸®(ƯÈ÷ Ç×»óÀִ <code>libc.so</code>ÀÇ ¸ðµç ½Éº¼)¿¡¼­
206     DSOÀÇ (¾ÆÁ÷ ¸øãÀº) ½Éº¼À» Ã£´Â´Ù. ±×·¡¼­ DSO´Â ¸¶Ä¡ Ã³À½ºÎÅÍ
207     ½ÇÇàÇÁ·Î±×·¥¿¡ Á¤ÀûÀ¸·Î ¸µÅ©µÈ°Í°ú °°ÀÌ ½ÇÇàÆÄÀÏÀÇ ½Éº¼À»
208     ¾Ë°ÔµÈ´Ù.</p>
209
210     <p>DSOÀÇ API¸¦ ÀÌ¿ëÇϱâÀ§Çؼ­ ¸¶Áö¸·À¸·Î ½ÇÇàÇÁ·Î±×·¥Àº
211     <code>dlsym()</code>·Î DSO¿¡¼­ Æ¯Á¤ ½Éº¼À» Ã£¾Æ¼­,
212     ¾ÕÀ¸·Î »ç¿ëÇϱâÀ§ÇØ µð½ºÆÐÄ¡(dispatch) Ç¥ <em>µî</em>¿¡
213     ÀúÀåÇÑ´Ù. ´Ù¸¥ ¸»·Î ½ÇÇàÇÁ·Î±×·¥Àº »ç¿ëÇÒ ¸ðµç ½Çº¼À» Á÷Á¢
214     Ã£¾Æ¾ßÇÑ´Ù. ÀÌ·± ±¸Á¶ÀÇ ÀåÁ¡Àº ÇÁ·Î±×·¥ÀÇ ¼±ÅÃÀûÀΠÀϺÎÀ»
215     ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÒ¶§±îÁö ÀоîµéÀÌÁö ¾Ê¾Æµµ (±×·¡¼­
216     ¸Þ¸ð¸®¸¦ ³¶ºñÇÏÁö ¾Ê°Ô) µÈ´Ù´Â Á¡ÀÌ´Ù. ±âº» ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ»
217     È®ÀåÇϱâÀ§ÇØ ÇÊ¿äÇÒ¶§ ÀÌ ºÎºÐÀ» µ¿ÀûÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Ù.</p>
218
219     <p>ÀÌ·± DSO ±¸Á¶°¡ ÀÚ¿¬½º·´°Ô º¸ÀÌÁö¸¸, ÃÖ¼ÒÇÑ ¾î·Á¿î Á¡ÀÌ
220     ÇϳªÀÖ´Ù. À̴ ÇÁ·Î±×·¥À» È®ÀåÇϱâÀ§ÇØ DSO¸¦ »ç¿ëÇÒ¶§
221     DSO°¡ ½ÇÇàÇÁ·Î±×·¥ÀÇ ½Éº¼À» Ã£´Â ÀÏÀÌ´Ù. ¿Ö? DSO°¡ ½ÇÇàÇÁ·Î±×·¥ÀÇ
222     ½Éº¼À» "¿ªÀ¸·Î Ã£´Â °Í"Àº (¶óÀ̺귯¸®´Â »ç¿ëµÇ´Â ÇÁ·Î±×·¥¿¡ ´ëÇØ
223     ¸ð¸¥´Ù´Â) ¶óÀ̺귯¸® ¼³°è¿¡ ¹ÝÇϸç, ¸ðµç Ç÷¡Æû¿¡¼­ Áö¿øµÇÁö
224     ¾Ê°í Ç¥ÁØÈ­µÇÁöµµ ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. ½ÇÁ¦·Î ½ÇÇàÆÄÀÏÀÇ
225     Àü¿ª½Éº¼(global symbol)Àº ÀÚÁÖ ÀͽºÆ÷Æ®(export)µÇÁö ¾Ê±â¶§¹®¿¡
226     DSO°¡ »ç¿ëÇÒ ¼ö ¾ø´Ù. DSO¸¦ »ç¿ëÇÏ¿© ½ÇÇàÁß ÇÁ·Î±×·¥À» È®ÀåÇÏ·Á¸é
227     ¸µÄ¿¿¡°Ô ¸ðµç Àü¿ª½Éº¼À» ÀͽºÆ÷Æ®Çϵµ·Ï °­Á¦Çϴ °ÍÀÌ ÁÖ¿äÇÑ
228     ÇØ°áÃ¥ÀÌ´Ù.</p>
229
230     <p>°øÀ¯¶óÀ̺귯¸®´Â DSO ±¸Á¶¸¦ À§ÇØ ¼³°èµÇ¾ú±â¶§¹®¿¡ ÀüÇüÀûÀÌ°í,
231     ¿î¿µÃ¼Á¦°¡ Á¦°øÇϴ °ÅÀÇ ¸ðµç Á¾·ùÀÇ ¶óÀ̺귯¸®¿¡ »ç¿ëµÈ´Ù.
232     ¹Ý´ë·Î ¸¹Àº ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥À» È®ÀåÇϱâÀ§ÇØ °øÀ¯°´Ã¼¸¦
233     »ç¿ëÇÏÁö ¾Ê´Â´Ù.</p>
234
235     <p>1998³â ½ÇÇàÁß ½ÇÁ¦·Î ±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ
236     DSO ±¸Á¶¸¦ »ç¿ëÇÑ ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°Áö´Â (XS ±¸Á¶¿Í DynaLoader ¸ðµâÀ»
237     »ç¿ëÇÑ) Perl 5, Netscape Server <em>µî</em>À¸·Î µå¹°¾ú´Ù.
238     ¾ÆÆÄÄ¡´Â À̹̠±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ ¸ðµâ °³³äÀ» »ç¿ëÇß°í ¿ÜºÎ
239     ¸ðµâÀ» ¾ÆÆÄÄ¡ Çٽɱâ´É¿¡ ¿¬°áÇϱâÀ§ÇØ ³»ºÎÀûÀ¸·Î µð½ºÆÐÄ¡¸ñ·ÏÀ» ÀÌ¿ëÇÑ
240     Á¢±Ù¹æ¹ýÀ» »ç¿ëÇ߱⶧¹®¿¡ 1.3 ¹öÀüºÎÅÍ ¿©±â¿¡ ÇÕ·ùÇß´Ù. ±×·¡¼­
241     ¾ÆÆÄÄ¡´Â ½ÇÇàÁß ¸ðµâÀ» ÀоîµéÀ̴µ¥ DSO¸¦ »ç¿ëÇϵµ·Ï ¿î¸íÁö¿öÁ³´Ù.</p>
242
243     <h2><a id="advantages" name="advantages">Àå´ÜÁ¡</a></h2>
244
245     <p>¾Õ¿¡¼­ ¸»ÇÑ DSO¸¦ »ç¿ëÇϸ頴ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù:</p>
246
247     <ul>
248       <li>½ÇÁ¦ ¼­¹ö ÇÁ·Î¼¼½º°¡ ÄÄÆÄÀϽà<code>configure</code>
249       ¿É¼Ç´ë½Å <code>httpd.conf</code>ÀÇ <a
250       href="mod/mod_so.html#loadmodule"><code>LoadModule</code></a>·Î
251       ½ÇÇàÁß¿¡ °áÇյǹǷΠ¼­¹ö ÆÐÅ°Áö°¡ ½ÇÇà½Ã ´õ À¯¿¬ÇÏ´Ù. ¿¹¸¦ µé¾î 
252       ÇѹøÀÇ ¾ÆÆÄÄ¡ ¼³Ä¡¸¸À¸·Î ´Ù¸¥ ¼­¹ö(Ç¥ÁØ ¹öÀü°ú SSL ¹öÀü, ÃÖ¼ÒÈ­ ¹öÀü°ú
253       ±â´ÉÃß°¡ ¹öÀü [mod_perl, PHP3] <em>µî</em>)¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.</li>
254
255       <li>¼­¹ö´Â ¼³Ä¡ÈÄ¿¡µµ Á¦»ïÀÇ ¸ðµâ·Î ½±°Ô È®ÀåÀÌ °¡´ÉÇÏ´Ù.
256       ÃÖ¼ÒÇÑ ±â¾÷ÀÇ ÆÐÅ°Áö Á¦ÀÛÀڴ ¾ÆÆÄÄ¡ ÇٽɠÆÐÅ°Áö¿Í º°µµ·Î PHP3, mod_perl,
257       mod_fastcgi µîÀ» Ãß°¡ ÆÐÅ°Áö·Î ¸¸µé ¼ö À־ Å« À̵æÀÌ µÈ´Ù.</li>
258
259       <li>DSO¿Í <code>apxs</code>¸¦ °¡Áö°í ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸®
260       ¹Û¿¡¼­ ÀÛ¾÷ÇÏ°í <code>apxs -i</code>¿Í
261       <code>apachectl restart</code> ¸í·É¾î¸¸À¸·Î ÇöÀç °³¹ßÇÑ
262       ¸ðµâÀÇ »õ ¹öÀüÀ» ½ÇÇàÁßÀΠ¾ÆÆÄÄ¡ ¼­¹ö¿¡ ¹Ý¿µÇÒ ¼ö À־ ´õ ½±°Ô
263       ¾ÆÆÄÄ¡ ¸ðµâÀ» °³¹ßÇÒ ¼ö ÀÖ´Ù.</li>
264     </ul>
265
266     <p>DSO´Â ´ÙÀ½°ú °°Àº ´ÜÁ¡ÀÌ ÀÖ´Ù:</p>
267
268     <ul>
269       <li>ÇÁ·Î±×·¥ÀÇ ÁÖ¼Ò°ø°£¿¡ Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀ̴ ±â´ÉÀ»
270       Áö¿øÇÏÁö¾Ê´Â ¿î¿µÃ¼Á¦°¡ Àֱ⠶§¹®¿¡ ¸ðµç Ç÷¡Æû¿¡¼­ DSO¸¦
271       »ç¿ëÇÒ ¼ö ¾ø´Ù.</li>
272
273       <li>¼­¹ö´Â ½ÃÀ۽à¾à 20% Á¤µµ ´Ê´Ù.
274       because of the symbol resolving overhead the Unix loader now
275       has to do.</li>
276
277       <li>¼­¹ö´Â À§Ä¡µ¶¸³ÄÚµå(position independent code, PIC)¶§¹®¿¡
278       Àý´ëÁÖ¼ÒÁöÁ¤(absolute addressing)¸¸Å­ ºü¸£Áö ¾Ê´Â »ó´ëÁÖ¼ÒÁöÁ¤(relative
279       addressing)ÀÇ º¹ÀâÇÑ ¾î¼Àºí·¯ ±â¹ýÀÌ ÇÊ¿äÇϹǷΠ¾î¶² Ç÷¡Æû¿¡¼­
280       ½ÇÇà½Ã ¾à 5% Á¤µµ ´Ê´Ù.</li>
281
282       <li>DSO ¸ðµâÀÌ ´Ù¸¥ DSO±â¹Ý ¶óÀ̺귯¸®(<code>ld -lfoo</code>)¿¡
283       ¸µÅ©ÇÒ ¼ö ¾ø´Â Ç÷¡ÆûÀÌ Àֱ⶧¹®¿¡ (¿¹¸¦ µé¾î ELF±â¹Ý Ç÷¡ÆûÀº
284       Áö¿øÇÏÁö¸¸ a.out±â¹Ý Ç÷¡ÆûÀº º¸Åë ÀÌ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù)
285       ¸ðµç Á¾·ùÀÇ ¸ðµâ¿¡ DSO¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ´Ù¸¥ ¸»·Î
286       DSO ÆÄÀϷΠÄÄÆÄÀϵǴ ¸ðµâÀº ¾ÆÆÄÄ¡ Çٽɰú ¾ÆÆÄÄ¡ ÇÙ½ÉÀÌ
287       »ç¿ëÇϴ C ¶óÀ̺귯¸®(<code>libc</code>)¿Í ´Ù¸¥ µ¿Àû/Á¤Àû
288       ¶óÀ̺귯¸®, À§Ä¡µ¶¸³Äڵ带 ´ã°í Àִ Á¤Àû ¶óÀ̺귯¸®
289       ¾ÆÄ«À̺ê(<code>libfoo.a</code>)ÀÇ ½Éº¼¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
290       ´Ù¸¥ Äڵ带 »ç¿ëÇϴ ¹æ¹ýÀº ¾ÆÆÄÄ¡ ÇÙ½ÉÀÌ ±×°ÍÀ» ÂüÁ¶ÇÏ´øÁö,
291       <code>dlopen()</code>À¸·Î Á÷Á¢ Äڵ带 ÀоîµéÀ̴ °ÍÀÌ´Ù.</li>
292     </ul>
293     <!--#include virtual="footer.html" -->
294   </body>
295 </html>
296