JSDoc은 JavaScript API 문서화 도구입니다. 이 도구는 개발자가 코드 가독성을 높이고, 협업 시 다른 개발자가 코드 의도를 쉽게 이해하는 데 도움이 되는 문서화 기능을 제공하죠. 10여 년 전, RESTful API 문서화 도구인 Swagger가 등장하면서 백엔드 진영에서는 JSDoc의 활용도가 낮아졌습니다.

JSDoc은 JavaScript 코드의 문서화에 중점을 두는데요. 그렇다 보니 API 문서화에 특화된 기능이 부족합니다. 예를 들어, JSDoc을 사용하면 주석을 수동으로 추가해야 하는데요. 이는 API 스펙을 자동으로 생성하는 Swagger와 비교하면 아쉽죠. 이러한 이유로 백엔드 API 개발에서 Swagger가 선호되기도 합니다.
그래도 프론트엔드 진영 에서 유용하게 쓸만한 JSDoc 기능은 여전히 많습니다. 지금도 저는 JSDoc을 실무에 활용하며 도움을 받고 있는데요. 이 글에서는 프론트엔드 진영에서 사용하기에 좋은 JSDoc 기능과 효과적인 활용 방법을 알아보겠습니다.
JSDoc 문법 살펴보기
JSDoc 기능을 설명하기에 앞서 이 도구의 문법부터 간단히 짚고 가겠습니다. JSDoc의 문법을 알아야 이 도구의 유용성을 잘 이해할 수 있기 때문입니다.
@태그 {타입} 변수명 - 설명
먼저 JSDoc에서는 위와 같이 @태그
를 사용해 주석 영역을 구분합니다. 여기서 @태그
는 블록 태그와 인라인 태그로 나뉘는데요. @link
와 @tutorial
태그를 제외한 모든 태그는 블록 태그입니다. 블록 태그는 주석을 의미 있는 단위로 분리하며 영역을 차지하고요. 인라인 태그는 블록 태그 영역 안에서 텍스트와 같은 방식으로 배치되며 영역을 차지하지 않습니다.
아울러 JSDoc에서는 @태그
다음에
타입
을{}
안에 입력합니다.- 이어
변수명
과설명
을 순서대로 작성합니다.(태그별로, 상황별로 생략될 수 있습니다)
이제 JSDoc의 문법을 기억하며 프론트엔드에서 사용하기 좋은 이 도구의 기능을 자세히 살펴보겠습니다.
프론트엔드서 매력적인 JSDoc 기능
타입 힌트
JSDoc을 사용하면 주석을 토대로 인자의 타입 힌트를 쉽게 받을 수 있습니다. 그 방법을 살펴보겠습니다.

TypeScript가 아닌 환경에서는 타입 정보를 명시적으로 확인할 수 없는데요. 위 예시처럼 첫 번째 인자(arg1
)로 숫자(number
)를 받고 두 번째 인자(arg2
)로 문자열(string
)을 받는 함수가 있다고 가정합시다. 현재 IDE에서는 타입을 유추할 수 없고, 매개변수명이나 함수명만 보고 ‘어떤 인자를 받아야 할지’ 알기 어려운데요(combineArgs(arg1: any, arg2: any): string
).

이때 JSDoc으로 주석을 달아 타입을 명시하면 타입 정보를 명확히 파악하는 데 도움이 됩니다. 대부분의 IDE에서는 /**
를 입력하고 Enter를 누르면 JSDoc 주석이 자동으로 작성되는데요. 위 예시와 같이 @param
태그를 넣고 앞서 설명한 JSDoc 문법대로 주석을 작성합니다(@param {number} arg1 숫자를 넣어주세요
, @param {string} arg2 문자열을 넣어주세요
).
이어서 함수를 호출할 때 IDE에서 타입 힌트를 요청하니 앞서 작성한 주석을 토대로 각 인자의 타입 정보와 설명(combineArgs(arg1: number, arg2: string): string 숫자를 넣어주세요
)이 제공되는데요. JSDoc을 사용하면 이러한 방식으로 인자의 타입 힌트를 받을 수 있고요. 이는 오류를 막는 데 도움이 됩니다.