🛠 툴과 API/기타

Doxygen, 자동 문서 생성 툴

또디기 2025. 3. 23. 20:36

Doxygen은 C/C++을 사용할 때 주석으로 이용해 자동으로 문서를 생성하는 도구이다.

 

C/C++ 기본 여러 줄 주석이 /*로 시작해 */로 끝나며, 그 안에 있는 라인에는 별도의 기호를 표시하지 않는 것과 달리, Doxygen 주석은 /** 로 시작해 */로 끝나며, 그 안에 있는 라인은 * 기호로 시작한다.

또, 주석을 설명하기 위한 다양한 태그를 지원한다. (@로 시작)

/**
 * Simple Text
 * @return description about return
 */

 

Doxygen은 이런 형식의 주석을 인식하여 알아서 클래스와 함수에 대한 document를 생성해준다.

 

참고로 Visual Studio IDE는 자체적으로 Doxygen이 깔려있는 건 아니지만, Doxygen과 호환을 위해 Doxygen 주석과 태그를 기본적으로 지원하며, IntelliSense에 주석 영역을 구분해준다.

 

클래스용 태그

/**
 * @brief 간단한 설명
 * @details 자세한 설명
 * @author 작성자/저작권자
 * @date 날짜
 * @version 버전
 */

 

Doxygen으로 문서를 생성하면 이런 모양이 된다.

 

메서드용 주석

/**
 * @brief 간단한 설명
 * @details 자세한 설명
 * @param 인자에 대한 설명
 * @param (일반적으로 줄마다 인자 하나씩 적는다.)
 * @return 반환에 대한 설명
 * @throws 발생 예외에 대한 설명
 */

 

기타(공용) 태그

/**
 * @todo 해야 할 일 기록용
 * @bug 버그에 대한 설명
 * @see 비고란. See also.
 * @n 주석 내에서 개행
 */

특수 태그

Doxygen 문서에 표 만들기

/**
 * First Header  | Second Header
 * ------------- | -------------
 * Content Cell  | Content Cell
 * Content Cell  | Content Cell
 */

리스트 만들기

/**
 * @li element1
 * @li element2
 */

 

하이퍼링크 만들기

/**
 * [텍스트][링크주소]
 */

 

코드 블록

/**
 * @code{.cpp}
 * printf("Hello, World!");
 * @endcode
 */

 

클래스 참조 링크 (Doxygen으로 문서화된 클래스여야 링크 주소 생성됨)

/**
 * @ref 클래스이름 (네임스페이스 아래에 있는 경우 네임스페이스.클래스명)
 * @ref Util.Structure.Vector3
 */