๋ฐ˜์‘ํ˜•

Doxygen ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋ณธ๋ฌธ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

[Doxygen] ๋…์‹œ์  ์œผ๋กœ ์ฝ”๋“œ ๋ฌธ์„œ ๋งŒ๋“ค๊ธฐ ์ด์ •๋ฆฌ (์˜ˆ์ œ ํฌํ•จ)

 

[Doxygen] ๋…์‹œ์  ์œผ๋กœ ์ฝ”๋“œ ๋ฌธ์„œ ๋งŒ๋“ค๊ธฐ ์ด์ •๋ฆฌ (์˜ˆ์ œ ํฌํ•จ)

๋…์‹œ์  (Doxygen)์ด๋ž€? ํ˜น์‹œ ํŠน์ • ํšŒ์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” SDK(Software Development Kit)๋ฅผ ์‚ฌ์šฉํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋‚˜์š”? ์žˆ๋‹ค๋ฉด, ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” SDK๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ž˜ํผ๋Ÿฐ์Šค ๋งค๋‰ด์–ผ์„ ์ฝ์–ด๋ณธ ์ ์ด ์žˆ๋‚˜์š”? SDK๋ฅผ ์‚ฌ

luckygg.tistory.com

Doxywizard(Doxygen GUI) ๊ธฐ๋ณธ ์„ค์ •

๋…์‹œ์   ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Doxywizard๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„์ฃผ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ง‰์ƒ ์‹คํ–‰ํ•ด๋ณด๋ฉด ํ™”๋ฉด์— ์„ค์ • ํ•ญ๋ชฉ์ด ๋„ˆ๋ฌด ๋งŽ์€๋ฐ์š”. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ตœ์†Œํ•œ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋ณธ ํ•ญ๋ชฉ์„ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Doxygen GUI ๊ธฐ๋ณธ ํ™”๋ฉด
Doxygen GUI ๊ธฐ๋ณธ ํ™”๋ฉด

๋ฌธ์„œํ™” ์†Œ์Šค ๊ฒฝ๋กœ ์„ค์ •ํ•˜๊ธฐ

๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•œ ์†Œ์Šค์ฝ”๋“œ์™€ ๊ฐ์ข… ํŽ˜์ด์ง€, ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ(๋˜๋Š” ํŒŒ์ผ)๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์— ํ‘œ์‹œํ•œ Select... ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ, ์•ž์œผ๋กœ ์„ค์ •ํ•  ์ž…๋ ฅ(Input) ๊ฒฝ๋กœ์™€ ์ถœ๋ ฅ ๊ฒฝ๋กœ(Destination directory)๋Š” ์ด ๊ธฐ๋ณธ ์ฃผ์†Œ์˜ ์ƒ๋Œ€ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ฒฝ๋กœ ์„ค์ •ํ•˜๊ธฐ
๊ธฐ๋ณธ ๊ฒฝ๋กœ ์„ค์ •ํ•˜๊ธฐ

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
ํ”„๋กœ๊ทธ๋žจ ์ƒ๋‹จ Specify the working directory... ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•œ ์›๋ณธ ์ž๋ฃŒ ๊ฒฝ๋กœ

์œ„ ๊ทธ๋ฆผ์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด, Source code directory์— pages๋ผ๊ณ  ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Source code directory๋Š” ๋‹ค์Œ์˜ ๊ฒฝ๋กœ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

C:\Users\Gg\Downloads\ExamDoxygen\doxygen\pages

๋ฌธ์„œํ™” ์†Œ์Šค ์ž๋ฃŒ
๋ฌธ์„œํ™” ์†Œ์Šค ์ž๋ฃŒ

์ฃผ์˜
 
 

๋ณ„๊ฑฐ ์•„๋‹ˆ์ง€๋งŒ, ์ด ์„ค์ • ํ•˜๋‚˜ ์ž˜๋ชปํ•˜๋ฉด ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป ์ง€์ •๋˜์–ด ๋ฌธ์„œํ™” ๊ฒฐ๊ณผ๋ฅผ ์•„๋ฌด๊ฒƒ๋„ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Doxywizard์˜ ์„ค์ • ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋ฉด, ์„ค์ • ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œํ™” ๊ฒฐ๊ณผ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด ๊ฒฝ๋กœ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•˜์„ธ์š”.

 

Wizard ํƒญ์˜ Project ๋ฉ”๋‰ด

Wizard ํƒญ์˜ Project ๋ฉ”๋‰ด
Wizard ํƒญ์˜ Project ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Wizard > Project

Project name ๋ฌธ์„œ ์ขŒ์ƒ๋‹จ ํฐ ์ œ๋ชฉ
Project synopsis ์‹œ๋†‰์‹œ์Šค(๊ฐ„๋‹จํ•œ ์„ค๋ช…)
Project version or id ๋ฒ„์ „ ๋˜๋Š” ์•„์ด๋””
Project logo ์ด๋ฏธ์ง€ ํŒŒ์ผ ๊ฒฝ๋กœ(๊ฐ€๋กœ ์ตœ๋Œ€ 200, ์„ธ๋กœ ์ตœ๋Œ€ 55 ํ”ฝ์…€)
Source code directory ๋ฌธ์„œํ™” ์†Œ์Šค ๊ฒฝ๋กœ
Destination directory ๋ฌธ์„œํ™” ์ถœ๋ ฅ ๊ฒฝ๋กœ

์œ„ ์„ค์ •์˜ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

HTML ๋ฌธ์„œ ์ƒ์„ฑ ๊ฒฐ๊ณผ
HTML ๋ฌธ์„œ ์ƒ์„ฑ ๊ฒฐ๊ณผ

Wizard ํƒญ์˜ Mode ๋ฉ”๋‰ด

Wizard ํƒญ์˜ Mode ๋ฉ”๋‰ด
Wizard ํƒญ์˜ Mode ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Wizard > Mode Select the desired extraction mode All Entities: ๋ชจ๋“  ์ฃผ์„ ๋ฌธ์„œํ™”
Include cross...: ๋ฌธ์„œํ™” ๋˜์–ด์žˆ๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ๋งํฌ ์—ฐ๊ฒฐ ์„ค์ •
Select programming language to optimize the results for ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ์ตœ์ ํ™”๋œ ๋ฌธ์„œ ์ƒ์„ฑ(์–ธ์–ด์— ๋”ฐ๋ผ ์„ ํƒ)

์†Œ์Šค ์ฝ”๋“œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

Wizard ํƒญ์˜ Output ๋ฉ”๋‰ด

Wizard ํƒญ์˜ Output ๋ฉ”๋‰ด
Wizard ํƒญ์˜ Output ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Wizard > Output Select the output format(s) to generate ์ƒ์„ฑํ•  ๋ฌธ์„œ ํ˜•์‹์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. CHM์ด๋‚˜ HTML ์ƒ์„ฑ์„ ์›ํ•˜๋ฉด HTML์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.
plain HTML HTML ๊ธฐ๋ณธ ํ˜•์‹์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
with navigation panel HTML ์ขŒ์ธก์— ๋ชฉ์ฐจ ํŽ˜์ด์ง€(navigation panel)์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
prepare for compressed HTML (.chm) CHM ํŒŒ์ผ ์ƒ์„ฑ์„ ์›ํ•  ๊ฒฝ์šฐ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
With search function HTML ์šฐ์ธก ์ƒ๋‹จ์˜ ๊ฒ€์ƒ‰(search) ๊ธฐ๋Šฅ์„ ์›ํ•  ๊ฒฝ์šฐ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ์ขŒ์ธก ์ด๋ฏธ์ง€๋Š” with navigation panel์„ ์„ ํƒํ•œ ๊ฒฐ๊ณผ์ด๊ณ , ์šฐ์ธก ์ด๋ฏธ์ง€๋Š” With search function์„ ์ฒดํฌํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

Navigation ๋ฐ Search function ๊ฒฐ๊ณผ
Navigation ๋ฐ Search function ๊ฒฐ๊ณผ

๋งŒ์•ฝ, CHM ํŒŒ์ผ ์ƒ์„ฑ์„ ์›ํ•œ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

[Doxygen] HTMLHelp๋กœ chmํŒŒ์ผ ๋งŒ๋“ค๊ธฐ(+ ๋ชฉ์ฐจ ํ•œ๊ธ€ ๊นจ์ง ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•)

 

[Doxygen] HTMLHelp๋กœ chmํŒŒ์ผ ๋งŒ๋“ค๊ธฐ(+ ๋ชฉ์ฐจ ํ•œ๊ธ€ ๊นจ์ง ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•)

chm ํŒŒ์ผ์ด๋ž€? chm์€ Microsoft Compiled HTML Help์˜ ์•ฝ์ž๋กœ, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ๋„์›€๋ง ํฌ๋งท์ž…๋‹ˆ๋‹ค. ์ด chm์€ HTML ํŽ˜์ด์ง€ ๋ชจ์Œ๊ณผ ๋ชฉ์ฐจ, ์ƒ‰์ธ, ๊ฒ€์ƒ‰ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ์š”. ์ฃผ๋กœ ์ œ์ž‘์‚ฌ ์ธก์—์„œ

luckygg.tistory.com

Wizard ํƒญ์˜ Diagrams ๋ฉ”๋‰ด

Wizard ํƒญ์˜ Diagrams ๋ฉ”๋‰ด
Wizard ํƒญ์˜ Diagrams ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Wizard > Diagrams Diagrams to generate ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒ์„ฑ ์—ฌ๋ถ€ ๋ฐ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
Use built-in class diagram generator Doxygen ๊ธฐ๋ณธ ์ƒ์„ฑ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.
Use dot tool from the GraphViz package GraphViz๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ด์–ด๊ทธ๋žจ์€ ๊ธฐ๋ณธ ์ƒ์„ฑ ์˜ต์…˜์„ ์„ ํƒํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค๋งŒ, ์กฐ๊ธˆ ๋” ๊พธ๋ฏธ๊ณ  ์‹ถ๋‹ค๋ฉด GraphViz ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. GraphViz๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž์„ธํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

[Doxygen] Graphviz ์ ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ํ‘œ์‹œํ•˜๊ธฐ

 

[Doxygen] Graphviz ์ ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ํ‘œ์‹œํ•˜๊ธฐ

Graphviz๋ž€? Graphviz๋Š” Graph Visualization Software์˜ ์•ฝ์ž๋กœ, ๋ง ๊ทธ๋Œ€๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ Graphviz ํ™ˆํŽ˜์ด์ง€์˜ Gallery ๊ฒŒ์‹œํŒ์„ ๋ณด๋ฉด ์ •๋ง ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™”๋ฅผ ์ง€.

luckygg.tistory.com

Expert ํƒญ์˜ Project ๋ฉ”๋‰ด

Wizard ํƒญ์€ ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ํ•ญ๋ชฉ๋งŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํ•œ ์„ค์ •์€ Expert ํƒญ์—์„œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Expert ํƒญ์˜ Project ๋ฉ”๋‰ด
Expert ํƒญ์˜ Project ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Expert > Project DOXYFILE_ENCODING CP949
OUTPUT_LANGUAGE Korean(์˜๋ฌธ ๋งค๋‰ด์–ผ์„ ์›ํ•  ๊ฒฝ์šฐ English)

Expert ํƒญ์˜ Build ๋ฉ”๋‰ด

Expert ํƒญ์˜ Build ๋ฉ”๋‰ด
Expert ํƒญ์˜ Build ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Expert > Build EXTRACT_ALL ๋ชจ๋“  ํ•ญ๋ชฉ ๋ฌธ์„œํ™”

EXTRACT_ALL์„ ์„ ํƒํ•˜๋ฉด ๋ฌธ์„œ์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ๋ฌธ์„œํ™”๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์›์น˜ ์•Š๊ณ  ์„ธ๋ถ€์ ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์ขŒ์ธก ํ•˜๋‹จ์˜ ์„ค๋ช…์„ ๋ณด๋ฉด์„œ ์ฒดํฌํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Expert ํƒญ์˜ Input ๋ฉ”๋‰ด

Expert ํƒญ์˜ Input ๋ฉ”๋‰ด
Expert ํƒญ์˜ Input ๋ฉ”๋‰ด

์œ„์น˜ ํ•ญ๋ชฉ ๊ฐ’
Expert > Input INPUT ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•œ ํŒŒ์ผ ๋˜๋Š” ๊ฒฝ๋กœ ์„ค์ •
INPUT_ENCODING CP949
RECURSIVE ํ•˜์œ„ ๊ฒฝ๋กœ ํƒ์ƒ‰
EXAMPLE_PATH ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ, ์˜ˆ์ œ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ ์„ค์ •
IMAGE_PATH ๋ฌธ์„œํ™” ํŽ˜์ด์ง€์— ๊ทธ๋ฆผ์„ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ, ๊ทธ๋ฆผ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ ์„ค์ •

์•„๋ž˜ ๊ทธ๋ฆผ์˜ ์ขŒ์ธก ์ด๋ฏธ์ง€๋Š” ์˜ˆ์ œ ์ฝ”๋“œ(example code)๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์šฐ์ธก ๊ทธ๋ฆผ์€ ํŽ˜์ด์ง€์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ทธ๋ฆผ์ด ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ, ๊ทธ๋ฆผ ํŒŒ์ผ์€ IMAGE_PATH์— ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Example code์™€ Page์— Image๊ฐ€ ์ถ”๊ฐ€๋œ ๋ชจ์Šต
Example code์™€ Page์— Image๊ฐ€ ์ถ”๊ฐ€๋œ ๋ชจ์Šต

์—ฌ๊ธฐ๊นŒ์ง€ ๋”ฐ๋ผ ํ•˜์…จ๋‹ค๋ฉด, ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์˜ ๋ฌธ์„œํ™” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•