Nov 23 2006
예제를 통해 Doxygen 주석 다는 방법 최대한 간단히 익히기
나중에 까먹게 될 까봐 바로 사용할 수 있을 정도로 간략하게 간추려서 올림
* 예제는 실제 사용 중인 소스 코드를 타겟으로 함
* ‘최대한 간단히’ 에 주목
* 설치 및 운용, 자세한 사용법에 대해서는 다루지 않음(아래 사이트들을 참조)
http://parasite.pe.kr/?p=26 / http://parasite.pe.kr/?p=27
http://wiki.kldp.org/wiki.php/Doxygen
http://www.gpgstudy.com/gpgiki/DoxygenTutorial
* 대신, 설정 템플릿 파일은 올려 둠(급할 수도 있으니까)
– 옮기면서 첨부파일을 날림…
아래는 Doxygen 형식의 주석이 적용된 예제 소스이다.
/**
@file PropertiesUtil.h
@brief CPropertiesUtil 클래스 선언 헤더
*/
#if !defined(AFX_PROPERTIESUTIL_H__5B7DF824_3F5A_47F6_9AD3_A287733C8379__INCLUDED_)
#define AFX_PROPERTIESUTIL_H__5B7DF824_3F5A_47F6_9AD3_A287733C8379__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include “stdafx.h”
#define PROPERTY_LOAD_SUCCESS 1 /**< 파일 파싱까지 성공함 */
#define PROPERTY_LOAD_FILE_FAILED 0 /**< 파일 로드에 실패함 */
#define PROPERTY_ERROR_LINE_MUL -1 /**< 여기에 * n(에러 행 번호) 해서 리턴하게 됨 */
/**
@brief 설정 파일을 읽어서 보관하는 클래스
설정 파일의 구조는 다음과 같다.
- 첫 글자가 # 이면 그 라인은 주석
- 빈 라인은 대상이 되지 않음
- ‘속성 = 값’ 으로 이루어진다.
*/
class AFX_EXT_CLASS CPropertiesUtil
{
public:
/**
* @brief 생성자\n
* 아무 일도 하지 않는다.
*
*/
CPropertiesUtil();
/**
* @brief 소멸자\n
* 아무 일도 하지 않는다.
*
*/
virtual ~CPropertiesUtil();
/**
@brief 설정 파일을 읽어들여서 파싱하고 각 설정들을 저장
@param szFileName 읽어들일 설정 파일 이름
@return 에러 유무
@see PROPERTY_ERROR_LINE_MUL
@see PROPERTY_LOAD_FILE_FAILED
@see PROPERTY_LOAD_SUCCESS
*/
int LoadFile(const char * szFileName);
/**
@brief 속성에 해당하는 값을 맵에서 찾아서 전달인자에 설정
@param szKey 속성 이름
@param csValue 속성에 해당하는 값
@return 속성의 존재 유무
*/
BOOL GetMatchedValue(const char * szKey, CString & csValue);
private:
CMapStringToString m_mapKeyToVal; /**< 키와 값을 매핑시킨 객체 */
};
#endif // !defined(AFX_PROPERTIESUTIL_H__5B7DF824_3F5A_47F6_9AD3_A287733C8379__INCLUDED_)
JavaDoc 유저라면 보기만 해도 어떻게 하는 건지 짐작이 올 것이고, 아니어도 감이 올 거라 생각한다.
많은 주석 스타일 중에 JavaDoc 스타일을 선택하였고( /** ~ */ ) 속성도 필요한 것만 사용하였다.
속성들은 앞에 @를 붙이고 있다. 물론 다른 스타일은 !도 있는데, 여기서는 그냥 @만 생각하자.
file : 일반적으로 파일 명을 기술
brief : 함수에 대해 간략하게 기술
주의사항 - 상세 기술과 구분하기 위해 한 라인을 비워야 한다.
param : 파라미터에 대해 기술
see : 참조할 함수나 클래스, define값, struct 등을 기술
return : 리턴값에 대해 기술
속성 없이 쓰여진 텍스트는 상세 기술이라고 생각하면 된다.
이제 Doxygen을 구동시키자. 구동시키면 첨부파일과 같은 내용의 html파일들이 쭉 나오고,
첨부파일은 이를 Doxygen이 chm으로 자동으로 컴파일해 준 것이다.
한번 열어서 확인해 보기 바란다.
– 역시 첨부파일을 날림…
이제 C/C++ 유저도 JavaDoc를 부러워하지 말 지어다.
