15๋ถ๊ฐ ๊ณ ๋ฏผํด๋ ๋ต์ด ์๋์ค๋ ๊ฒ์ 15๋ถ์ด ๋ถ์กฑํ ๊ฒ์ด ์๋๋ผ ๊ณ ๋ฏผ์ ํ ๋ฅ๋ ฅ์ด ๋ถ์กฑํ ๊ฒ์ด๋ค - ๋ชจ ์ํค์ฌ์ดํธ์์ ํผ์ด
๏ปฟ * doxbar๊ฐ ์๋ณด๋์ฌ์ด ์์ฒญ ์ข์์ก๊ตฐ์! ํ์ง๋ง..์๊ทผ๋ VC๋ฅผ ์ฐ์ง ์๋์ง๋ผ...
1 ์์ํ๋ฉฐ #
๊ฐ์ธ์ ์ผ๋ก ์ธ์ฃผ๊ฐ๋ฐ์ผ์ ํ๋ฉด์ ๋ฉ๋ด์ผ ๋ฐ ๊ตฌ์ฑ์์์ ๋ํ ๋ฌธ์์์
์ด ์๊ฐ์ธ๋ก ๋ฒ
์ฐจ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์๋ค. ์ฃผ์๋ถ์ํด์ ์ฐพ๋ ์ค, ACE ๋ฉ๋ด์ผ์ ๋ง๋๋๋ฐ ์ฌ์ฉ๋๋ Doxygen์ด๋ ํด์ ์ ํ๊ฒ ๋์๋ค. ์๊ฐ๋ณด๋ค ๊ฐ๋ ฅํ ํด์ ๋ฌธ๋ฒ๋ ๊ฐ๋จํ๋ค. ์ค์น์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋จผ์ ํ๋๋ก ํ๊ฒ ๋ค. (VC์ ์ค์นํ ๋ด์ฉ์ ์์ฃผ๋ก ํ๋๋ก ํ๋ค. ์๋ง๋ ์ค์น ๋ฉ๋ด์ผ์ ๊ฑฐ์ ๋ฐฐ๋ผ์ง ์์๊น ์๊ฐ๋๋ค. ^^)
2 VC์ ์ค์นํ๊ธฐ #
- Doxygen์
http://www.stack.nl/~dimitri/doxygen/index.html์์ ๊ตฌํ ์ ์๋ค. ์๋์ฐ์ฆ์ฉ ์ธ์คํจ๋ฌ๊ฐ ์์ผ๋ฏ๋ก download ์น์
์์ ๋ฐ์ผ๋ฉด ๋๋ค. ์ค์นํ๊ธฐ๋ ๋งค์ฐ ์ฝ๋ค.
- ์ ๋๋ก ์ค์นํ์ผ๋ฉด ๋์ค ํ๋กฌํํธ ์์์ Doxygen์ ์คํํ ์ ์๋ค. ๋์ค์ ์ฌ์ฉํ configuration ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์คํํ๋ค.
C:\> doxygen -g
C ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ Doxyfile์ด๋ ํ์ผ์ด ์์ฑ๋ ๊ฒ์ ํ์ธํด๋ณธ๋ค.
- graphviz๋ฅผ ๋ฐ์์ ์ค์นํ๋ค.
์ด๊ณณ์ด ํํ์ด์ง์ด๋ค. ํด๋์ค๋ ํจ์๊ฐ์ ๊ด๊ณ๋ฅผ ์ด๊ฒ์ ์ฌ์ฉํด์ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ์๋์ฐ์ฆ ๋ฐฐํฌํ์ ๋ฐ์ ์ค์นํด์ค๋ค. ์ค์น๋ง ํ๋ฉด ๋๋ค. ์ด๊ฒ์ ํด๋์ค๋ ์์คํ์ผ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค์ค ๋ ์ฌ์ฉํ๋ค.
- ๋ค์์๋ Doxbar ์ฐจ๋ก๋ค. ์ด๊ฒ์ด ์กฐ๊ธ ๊ณจ์น์ํ๋ฏ๋ก ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ์ ํ๋ค. ์ฐ์
ํํ์ด์ง์ ๊ฐ์ ์์ถ ๋ฐฐํฌ๋ณธ์ ๋ฐ๋๋ค. ์๋ง์ ๊ณณ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ์์ถ์ ํผ๋ค. (๊ฐ๊ธ์ C ๋ฃจํธ๋๋ ํ ๋ฆฌ์ ๊ฐ๊น์ด ๊ณณ์ ๋ง๋ ๋ค. doxygen๊ด๋ จ ํ๋ก๊ทธ๋จ๋ค์ ๋๋ฌด path๊ฐ ๊ธธ๋ฉด ์ธ์์ ๋ชปํ๋ ๊ฒฝํฅ์ด ์๋ค)
- VC์ ์์ํ๊ณ , Tools -> Customize... ๋ฉ๋ด๋ฅผ ์ ํํ๋ค. add-ins and Macro Files ํญ์ ์ ํํ๋ค. Browse๋ฒํผ์ ๋๋ฌ ์๊น ์์ถ์ ํ์๋ ๋๋ ํ ๋ฆฌ๋ก ๊ฐ์ doxbar.dll์ ์ ํํ๋ค. ์ดํ์ open์ ์ ํํ๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ค์น๋๋ฉด ์ฑ๊ณต์ด๋ค.
http://doxbar.sourceforge.net/addin.png
- Close๋ฅผ ์ ํํ๊ณ ๋น ์ ธ๋์ค๋ฉด VC์์ ๋ค์๊ณผ ๊ฐ์ ํด๋ฐ๊ฐ ์๊ฒจ์ ธ์๋ค.
http://doxbar.sourceforge.net/toolbar.png
- ๋ค์ Tools -> Customize... ๋ฉ๋ด๋ฅผ ์ ํํ๋ค. Tools ํญ์ ์ ํํ๊ณ ์๋ก ์์ดํ
์ ์ถ๊ฐํ๋ค. ๊ทธ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ๋ค.
http://doxbar.sourceforge.net/config.png
์์์ rundox.batํ์ผ์ ์ค์ ๋ก ์กด์ฌํ์ง ์์ง๋ง ์ ์ด์ค๋ค. Close๋ฅผ ์ ํํ๋ฉด ๊ฒฝ๊ณ ๋ฉ์ธ์ง๊ฐ ๋ฐํ ๋ฐ, no๋ฅผ ์ ํํด์ ๋ฌด์ํ์. (์ด ๋ฐฐ์นํ์ผ์ doxygen์ด ์์ฑํ๋ค.)
- Tools๋ฉ๋ด๋ฅผ ๋ค์ ์ ํํด์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ฉ๋ด๊ฐ ๋ํ๋๋ฉด, doxygen์ด ๋ช๋ฒ์งธ ํด์ธ์ง ๊ธฐ์ตํด๋๋ค. (๊ทธ๋ฆผ์์๋ 7๋ฒ์งธ์ด๋ค.)
http://doxbar.sourceforge.net/menu.png
- (์ค์ ๋ถ๋ถ์ ๋ง์ด ๊ฐ์ ๋์์ง๋ง, ์ ๊ฐ VC๋ฅผ ํ๋์ ์ฌ์ฉํ์ง ์๋ ๊ด๊ณ๋ก ๋ฒ์ญํ์ง ์์์ต๋๋ค.
doxbar ํํ์ด์ง์ ์ค์น๊ทธ๋ฆผ์ ์ฐธ์กฐํ์ธ์)
- ๋ง์ง๋ง์ผ๋ก Doxyfile์ ๊ณ ์ณ๋ณด์. (doxygen์ ํ๊ธ์ ์ง์ํ๋ค. ^^) ๋ค์ ๋ถ๋ถ์ ์ฐพ๋๋ค.
... # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, # German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, # Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. OUTPUT_LANGUAGE = English ...
ํ์ด ํ์ค๋๊ฐ? ^^; Korean์ผ๋ก ์ผ๋ฅธ ๊ณ ์ณ์ฃผ์. ^^;
์ค์น๊ฐ ๋๋ฌ๋ค. ์ถํํ๋ค. ^^;
3 ์ฌ์ฉํด๋ณด์! #
์ฐ์ ๋ง๋งํ ํ๋ก์ ํธํ์ผ์ ์ด์. ํ๋ก์ ํธ๊ฐ ์ฌ๋ฌ๊ฐ ํฌํจ๋์ด์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ํ๊ฐ๋ฅผ Active ์ํจ๋ค. http://doxbar.sourceforge.net/doxbar.gif ํด๋ฐ์์ ๋งจ ์ผ์ชฝ ๋ฒํผ์ ๋๋ฌ๋ณด์. ๋๋ฌ๋ค. ํ๋ก์ ํธ๊ฐ ๋ด๊ฒจ์ ธ ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ค์ ธ๋ณด๋ฉด html๊ณผ latex๋ผ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์๊ฒจ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. html๋๋ ํ ๋ฆฌ์์ ๋ณด๋ฉด ๋์๋ง ํ์ผ(chmํ์ผ)๊ณผ htmlํ์ผ์ด ์์ฑ๋์ด ์์์ ๋ณผ ์ ์๋ค. ์ ๋ง ๊ฐ๋จํ๋ค! ^^;
4 ์์ค์์๋ ์ด๋ป๊ฒ ์ฌ์ฉํ์ง? #
doxygen์ ์์ค๋ฅผ ๋ชฝ๋
ํ์ด ์ฃผ์๊ณผ ํด๋น ์ฝ๋๋ฅผ ํ์ฑํ์ฌ ๋ฉ๋ด์ผ์ ์์ฑํ๋ค. ์์ธํ ์ฌ์ฉ๋ฒ์
doxygen ํํ์ด์ง์ manual์ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋ค. (์งฌ๋๋๋ฐ๋ก ์ด ๋ถ๋ถ์ ์ ๋ฆฌํด๋์ ์์ ์ด๋ค) ๊ฐ์ฅ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ์ ์ฃผ์์ ๋ฌ๋ !๋ฌธ์๋ฅผ ํ๋ ๋ ๋ถ์ด๋ ๊ฒ์ด๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ด ๋ถ์ฌ๋ณด์.
doxygen ํํ์ด์ง์ manual์ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋ค. (์งฌ๋๋๋ฐ๋ก ์ด ๋ถ๋ถ์ ์ ๋ฆฌํด๋์ ์์ ์ด๋ค) ๊ฐ์ฅ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ์ ์ฃผ์์ ๋ฌ๋ !๋ฌธ์๋ฅผ ํ๋ ๋ ๋ถ์ด๋ ๊ฒ์ด๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ด ๋ถ์ฌ๋ณด์.
... //! ์ด๊ฒ์ ํ ์คํธ์ฉ ํจ์๋ค. void func(); ...
๋ฐฑ๋ฌธ์ด ๋ถ์ฌ์ผrun์ด๋ค. ^^; ๊ผญ ํ๋ฒ ์์ ์ ๋๋ฆ๋๋ก์ ๊ฒ์์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฌธ์ํํด๋ณด๊ธธ ๋ฐ๋๋ค. ์ฝ๋ฉ๊ณผ ๋ค๋ฅธ ์๋ค๋ฅธ ๋ฟ๋ฏํจ์ด ์๋ค. ^^;
5 DoxyFile ์ต์ ์ค๋ช #
doxygen์ ์คํ์ต์
์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ค์น๋จ๊ณ์ค 2๋ฒ์งธ์์ ์์ฑํ ํ์ผ์ ๋ด๋ถ๋ฅผ ๊ณ ์น๋ฉด ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ์ ์ข์ํ๋ text ์๋ํฐ๋ก ์์ ํ์๊ธธ...
| OUTPUT_LANGUAGE | ๊ฒฐ๊ณผ๋ฌผ์ ๊ตญ์ (!)์ ๋ํ๋ธ๋ค. Korean์ผ๋ก ๋ง์ถ๋ฉด ๋๋ค. |
| EXTRACT_ALL | ์์ฑํ ๋น์ด์๋ ๋ฌธ์ํญ๋ชฉ๋ค๋ ๋ชจ๋ ํ์ํ๋ค. YES๋ก ๋ง์ถ์ด์ฃผ๋ ๊ฒ์ด ์ข๋ค. |
| EXTRACT_PRIVATE | private ๋งด๋ฒ๋ค์ ๋ฌธ์ํํ ๊ฒ์ธ์ง ์ฌ๋ถ. |
| EXTRACT_STATIC | static ๋งด๋ฒ๋ค์ ๋ฌธ์ํํ ๊ฒ์ธ์ง ์ฌ๋ถ. |
| SOURCE_BROWSER | ์์ค์ ๋ํ ์ง์ ์ ์ธ ์ ๋ณด๋งํฌ๋ฅผ ๋ง๋ค ๊ฒ์ธ์ง ์ฌ๋ถ. YES๋ก ํ๋ ๊ฒ์ด ์ข๋ค. |
| HAVE_DOT | graphviz(์ค์น๋จ๊ณ์์ 3๋ฒ์งธ)๋ฅผ ์ค์นํ๋ค๋ฉด YES๋ก ๋๋๋ค. |
6 ๋ง์น๋ฉฐ #
์ ์ค์น๋จ๊ณ์์ 2๋ฒ ๋จ๊ณ์ Doxyfile์ ๋ง๋งํ ํ
์คํธ ์๋ํฐ๋ก ์ ์์ ํ๋ฉด doxygen์ 120% ํ์ฉํ ์ ์์ ๊ฒ์ด๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋ง์ ๋์์ ๋ฐ์ ํด์ด๊ธฐ์ ์ด๋ ๊ฒ ์ค์น๊ธฐ๋ฅผ ์ ์ด๋ณธ๋ค. ์ด๋ฐ ์ฃผ์๋ถ์ํด์ ์ฌ์ฉํ๋ฉด ์ฝ๋ฉ๊ณผ ๋์์ ๋ฉ๋ด์ผ ์์
์ ๊ฐ์ด ํ ์ ์๋ ์ฅ์ ์ด ์๊ธด๋ค. (์๋ฐ์์๋ javadoc์ด๋ผ๋ ๊ฒ์ด ์๋ค๊ณ ๋ค์๋ค.) ๊ฒ์ํ๋ก๊ทธ๋๋จธ๋ผ๋ฉด C/C++์ ๋ฒ์ด๋๊ธฐ๋ ํ๋๋ฏ๋ก ์ด๋ฐ ํด์ ์์๋๋ฉด ํ์๋ค๋ผ๋ฆฌ์ ๋ฌธ์ํ์ ์์
๊ต๋ฅ, ํ๋ก์ ํธ ๋์๋ง ์์
๋ฐ ๋ฌธ์ํ ์์
์ ๋ฅ๋ฅ ์ ํฅ์์ํฌ ์ ์์ผ๋ฆฌ๋ผ ๋ฏฟ๋๋ค.









