Doxygen에 대해서 알아보자.
on
난 원래 어떤 문제에 대해서 깊게 파는 스타일이 아니라 (=그 정도로 부지런하지 않은) 내가 필요한 기능이 무엇인가, 있다면 어떻게 써야하는 것에만 관심이 있다.
Doxygen도 같은 맥락에서 보자면,
- 정체: code를 작성하면 그것을 문서로 정리해주는 응용 프로그램
- 어떻게: code에 comment를 특정 조건에 맞게 붙여주면 그것을 힌트 삼아 전체 코드를 스캔해서 hierarchical 하게 분석하고 그것에 적절히 comment로 달아준 내용을 붙여서 문서를 완성한다.
- 결과물: html/pdf/epub/…
원래 이 세계는 문서 포멧과 변환에 대한 자유도가 아주 높아서 그저 대충 코드를 작성할 때 적당한 룰에 따라서 내용만 붙여주면, 나중에 아주 깔끔한 문서를 만들어준다. 대개의 에디터들은 doxygen용 문법을 지원한다. Xcode 같은 경우는 아주 잘 지원한다. VS code는 좀 바보 같다.(VS code 자체가 지원하는 것이 아닌 플러그인이 하는 것이라 마소를 원망하는 게 아니다.)
나중에 code를 뒤져가며 힘들게 문서를 작성해야할 일이 없는 것이다.
이 좋은 툴이 아주 옛날부터 있어왔다는 것은 알았지만 사실 사용하지 않은 것은 귀찮음 때문이었다. 또 code를 결과물로 납품해야 하는 일을 돈 받고 하지 않았기 때문이기도 하다. 사실 전체적인 개발 결과는 code가 아니라 보고서와 하드웨어 뭐 이런 식이었기 때문에 (또 대개 들여다보지 않으니까) doxygen을 쓸 일이 없는 것이다.
그런데, 살다보니 내게도 이런 일을 하게 되었다. Code를 결과물로 달라고 하는 것이다.
거지같은 code 근성은 다 버리고 깔끔하고 세련되게 작성해야 함은 물론이고 잘 모르는 사람들도 보고 이해할 수 있게 너무 축약되고 이유를 알 수 없게 작성하면 안된다. 그렇게 하는 경우엔 설명을 달아주어야 하는 것이다.
다 삶의 경험이려니 하고 살아야지. 내가 작성한 것도 한두달만 지나면 싹 잊고 다시 들여다보면서 신기해하는 게 다반사인 것은 다 그 귀찮음 때문인 것이다. 물론 말로 설명해서 안되는 것들이 대부분이긴 하다만.