Doxygen

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 문서에 전체 텍스트 검색 및 인덱스 자동 생성

사용 방법

  1. 설정 파일 생성

    doxygen -g Doxyfile
    

    기본 옵션이 포함된 Doxyfile이 생성된다.

  2. 옵션 수정

    • PROJECT_NAME, OUTPUT_DIRECTORY, INPUT 등 프로젝트에 맞는 값으로 편집
    • EXTRACT_ALL = YES 로 모든 심볼 문서화 가능
  3. 문서 생성

    doxygen Doxyfile
    

    지정된 OUTPUT_DIRECTORY에 선택한 포맷의 문서가 생성된다.

  4. 결과 확인
    HTML 문서는 index.html을, LaTeX 문서는 Makefile을 이용해 PDF로 컴파일한다.

라이선스

Doxygen은 GNU GPL 버전 2(또는 그 이후 버전) 라이선스로 배포된다. 따라서 소스 코드를 자유롭게 수정·재배포할 수 있으나, 파생 작품 역시 동일한 GPL 조건을 따라야 한다.

관련 소프트웨어

  • Graphviz – 그래프 시각화를 담당하는 오픈 소스 도구
  • CMake – 빌드 시스템에서 Doxygen 실행을 자동화하는 데 흔히 사용
  • Sphinx – 파이썬 기반 문서 생성기이며, Doxygen과 연동 가능한 확장 제공

참고 문헌

  1. Doxygen 공식 매뉴얼, https://www.doxygen.nl/manual/
  2. “Generating Documentation with Doxygen”, Linux Journal, 2021년 5월호.

외부 링크

  • 공식 홈페이지: https://www.doxygen.nl
  • GitHub 저장소: https://github.com/doxygen/doxygen
  • 사용자 커뮤니티: https://forum.doxygen.nl

이 문서는 위키백과 스타일을 따르며, 최신 버전(2024년 기준) 정보를 기반으로 작성되었습니다.

둘러보기

더 찾아볼 만한 주제