1. typedoc의 필요성
- 프로젝트에서 많은 수의 유틸 함수가 있으면, 각 함수의 용도와 사용법을 파악하기 어려워진다.
- 특히 프로젝트가 복잡해지고, 많은 사람들이 참여할 때 문제가 커진다.
- 이러한 문제는
typedoc
을 사용해 유틸 함수를 문서화하면 해결할 수 있다! typedoc
을 사용하면 함수의 용도와 사용법을 명확하게 알 수 있어, 유지 보수가 쉬워지고 개발자들의 생산성을 높일 수 있다 🙂- 그렇다면 이
typedoc
은 무엇이며 어떻게 설정해야할까? 한 번 알아보자!
2. typedoc이란?
1) typedoc은 무엇일까?
TypeDoc
은 TypeScript 코드에서JSDoc
주석을 추출하여 API 문서로 생성하는 도구이다.TypeDoc
을 사용하면 TypeScript 코드의 문서화를 쉽게 할 수 있다.- 아래 코드는 두 숫자의 합을 구하는 함수의 docs 주석 예시이다.
/**
* 숫자를 더합니다.
*
* @alpha
* @param x - 첫 번째 입력 숫자
* @param y - 두 번째 입력 숫자
* @returns x와 y의 합
*
* @example
* ```typescript
* const result = addNumbers(1, 2);
* console.log(result); // 3
* ```
*/
export function addNumbers(x: number, y: number): number {
return x + y;
}
docs 변환 파일을 열면 아래와 같이 나타나는데, 페이지에서 함수의 용도와 사용법을 알 수 있다.
tsdoc
에서 사용할 수 있는 태그는 공식 홈페이지에서 확인할 수 있으므로, 이 링크에서 태그를 확인해보자!
2) typedoc 설정방법
TypeDoc
을 사용하기 위해선 프로젝트에TypeDoc
을 설치하고, 설정 파일을 작성해야 한다.TypeDoc
설정은typedoc.json
파일로 작성할 수 있으며, 필요한 옵션을 추가하여 문서화 방식을 변경할 수 있다.
(1) 프로젝트 설정하기
🎈 우선 프로젝트 셋팅을 해보자! 예시 환경은
yarn
으로 진행했다.
- 터미널에 아래 명령어를 입력하여
yarn
기본 환경 설정을 한다.
yarn init
- 그 다음, typescript 셋팅을 한다.
yarn add typescript
- 루트 위치에서
tsconfig.json
파일을 생성하고 typescript 설정 코드를 추가한다.
// ./tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"esModuleInterop": true,
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2017"],
"strict": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
(2) Typedoc 설정하기
🎈 프로젝트 설정도 얼추 했겠다!
TypeDoc
설정을 해보자~
- 다음 명령어를 사용해
TypeDoc
을 설치한다.
yarn add -D typedoc
- 루트 위치에
typedoc.json
파일을 생성하고TypeDoc
관련 설정 코드를 추가한다. - 여기서
entryPoints
은 문서화할 파일의 경로를 설정하는 옵션이며, out
은TypeDoc
이 생성한 문서를 저장할 폴더 위치를 뜻한다.
// typedoc.json
{
"out": "./docs",
"entryPoints": ["src/index.ts"]
}
- 그럼 위 코드는 문서화할 파일의 경로가
src/index.ts
이고, 문서화된 파일이docs
폴더에 저장된다는 뜻이 된다.
- 그 다음
tsconfig.json
에typedoc.json
의 설정을 그대로 추가해주자!
"exclude": ["node_modules"],
"typedocOptions": { // this!
"entryPoints": ["src/index.ts"],
"out": "docs"
}
- 우리는
entryPoints
를src/index.ts
로 했기 때문에, 루트 위치에src
폴더와src/index.ts
를 추가해주자. - 현재 폴더 구조는 아래와 같다.
- 그리고 잘 작동되는지 확인을 위해
index.ts
에 예시코드를 추가했다.
/**
* 숫자를 더합니다.
*
* @alpha
* @param x - 첫 번째 입력 숫자
* @param y - 두 번째 입력 숫자
* @returns x와 y의 합
*
* @example
* ```typescript
* const result = addNumbers(1, 2);
* console.log(result); // 3
* ```
*/
export function addNumbers(x: number, y: number): number {
return x + y;
}
- 그 다음
yarn typedoc
명령어를 사용하면…
yarn typedoc
- docs폴더에 변환된 파일이 추가된다!
(3) docs 문서를 여는 2가지 방법
🎈 어 그런데 완성된 문서는 어떻게 확인할 수 있을까? 총 2가지 방법이 있다!
- 첫번째 방법은
index.html
을 열어서 확인하는 방법이다. - 앞서 생성된
docs/index.html
을 더블 클릭하면 문서 페이지를 볼 수 있다.
- 혹은
index.html
을 열어 확인하기 귀찮다면, 서버를 실행시켜 문서를 볼 수 있다. - 이를 위해
http-server
가 필요한데,http-server
는 JavaScript, HTML, CSS 등을 웹서버로 제공하는 도구이다. - 이 도구를 이용하면 로컬에서 작성한 HTML, CSS, JavaScript 파일을 브라우저에서 실행할 수 있다.
- 아래 명령어를 사용해
http-server
를 설치하자!
yarn add http-server
- 그 다음
package.json
에http-server -o ./docs/index.html
스크립트를 추가해주면 된다.
// package.json
{
"name": "tsdoc-template",
"version": "1.0.0",
...
"scripts": {
"docs": "http-server -o ./docs/index.html" // this!
},
// ...
}제
- 이제
yarn docs
를 하면 문서 페이지를 볼 수 있게 된다 🙂
🎈 이번 시간에는
typedoc
을 사용해 TypeScript 유틸 함수를 문서화하는 방법을 알아보았다!typedoc
은JSDoc
주석을 추출하여 API 문서로 생성하는 도구이며,typedoc.json
파일을 작성하여 설정할 수 있었다.
추가적으로 작성한 docs 주석이 어떻게 나타나는지 바로 보고 싶다면,
공식문서의 playground를 확인해보자
반응형
'개발 기술 > 개발 이야기' 카테고리의 다른 글
내 조직의 리뷰 할당 현황 구하기(1) - github API 사용법 (0) | 2023.06.19 |
---|---|
CSRF를 막는 방법(with. 쿠키) (0) | 2023.06.04 |
CSS 색상 변수에 투명도를 주는 방법(feat. js) (0) | 2023.04.09 |
[JS] 커스텀 이벤트를 만드는 2가지 방법(Event, CustomEvent) (0) | 2023.03.05 |
[JS] AbortController로 웹 요청 취소하기(비동기, dom 이벤트) (0) | 2023.02.26 |
댓글