소개

DOC++의 아이디어는 프로그래머들이 프로그램 개발에만 신경쓸 수 있도록 고품질의 문서를 대신 써주는 도구를 제공한다는 것이다. 이 목적을 달성하기 위해서는 프로그래머들이 문서를 개발하는 소스에 바로 써넣을 수 있어야 한다는 것이 중요하다. 이러한 방법으로 접근하면, 프로그래머는 자신이 제작한 클래스와 메소드 등의 문서를 작성하고 있는 셈이다. 그리고 코드가 변경될때마다 바로 갱신할 수 있다. 동시에 cweb과 같은 도구를 이용할 때 별도의 필터를 사용할 필요 없이 코드를 바로 컴파일 할 수 있어야 하겠다. 따라서, 문서를 둘 수 있는 곳은 다름아닌 바로 주석이 된다.

아래 나온 것이 바로 DOC++에서 문서 생성에 이용하는 것이다. 그렇지만, 여기에는 주석이 두 종류가 있어서, 프로그래머는 이 두가지를 구별할 수 있기를 원한다. 하나는 구현에 관련된 문제를 기억하기 위해 써둔 주석이고, 또다른 하나는 클래스와 함수를 문서화하는 주석이다. 이 경우 누군가가 그 코드를 다시 사용할 수 있을 것이다. DOC++에서는 이를 서로 다른 형태의 주석으로 구분을 한다. JavaDoc과 비슷한데, 문서화 주석은 다음과 같은 형식을 따른다.

여기서 문서는 ``...''에 들어간다. 이러한 주석은 DOC++ 주석으로 간주하게 된다. 각 DOC++ 주석은 소스 코드에서 아래 선언에 쓰이는 메뉴얼 엔트리를 생성한다.

이제, ``고품질'' 문서화라는 것이 무엇을 의미하는지 생각해보자. 많은 프로그래머들은 문서를 온라인에서 마우스로 클릭하면서 보는 것을 좋아한다. 이러한 문서의 표준은 HTML이고 이 문서를 볼 수 있는 브라우저가 거의 모든 머신에 설치되어 있다. 그래서, DOC++은 구조화된 방법으로 HTML 출력을 지원하도록 설계되어 왔다.

그렇지만 HTML 문서를 인쇄해본 적이 있는가? 화면에서만큼 깔끔하게는 보이지 않을 것이다. 이것은 DOC++에서 문제가 되지 않는데, 고품질 문서를 생성하기 위해 LaTeX 출력을 지원하기 때문이다.

두 출력 포맷 모두, 문서가 잘 구조화 되어 있다는 것이 중요하다. DOC++은 계층을 지원하는데, 이는 단락/부단락 등으로 반영된다. 사용자들이 원하는 것을 쉽게 찾을 수 있도록 색인도 지원되고 있다.

C++과 자바는 (어떤 면에서) 객체 지향 언어이므로, 새로운 형태의 계층이 필요한데, 이를 클래스 계층이라 한다. 사실, DOC++은 자동으로 각 클래스의 계층을 그림으로 그려주고, HTML 출력에서는 자바 애플릿으로 보여준다.

DOC++에서 추가된 뛰어난 점은 C/C++ 코드에서 LaTeX 소스 코드를 생성하는 기능에 있다.

Alphabetic index Hierarchy of classes



This page was generated with the help of DOC++.