๊ด€๋ฆฌ ๋ฉ”๋‰ด

HSS

jsdoc ์‚ฌ์šฉ ์•ˆ๋‚ด์„œ(JSDoc ๊ฐœ๋…, ์‚ฌ์šฉ ๋ชฉ์ , ์‚ฌ์šฉํ•˜๊ธฐ, ํƒœ๊ทธ, ๋ฌธ๋ฒ•, ์ต์Šคํ…์…˜) ๋ณธ๋ฌธ

JavaScript

jsdoc ์‚ฌ์šฉ ์•ˆ๋‚ด์„œ(JSDoc ๊ฐœ๋…, ์‚ฌ์šฉ ๋ชฉ์ , ์‚ฌ์šฉํ•˜๊ธฐ, ํƒœ๊ทธ, ๋ฌธ๋ฒ•, ์ต์Šคํ…์…˜)

EnSillee 2022. 12. 22. 16:28

๐Ÿง 1. jsdoc์ด๋ž€?

JavaScript์šฉ API ๋ฌธ์„œ ์ƒ์„ฑ๊ธฐ์ž…๋‹ˆ๋‹ค.

JSDoc ๋„๊ตฌ๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์Šค์บ”ํ•˜๊ณ  HTML ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, JSDoc์€ Javascript ๋ฌธ์„œํ™” ๋„๊ตฌ๋กœ์จ ์†Œ์Šค ํŒŒ์ผ์— ์ž‘์„ฑ๋œ ์ฃผ์„์„ ํŒŒ์‹ฑํ•˜์—ฌ ๋ชจ๋“ˆ, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ฉ”์„œ๋“œ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋“ฑ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ˜ค 2. jsdoc์˜ ์‚ฌ์šฉ ๋ชฉ์ 

  • JavaScript ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ API๋ฅผ ๋ฌธ์„œํ™”
  • ๋ชจ๋“ˆ, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ฉ”์„œ๋“œ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋“ฑ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋ฌธ์„œํ™”
  • ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํžŒํŠธ๋ฅผ ์ปค์Šคํ…€์œผ๋กœ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  • ์ฝ”๋“œ ์œ ์ง€ ๋ณด์ˆ˜์— ์šฉ์ด

 

โœ๏ธ 3. jsdoc ์‚ฌ์šฉํ•˜๊ธฐ

  • JSDoc ์ฃผ์„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์„œํ™”๋˜๋Š” ์ฝ”๋“œ ๋ฐ”๋กœ ์•ž์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • / + ** + enterํ‚ค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • JSDoc ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿงฉ 4. jsdoc ํƒœ๊ทธ

1) ๋ธ”๋กํƒœ๊ทธ

  • ํ•ญ์ƒ ๊ธฐํ˜ธ(@)๋กœ ์‹œ์ž‘
  • ๊ฐ ๋ธ”๋ก ํƒœ๊ทธ ๋’ค์—๋Š” ์ค„ ๋ฐ”๊ฟˆ์ด ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋งˆ์ง€๋ง‰ ๋ธ”๋ก ํƒœ๊ทธ ์ œ์™ธ)
  • ํ•จ์ˆ˜๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • JSDoc ์ฃผ์„์˜ ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๋ถ€๋ถ„์˜ JSDoc ํƒœ๊ทธ
  • ex) @param

 

2) ์ธ๋ผ์ธํƒœ๊ทธ

  • ์ผ๋ฐ˜์ ์œผ๋กœ HTML ์˜ ์•ต์ปค ํƒœ๊ทธ <a> ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์„ค๋ช…์„œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • ๊ธฐํ˜ธ(@)๋กœ ์‹œ์ž‘ํ•˜๋‚˜, ์ค‘๊ด„ํ˜ธ {}๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • { : ์ธ๋ผ์ธ ํƒœ๊ทธ์˜ ์‹œ์ž‘ } : ์ธ๋ผ์ธ ํƒœ๊ทธ์˜ ๋
  • ์ธ๋ผ์ธ ํƒœ๊ทธ ๋‹ค์Œ์— ์ค„ ๋ฐ”๊ฟˆ์„ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ธ”๋ก ํƒœ๊ทธ ๋˜๋Š” ์„ค๋ช…์˜ ํ…์ŠคํŠธ ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ex) {@link}

 

๐Ÿ’ก 5. jsdoc syntax๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

1) ๋‘ ์ˆ˜์˜ ์ฐจ๋ฅผ ๊ตฌํ•˜๋Š” subtract ํ•จ์ˆ˜์— JSDoc ์ ์šฉํ•˜๊ธฐ

/**
 * ๋‘ ์ˆ˜์˜ ์ฐจ๋ฅผ ๊ตฌํ•œ๋‹ค.
 * @param {number} a - the first thing
 * @param {number} b - the second thing
 * @returns {number}
 */
 const subtract = (a, b) => a - b;

 

2) ์ˆซ์ž๋ฅผ ์ธ์ˆ˜(argument)๋กœ ๋ฐ›์•„์„œ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜์—์„œ JSDoc์œผ๋กœ ์ธ์ž(parameter)์˜ ์œ ํ˜•์„ ํ™•์ธํ•˜๊ณ , ํ•ด๋‹น ์œ ํ˜•์ด ์•„๋‹ ์‹œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ

/**
 * Returns a string representation of the given number.
 * @param {number} num - The number to convert to a string.
 * @returns {string} The string representation of the number.
 * @throws {TypeError} If the argument is not a number.
 */
 const numToString = (num) => {
    if (typeof num !== 'number') {
      throw new TypeError('Expected a number');
    }
    return num.toString();
  }

 

๐Ÿ”Œ 6. ์œ ์šฉํ•œ ์ต์Šคํ…์…˜ ์†Œ๊ฐœ

1) JSDoc Generator

๋‹ค์šด๋กœ๋“œ

 

์‚ฌ์šฉ๋ฒ•

-> cmd + shift + p ๋‹ค์Œ์— Generate JSDoc ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

 
 

-> ์•„๋ž˜์™€ ๊ฐ™์ด param์ด๋‚˜ return ๋“ฑ์„ ์ž๋™์œผ๋กœ ์„ธํŒ…ํ•ฉ๋‹ˆ๋‹ค.

 

2) jsdoc ํ•˜์ด๋ผ์ดํŠธ

๋‹ค์šด๋กœ๋“œ

- `something`์™€ **something**๋ฅผ ํ™œ์šฉํ•ด์„œ ์ฃผ์„์— ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ˜ธ๋ฒ„ ์‹œ ๊ฐ•์กฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

(JSDoc ๊ฐœ๋…, ์‚ฌ์šฉ ๋ชฉ์ , ์‚ฌ์šฉํ•˜๊ธฐ, ํƒœ๊ทธ, ๋ฌธ๋ฒ•, ์ต์Šคํ…์…˜)

728x90
Comments