]> granicus.if.org Git - apache/blob - docs/manual/dso.xml.ko
Help doc writer to spot places where:
[apache] / docs / manual / dso.xml.ko
1 <?xml version="1.0" encoding="EUC-KR" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
4 <!-- English Revision: 105989:1199481 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <manualpage metafile="dso.xml.meta">
24
25   <title>µ¿Àû°øÀ¯°´Ã¼ (DSO) Áö¿ø</title>
26
27   <summary>
28     <p>¾ÆÆÄÄ¡ À¥¼­¹ö´Â °ü¸®ÀÚ°¡ ¸ðµâµéÀ» ¼±ÅÃÇÏ¿© ¼­¹ö¿¡ Æ÷ÇÔÇÒ
29     ±â´ÉÀ» °áÁ¤ÇÒ ¼ö Àִ ¸ðµâÈ­µÈ ÇÁ·Î±×·¥ÀÌ´Ù. ¼­¹ö¸¦ ÄÄÆÄÇÒ¶§
30     <code>httpd</code> ½ÇÇàÆÄÀÏ¿¡ Á¤ÀûÀ¸·Î ¸ðµâÀ» ÄÄÆÄÀÏÇÒ
31     ¼ö ÀÖ´Ù. ¾Æ´Ï¸é ¸ðµâÀ» <code>httpd</code> ½ÇÇàÆÄÀÏ°ú
32     ºÐ¸®ÇÏ¿© µ¿Àû°øÀ¯°´Ã¼(Dynamic Shared Objects, DSO)·Î ÄÄÆÄÀÏÇÒ
33     ¼ö ÀÖ´Ù. DSO ¸ðµâÀº ¼­¹ö¸¦ ÄÄÆÄÀÏÇÒ¶§ ÄÄÆÄÀÏÇϰųª, Apache
34     Extension Tool (<a href="programs/apxs.html">apxs</a>)À»
35     »ç¿ëÇÏ¿© ³ªÁß¿¡ ÄÄÆÄÀÏÇÏ¿© Ãß°¡ÇÒ ¼ö ÀÖ´Ù.</p>
36
37     <p>ÀÌ ¹®¼­´Â DSO ¸ðµâ »ç¿ë¹ý°ú ¹è°æ ÀÌ·ÐÀ» ¼³¸íÇÑ´Ù.</p>
38   </summary>
39
40
41 <section id="implementation"><title>±¸Çö</title>
42
43 <related>
44 <modulelist>
45 <module>mod_so</module>
46 </modulelist>
47 <directivelist>
48 <directive module="mod_so">LoadModule</directive>
49 </directivelist>
50 </related>
51
52     <p>¾ÆÆÄÄ¡ Çٽɿ¡ Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇؾßÇÒ
53     <module>mod_so.c</module>¶ó´Â ¸ðµâÀº ¾ÆÆÄÄ¡ ¸ðµâÀ»
54     ÀоîµéÀ̱âÀ§ÇÑ DSO¸¦ Áö¿øÇÑ´Ù.
55     ÀÌ ¸ðµâÀº <module>core</module>¸¦ Á¦¿ÜÇÏ°í DSO°¡
56     µÉ ¼ö ¾ø´Â À¯ÀÏÇÑ ¸ðµâÀÌ´Ù. ½ÇÁ¦·Î ´Ù¸¥ ¸ðµç ¾ÆÆÄÄ¡ ¸ðµâÀº
57     <a href="install.html">¼³Ä¡ ¹®¼­</a>¿¡¼­ ¼³¸íÇÑ
58     <code>configure</code>ÀÇ <code>--enable-<em>module</em>=shared</code>
59     ¿É¼ÇÀ» »ç¿ëÇÏ¿© DSO·Î ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù. ¸ðµâÀ»
60     <code>mod_foo.so</code>¿Í °°ÀÌ DSO·Î ÄÄÆÄÀÏÇÑÈÄ <code>httpd.conf</code>
61     ÆÄÀÏ¿¡ <module>mod_so</module>ÀÇ
62     <directive module="mod_so">LoadModule</directive> ¸í·É¾î¸¦
63     »ç¿ëÇÏ¿© ¼­¹ö ½ÃÀ۽àȤÀº Àç½ÃÀ۽à±× ¸ðµâÀ» ÀоîµéÀÏ ¼ö
64     ÀÖ´Ù.</p>
65
66     <p>¾ÆÆÄÄ¡ ¸ðµâ(ƯÈ÷ Á¦»ïÀÚ°¡ ¸¸µç ¸ðµâ)·Î »ç¿ëÇÒ DSO ÆÄÀÏÀ» ½±°Ô
67     ¸¸µé±âÀ§ÇØ <a href="programs/apxs.html">apxs</a> (<em>APache
68     eXtenSion</em>)¶ó´Â »õ·Î¿î Áö¿ø ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥Àº
69     ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® <em>¹Û¿¡¼­</em> DSO·Î »ç¿ëÇÒ ¸ðµâÀ»
70     ÄÄÆÄÀÏÇÒ¶§ »ç¿ëÇÑ´Ù. °³³äÀº ½±´Ù. ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÒ¶§
71     <code>configure</code>¿Í <code>make install</code>ÀÌ
72     ¾ÆÆÄÄ¡ C Çì´õÆÄÀÏÀ» ¼³Ä¡ÇÏ°í, DSO ÆÄÀÏÀ» ÄÄÆÄÀÏÇϱâÀ§ÇÑ
73     Ç÷¡Æû Æ¯À¯ÀÇ ÄÄÆÄÀÏ·¯ ¿É¼Ç°ú ¸µÄ¿ ¿É¼ÇÀ» <code>apxs</code>
74     ÇÁ·Î±×·¥¿¡ ±â·ÏÇÑ´Ù. ±×·¡¼­ <code>apxs</code>¸¦ »ç¿ëÇϴ »ç¿ëÀÚ´Â
75     ¾ÆÆÄÄ¡ ¹èÆ÷º» ¼Ò½º Æ®¸®¾øÀÌ, ¶Ç DSO Áö¿øÀ» À§ÇÑ Ç÷¡Æû Æ¯À¯ÀÇ
76     ÄÄÆÄÀÏ·¯ ¿É¼Ç¿Í ¸µÄ¿ ¿É¼Ç¿¡ ½Å°æÀ» ¾²Áö¾Ê°í ÀÚ½ÅÀÇ ¾ÆÆÄÄ¡
77     ¸ðµâ ¼Ò½º¸¦ ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.</p>
78 </section>
79
80 <section id="usage"><title>»ç¿ë¹ý ¿ä¾à</title>
81
82     <p>Apache 2.2ÀÇ DSO ±â´É¿¡ ´ëÇѠª°í °£·«ÇÑ ¿ä¾àÀÌ´Ù:</p>
83
84     <ol>
85       <li>
86         <em>¹èÆ÷º»¿¡ ÀÖ´Â</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
87         °æ¿ì. ¿¹¸¦ µé¾î <code>mod_foo.c</code>¸¦ DSO
88         <code>mod_foo.so</code>·Î:
89
90 <example>
91 $ ./configure --prefix=/path/to/install --enable-foo=shared<br />
92 $ make install
93 </example>
94       </li>
95
96       <li>
97         <em>Á¦»ïÀÚ°¡ ¸¸µç</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
98         °æ¿ì. ¿¹¸¦ µé¾î <code>mod_foo.c</code>¸¦ DSO
99         <code>mod_foo.so</code>·Î:
100
101 <example>
102 $ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared<br />
103 $ make install
104 </example>
105       </li>
106
107       <li>
108         °øÀ¯ ¸ðµâÀ» <em>³ªÁß¿¡ »ç¿ëÇϱâÀ§ÇØ</em> ¾ÆÆÄÄ¡¸¦ ±¸¼ºÇÏ´Â
109         °æ¿ì:
110
111 <example>
112 $ ./configure --enable-so<br />
113 $ make install
114 </example>
115       </li>
116
117       <li>
118         <em>Á¦»ïÀÚ°¡ ¸¸µç</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
119         °æ¿ì. <a href="programs/apxs.html">apxs</a>¸¦ »ç¿ëÇÏ¿©
120         ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® <em>¹Û¿¡¼­</em> <code>mod_foo.c</code>¸¦
121         DSO <code>mod_foo.so</code>·Î:
122
123 <example>
124 $ cd /path/to/3rdparty<br />
125 $ apxs -c mod_foo.c<br />
126 $ apxs -i -a -n foo mod_foo.la
127 </example>
128       </li>
129     </ol>
130
131     <p>¸ðµç °æ¿ì ÀÏ´Ü °øÀ¯ ¸ðµâÀÌ ÄÄÆÄÀϵǸé, <code>httpd.conf</code>¿¡
132     <directive module="mod_so">LoadModule</directive> Áö½Ã¾î¸¦
133     »ç¿ëÇÏ¿© ¾ÆÆÄÄ¡°¡ ±× ¸ðµâÀ» ÀоîµéÀÌ°Ô ¸¸µç´Ù.</p>
134 </section>
135
136 <section id="background"><title>¹è°æÁö½Ä</title>
137
138     <p>Çö´ëÀûÀΠÀ¯´Ð½º·ù¿¡´Â <em>µ¿Àû°øÀ¯°´Ã¼</em> (DSO)ÀÇ
139     µ¿Àû ¸µÅ·/·Îµù(dynamic linking/loading)À̶ó°í ÇÏ¿©, Æ¯º°ÇÑ
140     Çü½ÄÀÇ ½ÇÇàÄÚµå Á¶°¢À» ¸¸µé¾î ½ÇÇàÁßÀΠ½ÇÇàÇÁ·Î±×·¥ÀÇ
141     ÁÖ¼Ò°ø°£¿¡ ÀоîµéÀ̴ ¸ÚÁø ±â´ÉÀÌ ÀÖ´Ù.</p>
142
143     <p>º¸Å렵ΰ¡Áö ¹æ¹ýÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Ù. Çϳª´Â ½ÇÇàÇÁ·Î±×·¥ÀÌ
144     ½ÃÀÛÇÒ¶§ <code>ld.so</code>¶ó´Â ½Ã½ºÅÛ ÇÁ·Î±×·¥ÀÌ ÀÚµ¿À¸·Î
145     ÀоîµéÀ̴ °æ¿ì°í, ´Ù¸¥ Çϳª´Â ½ÇÇàÁßÀΠÇÁ·Î±×·¥ÀÌ
146     <code>dlopen()/dlsym()</code> ½Ã½ºÅÛÈ£Ãâ·Î À¯´Ð½º ·Î´õ(loader)ÀÇ
147     ½Ã½ºÅÛ ÀÎÅÍÆäÀ̽ºÀ» »ç¿ëÇÏ¿© Á÷Á¢ ÀоîµéÀ̴ °æ¿ì´Ù.</p>
148
149     <p>ù¹ø° °æ¿ì DSO¸¦ º¸Åë <em>°øÀ¯¶óÀ̺귯¸®(shared libraries)</em>
150     È¤Àº <em>DSO ¶óÀ̺귯¸®</em>¶ó°í ºÎ¸£¸ç, ÆÄÀÏÀº
151     <code>libfoo.so</code>³ª <code>libfoo.so.1.2</code> °°Àº
152     À̸§À» °¡Áø´Ù. À̵éÀº ½Ã½ºÅÛ µð·ºÅ丮(º¸Åë <code>/usr/lib</code>)¿¡
153     ÀÖ°í, ÄÄÆÄÀϽีĿ ¸í·É¾î¿¡ <code>-lfoo</code>¸¦ ÁÖ¾î
154     ½ÇÇàÆÄÀÏ°ú ¿¬°áÇÑ´Ù. ÀÌ·¸°Ô Á÷Á¢ ½áÁØ ¶óÀ̺귯¸®´Â ½ÇÇàÆÄÀÏ¿¡
155     ÂüÁ¶µÇ¿©¼­, ÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÒ¶§ ¸µÄ¿ ¿É¼Ç <code>-R</code>·Î
156     Á÷Á¢ ÁöÁ¤ÇÑ °æ·Î, È¯°æº¯¼ö <code>LD_LIBRARY_PATH</code>·Î
157     ÁöÁ¤ÇÑ °æ·Î È¤Àº <code>/usr/lib</code>¿¡¼­ À¯´Ð½º ·Î´õ°¡
158     <code>libfoo.so</code>¸¦ Ã£À» ¼ö ÀÖ´Ù. ±×·¯¸é ½ÇÇàÇÁ·Î±×·¥ÀÇ
159     (¾ÆÁ÷ ¸øãÀº(unresolved)) ½Éº¼(symbol)À» DSO¿¡¼­ Ã£°ÔµÈ´Ù.</p>
160
161     <p>DSO´Â º¸Åë ½ÇÇàÇÁ·Î±×·¥ÀÇ ½Éº¼À» Ã£Áö¾Ê±â ¶§¹®¿¡ (DSO°¡
162     Àç»ç¿ë°¡´ÉÇÑ ÀϹÝÀûÀΠÄڵ堶óÀ̺귯¸®À̹ǷÎ) Ã£±â´Â ¿©±â¼­
163     ³¡³­´Ù. À¯´Ð½º ·Î´õ°¡ ½Éº¼ Ã£±â¸¦ ¿ÏÀüÈ÷ ´ã´çÇϹǷΠ½ÇÇàÇÁ·Î±×·¥ÀÌ
164     Á÷Á¢ DSO¿¡¼­ ½Éº¼À» Ã£À» ÇÊ¿ä°¡ ¾ø´Ù. (»ç½Ç <code>ld.so</code>¸¦
165     ºÎ¸£´Â ÄÚµå´Â Á¤ÀûÀÌ ¾Æ´Ñ ¸ðµç ½ÇÇàÇÁ·Î±×·¥¿¡ ¸µÅ©µÇ´Â ½ÇÇà½Ã
166     ½ÃÀÛÄÚµåÀÇ ÀϺδÙ.) °øÅëµÈ ¶óÀ̺귯¸® Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀÌ´Â
167     ÀåÁ¡Àº ¸íÈ®ÇÏ´Ù. ¶óÀ̺귯¸® Äڵ尡 ¸ðµç ÇÁ·Î±×·¥¿¡ Áߺ¹Çؼ­
168     ÀúÀåµÇ´Â ´ë½Å <code>libc.so</code>¿Í °°Àº ½Ã½ºÅÛ ¶óÀ̺귯¸®¿¡
169     Çѹø¸¸ ÀúÀåµÇ±â ¶§¹®¿¡ µð½ºÅ© °ø°£ÀÌ Àý¾àµÈ´Ù.</p>
170
171     <p>µÎ¹ø° °æ¿ì DSO¸¦ º¸Åë <em>°øÀ¯°´Ã¼(shared objects)</em>
172     È¤Àº <em>DSO ÆÄÀÏ</em>À̶ó°í ºÎ¸£°í, (±ÔÄ¢»ó À̸§Àº
173     <code>foo.so</code>ÀÌÁö¸¸) ÆÄÀÏÀÇ È®ÀåÀڴ ÀÚÀ¯·Ó´Ù. ÀÌ
174     ÆÄÀϵéÀº º¸Åë ÇÁ·Î±×·¥ ÀÚü µð·ºÅ丮¿¡ À§Ä¡ÇÏ°í ½ÇÇàÇÁ·Î±×·¥¿¡
175     ÀÚµ¿À¸·Î ¿¬°áµÇÁö ¾Ê´Â´Ù. ´ë½Å ½ÇÇàÇÁ·Î±×·¥Àº ½ÇÇà½Ã
176     <code>dlopen()</code>À» »ç¿ëÇÏ¿© DSO¸¦ ÁÖ¼Ò°ø°£¿¡
177     Á÷Á¢ Àоîµé¿©¾ß ÇÑ´Ù. À̶§ ½ÇÇàÇÁ·Î±×·¥Àº DSO¿¡¼­ ½Éº¼À»
178     Ã£Áö ¾Ê´Â´Ù. ´ë½Å ¾Õ¿¡¼­ º» À¯´Ð½º ·Î´õ´Â ÀÚµ¿À¸·Î ½ÇÇàÆÄÀÏ°ú
179     ½ÇÇàÆÄÀÏÀÌ À̹̠ÀоîµéÀΠDSO ¶óÀ̺귯¸®(ƯÈ÷ Ç×»ó Á¸ÀçÇÏ´Â
180     <code>libc.so</code>ÀÇ ¸ðµç ½Éº¼)¿¡¼­ DSOÀÇ (¾ÆÁ÷ ¸øãÀº)
181     ½Éº¼À» Ã£´Â´Ù. ±×·¡¼­ DSO´Â ¸¶Ä¡ Ã³À½ºÎÅÍ ½ÇÇàÇÁ·Î±×·¥¿¡
182     Á¤ÀûÀ¸·Î ¸µÅ©µÈ°Í°ú °°ÀÌ ½ÇÇàÆÄÀÏÀÇ ½Éº¼À» ¾Ë°ÔµÈ´Ù.</p>
183
184     <p>DSOÀÇ API¸¦ ÀÌ¿ëÇϱâÀ§Çؼ­ ¸¶Áö¸·À¸·Î ½ÇÇàÇÁ·Î±×·¥Àº
185     <code>dlsym()</code>À¸·Î DSO¿¡¼­ Æ¯Á¤ ½Éº¼À» Ã£¾Æ¼­, ¾ÕÀ¸·Î
186     »ç¿ëÇϱâÀ§ÇØ µð½ºÆÐÄ¡(dispatch) Ç¥ <em>µî</em>¿¡ ÀúÀåÇÑ´Ù.
187     ´Ù¸¥ ¸»·Î ½ÇÇàÇÁ·Î±×·¥Àº »ç¿ëÇÒ ¸ðµç ½Çº¼À» Á÷Á¢ Ã£¾Æ¾ßÇÑ´Ù.
188     ÀÌ·± ±¸Á¶ÀÇ ÀåÁ¡Àº ÇÁ·Î±×·¥ÀÇ ÀϺθ¦ ÇÁ·Î±×·¥ÀÌ
189     ÇÊ¿äÇÒ¶§±îÁö ÀоîµéÀÌÁö ¾Ê¾Æµµ (±×·¡¼­ ¸Þ¸ð¸®¸¦ ³¶ºñÇÏÁö
190     ¾Ê°Ô) µÈ´Ù´Â Á¡ÀÌ´Ù. ±âº» ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ
191     ÇÊ¿äÇÑ °æ¿ì ÀÌ ºÎºÐÀ» µ¿ÀûÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Ù.</p>
192
193     <p>ÀÌ·± DSO ±¸Á¶°¡ ÀÚ¿¬½º·´°Ô º¸ÀÌÁö¸¸, ÃÖ¼ÒÇÑ ¾î·Á¿î Á¡ÀÌ
194     ÇÑ°¡ÁöÀÖ´Ù. ÇÁ·Î±×·¥À» È®ÀåÇϱâÀ§ÇØ DSO¸¦ »ç¿ëÇÒ¶§ DSO°¡
195     ½ÇÇàÇÁ·Î±×·¥ÀÇ ½Éº¼À» Ã£´Â ÀÏÀÌ´Ù. ¿Ö? DSO°¡ ½ÇÇàÇÁ·Î±×·¥ÀÇ
196     ½Éº¼À» "¿ªÀ¸·Î Ã£´Â °Í"Àº (¶óÀ̺귯¸®´Â ÀÚ½ÅÀ» »ç¿ëÇϴ ÇÁ·Î±×·¥¿¡
197     ´ëÇØ ¸ð¸¥´Ù´Â) ¶óÀ̺귯¸® ¼³°è¿¡ ¹ÝÇϸç, ¸ðµç Ç÷¡Æû¿¡¼­
198     Áö¿øµÇÁö¾Ê°í Ç¥ÁØÈ­µÇÁöµµ ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. ½ÇÁ¦·Î ½ÇÇàÆÄÀÏÀÇ
199     Àü¿ª½Éº¼(global symbol)Àº º¸Åë ÀͽºÆ÷Æ®(export)µÇÁö ¾Ê±â¶§¹®¿¡
200     DSO°¡ »ç¿ëÇÒ ¼ö ¾ø´Ù. DSO¸¦ »ç¿ëÇÏ¿© ½ÇÇàÁß ÇÁ·Î±×·¥À» È®ÀåÇÏ·Á¸é
201     ¸µÄ¿¿¡°Ô ¸ðµç Àü¿ª½Éº¼À» ÀͽºÆ÷Æ®Çϵµ·Ï °­Á¦Çϴ °ÍÀÌ ÁÖµÈ
202     ÇØ°áÃ¥ÀÌ´Ù.</p>
203
204     <p>°øÀ¯¶óÀ̺귯¸®´Â DSO ¹æ½ÄÀÇ ¼³°è¿øÄ¢´ë·Î ÀüÇüÀûÀ̱⶧¹®¿¡
205     ¿î¿µÃ¼Á¦°¡ Á¦°øÇϴ °ÅÀÇ ¸ðµç Á¾·ùÀÇ ¶óÀ̺귯¸®°¡ »ç¿ëÇÑ´Ù.
206     ¹Ý´ë·Î ¸¹Àº ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥À» È®ÀåÇϱâÀ§ÇØ °øÀ¯°´Ã¼¸¦
207     »ç¿ëÇÏÁö ¾Ê´Â´Ù.</p>
208
209     <p>1998³â ½ÇÇàÁß ½ÇÁ¦·Î ±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ DSO ±¸Á¶¸¦ »ç¿ëÇÑ
210     ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°Áö´Â (XS ±¸Á¶¿Í DynaLoader ¸ðµâÀ» »ç¿ëÇÑ)
211     Perl 5, Netscape Server <em>µî</em>À¸·Î µå¹°¾ú´Ù. ¾ÆÆÄÄ¡´Â
212     À̹̠±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ ¸ðµâ °³³äÀ» »ç¿ëÇß°í ¿ÜºÎ ¸ðµâÀ»
213     ¾ÆÆÄÄ¡ Çٽɱâ´É¿¡ ¿¬°áÇϱâÀ§ÇØ ³»ºÎÀûÀ¸·Î µð½ºÆÐÄ¡¸ñ·ÏÀ»
214     ÀÌ¿ëÇÑ Á¢±Ù¹æ¹ýÀ» »ç¿ëÇ߱⶧¹®¿¡ 1.3 ¹öÀüºÎÅÍ ÀÌ ´ë¿­¿¡ ÇÕ·ùÇß´Ù.
215     ±×·¡¼­ ¾ÆÆÄÄ¡´Â ½ÇÇàÁß ¸ðµâÀ» ÀоîµéÀ̴µ¥ DSO¸¦ »ç¿ëÇϵµ·Ï
216     ¿î¸íÁö¿öÁ³´Ù.</p>
217 </section>
218
219 <section id="advantages"><title>Àå´ÜÁ¡</title>
220
221     <p>¾Õ¿¡¼­ ¸»ÇÑ DSO¸¦ »ç¿ëÇϸ頴ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù:</p>
222
223     <ul>
224       <li>½ÇÁ¦ ¼­¹ö ÇÁ·Î¼¼½º°¡ ÄÄÆÄÀϽà<code>configure</code>
225       ¿É¼Ç´ë½Å <code>httpd.conf</code>ÀÇ <directive
226       module="mod_so">LoadModule</directive>À» »ç¿ëÇÏ¿© ½ÇÇàÁß¿¡
227       °áÇյǹǷΠ¼­¹ö ÆÐÅ°Áö ½ÇÇàÀÌ ´õ À¯¿¬ÇÏ´Ù. ¿¹¸¦ µé¾î ÇѹøÀÇ
228       ¾ÆÆÄÄ¡ ¼³Ä¡¸¸À¸·Î ´Ù¸¥ ¼­¹ö(Ç¥ÁØ ¹öÀü°ú SSL ¹öÀü, ÃÖ¼ÒÈ­
229       ¹öÀü°ú ±â´ÉÃß°¡ ¹öÀü [mod_perl, PHP3] <em>µî</em>)¸¦ ½ÇÇàÇÒ
230       ¼ö ÀÖ´Ù.</li>
231
232       <li>¼­¹ö´Â ¼³Ä¡ÈÄ¿¡µµ Á¦»ïÀÚ°¡ ¸¸µç ¸ðµâÀ» »ç¿ëÇÏ¿© ½±°Ô
233       È®ÀåÇÒ ¼ö ÀÖ´Ù. ÃÖ¼ÒÇÑ ±â¾÷ÀÇ ÆÐÅ°Áö Á¦ÀÛÀڴ ¾ÆÆÄÄ¡ ÇÙ½É
234       ÆÐÅ°Áö¿Í º°µµ·Î PHP3, mod_perl, mod_fastcgi <em>µî</em>À»
235       Ãß°¡ ÆÐÅ°Áö·Î ¸¸µé ¼ö À־ Å« À̵æÀÌ´Ù.</li>
236
237       <li>DSO¿Í <code>apxs</code>¸¦ °¡Áö°í ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® ¹Û¿¡¼­
238       ÀÛ¾÷ÇÏ°í <code>apxs -i</code>¿Í <code>apachectl restart</code>
239       ¸í·É¾î¸¸À¸·Î ÇöÀç °³¹ßÇÑ ¸ðµâÀÇ »õ ¹öÀüÀ» ½ÇÇàÁßÀΠ¾ÆÆÄÄ¡
240       ¼­¹ö¿¡ ¹Ý¿µÇÒ ¼ö À־ ´õ ½±°Ô ¾ÆÆÄÄ¡ ¸ðµâÀ» °³¹ßÇÒ ¼ö
241       ÀÖ´Ù.</li>
242     </ul>
243
244     <p>DSO´Â ´ÙÀ½°ú °°Àº ´ÜÁ¡ÀÌ ÀÖ´Ù:</p>
245
246     <ul>
247       <li>ÇÁ·Î±×·¥ÀÇ ÁÖ¼Ò°ø°£¿¡ Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀ̴ ±â´ÉÀ»
248       Áö¿øÇÏÁö¾Ê´Â ¿î¿µÃ¼Á¦°¡ Àֱ⠶§¹®¿¡ ¸ðµç Ç÷¡Æû¿¡¼­ DSO¸¦
249       »ç¿ëÇÒ ¼ö ¾ø´Ù.</li>
250
251       <li>À¯´Ð½º ·Î´õ°¡ ½Éº¼À» Ã£¾Æ¾ßÇϱ⠶§¹®¿¡ ¼­¹ö ½ÃÀÛÀÌ
252       ¾à 20% Á¤µµ ´Ê¾îÁø´Ù.</li>
253
254       <li>¼­¹ö´Â À§Ä¡µ¶¸³ÄÚµå(position independent code, PIC)
255       ¶§¹®¿¡ Àý´ëÁÖ¼ÒÁöÁ¤(absolute addressing)º¸´Ù ´À¸°
256       »ó´ëÁÖ¼ÒÁöÁ¤(relative addressing)ÀÇ º¹ÀâÇÑ ¾î¼Àºí·¯ ±â¹ýÀÌ
257       ÇÊ¿äÇϹǷΠ¾î¶² Ç÷¡Æû¿¡¼­ ½ÇÇà½Ã ¾à 5% Á¤µµ ´Ê´Ù.</li>
258
259       <li>DSO ¸ðµâÀ» ´Ù¸¥ DSO±â¹Ý ¶óÀ̺귯¸®(<code>ld -lfoo</code>)¿¡
260       ¸µÅ©ÇÒ ¼ö ¾ø´Â Ç÷¡ÆûÀÌ Àֱ⶧¹®¿¡ (¿¹¸¦ µé¾î ELF±â¹Ý
261       Ç÷¡ÆûÀº Áö¿øÇÏÁö¸¸ a.out±â¹Ý Ç÷¡ÆûÀº º¸Åë ÀÌ ±â´ÉÀ»
262       Áö¿øÇÏÁö ¾Ê´Â´Ù) ¸ðµç Á¾·ùÀÇ ¸ðµâ¿¡ DSO¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
263       ´Ù¸¥ ¸»·Î DSO ÆÄÀϷΠÄÄÆÄÀÏÇϴ ¸ðµâÀº ¾ÆÆÄÄ¡ Çٽɰú ¾ÆÆÄÄ¡
264       ÇÙ½ÉÀÌ »ç¿ëÇϴ C ¶óÀ̺귯¸®(<code>libc</code>)¿Í ´Ù¸¥
265       µ¿Àû/Á¤Àû ¶óÀ̺귯¸®, À§Ä¡µ¶¸³Äڵ带 ´ã°í Àִ Á¤Àû ¶óÀ̺귯¸®
266       ¾ÆÄ«À̺ê(<code>libfoo.a</code>)ÀÇ ½Éº¼¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
267       ´Ù¸¥ Äڵ带 »ç¿ëÇÏ·Á¸é ¾ÆÆÄÄ¡ ÇÙ½ÉÀÌ ±×°ÍÀ» ÂüÁ¶ÇÏ´øÁö,
268       <code>dlopen()</code>À¸·Î Á÷Á¢ Äڵ带 Àоîµé¿©¾ß ÇÑ´Ù.</li>
269     </ul>
270
271 </section>
272
273 </manualpage>