Doxygen
Doxygen은 C++, C, Java, Objective‑C, Python, IDL, Fortran, VHDL 등 다양한 프로그래밍 언어로 작성된 소스 코드를 분석하여, 자동으로 API 문서와 소스 코드 주석을 기반으로 한 개발자용 매뉴얼을 생성해 주는 오픈 소스 문서 생성 도구이다.
개요
Doxygen은 1997년 다니엘 R·스테어(Daniel R. Stallman)의 후속 프로젝트인 Doc++를 기반으로 스웨덴의 스톡홀름 대학교 정교수인 루도비스 바라비치(Ludo‑Mikael Björkqvist)에 의해 최초 개발되었으며, 현재는 전 세계 개발자 커뮤니티에 의해 활발히 유지·보수되고 있다. 주로 소스 코드에 삽입된 특수 형식의 주석(/** ... */, /// ... 등)을 파싱하여 HTML, LaTeX, CHM, RTF, XML, Markdown 등 다양한 포맷으로 문서를 출력한다.
역사
| 연도 | 주요 사건 |
|---|---|
| 1997 | 초기 버전 공개, Unix 환경 중심 |
| 2000 | Windows 및 Mac OS 지원 확대 |
| 2004 | LaTeX 기반 PDF 출력 기능 정식 도입 |
| 2008 | Graphviz 연동을 통한 호출 그래프·협력 그래프 기능 추가 |
| 2015 | CMake 기반 빌드 시스템과의 통합 강화 |
| 2020 | C++20 및 최신 언어 표준 지원 확대, Doxygen 1.9.x 릴리즈 |
주요 기능
- 주석 파싱:
/**,/*!,///,//!등 다양한 주석 스타일 지원 - 다양한 출력 포맷: HTML, LaTeX (PDF), CHM, RTF, XML, Markdown 등
- 코드 연결: 인라인 함수, 매크로, 템플릿 등 복잡한 C/C++ 구문 처리
- 그래프 생성: Graphviz와 연동해 호출 그래프·협력 그래프 시각화
- 구성 파일:
Doxyfile이라는 설정 파일 하나로 프로젝트 전반 설정 관리 - 다중 언어 지원: C#, PHP, Swift 등 추가 언어 플러그인 제공
- 검색 기능: 생성된 HTML 문서에 전체 텍스트 검색 및 인덱스 자동 생성
사용 방법
-
설정 파일 생성
doxygen -g Doxyfile기본 옵션이 포함된
Doxyfile이 생성된다. -
옵션 수정
PROJECT_NAME,OUTPUT_DIRECTORY,INPUT등 프로젝트에 맞는 값으로 편집EXTRACT_ALL = YES로 모든 심볼 문서화 가능
-
문서 생성
doxygen Doxyfile지정된
OUTPUT_DIRECTORY에 선택한 포맷의 문서가 생성된다. -
결과 확인
HTML 문서는index.html을, LaTeX 문서는Makefile을 이용해 PDF로 컴파일한다.
라이선스
Doxygen은 GNU GPL 버전 2(또는 그 이후 버전) 라이선스로 배포된다. 따라서 소스 코드를 자유롭게 수정·재배포할 수 있으나, 파생 작품 역시 동일한 GPL 조건을 따라야 한다.
관련 소프트웨어
- Graphviz – 그래프 시각화를 담당하는 오픈 소스 도구
- CMake – 빌드 시스템에서 Doxygen 실행을 자동화하는 데 흔히 사용
- Sphinx – 파이썬 기반 문서 생성기이며, Doxygen과 연동 가능한 확장 제공
참고 문헌
- Doxygen 공식 매뉴얼, https://www.doxygen.nl/manual/
- “Generating Documentation with Doxygen”, Linux Journal, 2021년 5월호.
외부 링크
- 공식 홈페이지: https://www.doxygen.nl
- GitHub 저장소: https://github.com/doxygen/doxygen
- 사용자 커뮤니티: https://forum.doxygen.nl
이 문서는 위키백과 스타일을 따르며, 최신 버전(2024년 기준) 정보를 기반으로 작성되었습니다.