React Doxygen! πŸ‘

고은정·2021λ…„ 6μ›” 5일
2

κ°œλ°œν¬μŠ€νŒ…

λͺ©λ‘ 보기
8/20
post-thumbnail

Doxygen?

Doxygen은 μš°λ¦¬μ€ ν”νžˆ '독주석'이라고 λ§ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.같은말인지 λͺ°λž,,🀯

주석은 μ½”λ“œλ₯Ό μ΄ν•΄ν•˜λŠ”λ° 도움을 μ£Όκ³ , μ˜€μž‘λ™μ„ λ°©μ§€ν•˜μ—¬ μˆ˜μ •μ„ μ‰½κ²Œ ν•˜λ„λ‘ ν•˜λŠ” μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ½”λ”© μŠ€νƒ€μΌ 뿐만 μ•„λ‹ˆλΌ 주석 μ—­μ‹œ κ·œκ²©ν™”λœ μž‘μ„±λ°©λ²•μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

JSDoc μž‘μ„±λ²•

Doxygen을 μž‘μ„±ν•˜λŠ” λ§Žμ€ 라이브러리 μ€‘μ—μ„œ JSDoc을 μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€. JSDoc을 μ΄μš©ν•΄μ„œ λ¬Έμ„œ 주석을 μ½”λ“œμ™€ ν•¨κ»˜ μ†ŒμŠ€μ½”λ“œμ— μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆ, λ„€μž„μŠ€νŽ˜μ΄μŠ€, 클래슀, λ©”μ„œλ“œ, νŒŒλΌλ―Έν„° λ“±κ³Ό 같은 ν•­λͺ©μ„ λ¬Έμ„œν™”ν•΄μ„œ HTML둜 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

GitHubλ₯Ό λ³΄λ‹ˆ starκ°€ μ–΄λ§ˆμ–΄λ§ˆν•©λ‹ˆλ‹€.

1. /** */ 둜 감싸기

Doxygen을 μž‘μ„±ν•˜λ©΄μ„œ κ°€μž₯ μ€‘μš”ν•œ κ²ƒμž…λ‹ˆλ‹€. /*, /*** 으둜 μ‹œμž‘λ˜λŠ” μ„€λͺ…은 JSDocνŒŒμ„œκ°€ μΈμ‹ν•˜μ§€ λͺ»ν•˜κ³  λ¬΄μ‹œλ©λ‹ˆλ‹€.

2. @ μ‚¬μš©ν•˜κΈ°

@λ₯Ό κ΅¬λΆ„μžλ‘œ μ‚¬μš©ν•΄μ„œ 주석을 μž‘μ„±ν•©λ‹ˆλ‹€. 많이 μ‚¬μš©λ˜λŠ” 주석듀은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. 더 λ§Žμ€ μ‚¬μš©λ²•μ€ κ³΅μ‹λ¬Έμ„œμ˜ 'Block Tags'λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

  • λ¬Έμ„œ 주석
μ‚¬μš©λ‚΄μš©λ¬Έλ²•
@authorμž‘μ„±μžλ₯Ό μ‹λ³„ν•œλ‹€. 이메일을 μž‘μ„±ν•  경우 이름 뒀에 κΊ½μ‡  κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•œλ‹€.@author μž‘μ„±μžμ΄λ¦„ [< 이메일 >]
@version버전 λ‚΄μš©μ„ μž‘μ„±ν•œλ‹€.@version 버전정보
@copyright파일 κ°œμš” 및 μ„€λͺ…에 λŒ€ν•œ μ €μž‘κΆŒμ„ μ„€λͺ…ν•œλ‹€.@copyright μ„€λͺ…λ‚΄μš©
@fileνŒŒμΌμ— λŒ€ν•œ 정보λ₯Ό μž‘μ„±ν•œλ‹€.@file μ„€λͺ…λ‚΄μš©
@licenceμ†Œν”„νŠΈμ›¨μ–΄ λΌμ΄μ„ΌμŠ€λ₯Ό μž‘μ„±ν•œλ‹€.@licence μ‹λ³„μž
  • ν•¨μˆ˜ 주석
μ‚¬μš©λ‚΄μš©λ¬Έλ²•
@thisν•΄λ‹Ή ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ thisκ°€ μ°Έμ‘°ν•˜λŠ” 것을 ν‘œμ‹œν•œλ‹€.@this μ°Έμ‘°κ°’
@constant (@const)μƒμˆ˜λ₯Ό ν‘œμ‹œν•œλ‹€.@constant [< νƒ€μž… > < 이름 >]
@throws (@exception)λ°œμƒν•˜λŠ” 였λ₯˜λ‚˜ μ˜ˆμ™Έμ‚¬ν•­μ„ μž‘μ„±ν•œλ‹€.@throws μ˜ˆμ™Έ
@param (@arg, @argument)νŒŒλΌλ―Έν„°λ₯Ό μž‘μ„±ν•œλ‹€.@param νŒŒλΌλ―Έν„°
@requiresν•„μš”ν•œ λͺ¨λ“ˆμ„ μž‘μ„±ν•œλ‹€.@requires λͺ¨λ“ˆ
@callback콜백으둜 받은 인자 및 λ°˜ν™˜κ°’μ— λŒ€ν•΄ μ„€λͺ…ν•œλ‹€.@callback μ„€λͺ…
@return (@returns)λ¦¬ν„΄λ˜λŠ” 값을 ν‘œμ‹œν•œλ‹€.@return 리턴값
@eventνŠΉμ • 이벀트λ₯Ό μ •μ˜ν•œλ‹€.@event μ΄λ²€νŠΈμ΄λ¦„

JSDoc μ‹œμž‘ν•˜κΈ°

1. λͺ¨λ“ˆ μ„€μΉ˜

ν„°λ―Έλ„μ—μ„œ λͺ¨λ“ˆμ„ μ„€μΉ˜ν•΄μ€λ‹ˆλ‹€.

npm install --save-dev jsdoc

μ„€μΉ˜κ°€ μ™„λ£Œλ˜λ©΄ package.jsonμ—μ„œ μΆ”κ°€λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

2. Doxygen μž‘μ„±ν•˜κΈ°

μœ„μ—μ„œ μ •λ¦¬ν•œ κ·œμΉ™μ— 맞게 Doxygen을 μž‘μ„±ν•˜κ² μŠ΅λ‹ˆλ‹€. 예제둜 μž‘μ„±ν•œ doxygen은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

/**
 * Todoλ₯Ό λ°˜ν™˜ν•˜λŠ” λ©”μ†Œλ“œ
 * @param {object} children symbol()
 * @returns {object} TodoTemplate 객체
 */
const TodoTemplate = ({ children }) => {
    return (
        <div className="TodoTemplate">
            <div className="app-title">일정 관리</div>
            <div className="content">{children}</div>
        </div>
    )
}

μœ„ Doxygen이 μž‘μ„±λœ νŒŒμΌμ€ ./src/components/TodoTemplate.jsμž…λ‹ˆλ‹€.

3. 파일 지정

ν„°λ―Έλ„μ—μ„œ μ•„λž˜μ™€ 같이 νŒŒμΌμ„ μ§€μ •ν•΄μ€λ‹ˆλ‹€.

./node_modules/.bin/jsdoc 'λ‚˜μ˜ JavaScriptFile.js'

'λ‚˜μ˜ JavaScriptFile.js'이 μœ„μ—μ„œ doxygen이 μž‘μ„±ν•œ 파일(./src/components/TodoTemplate.js)μž…λ‹ˆλ‹€.

μœ„μ˜ λͺ…λ Ήμ–΄κ°€ μ‹€ν–‰λ˜λ©΄ out 폴더가 생긴것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 폴더가 JSDoc이 λ§Œλ“œλŠ” Documentationμž…λ‹ˆλ‹€.

4. λ¬Έμ„œν™”

outν΄λ”μ˜ index.html을 μ—΄μ–΄μ„œ μž‘μ„±λœ λ¬Έμ„œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


정리

μƒκ°ν–ˆλ˜ 과정보닀 λ„ˆλ¬΄ κ°„λ‹¨ν•΄μ„œ λ†€λž€ μ‚¬μš©κΈ°μ˜€μŠ΅λ‹ˆλ‹€. 항상 λ¬Έμ„œλ₯Ό μž‘μ„±ν•  λ•Œ 어렀움도 많이 λŠκΌˆλŠ”λ°, λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ‹ˆ 더 κΉ”λ”ν•˜κ³  νŽΈλ¦¬ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.
λ¬Όλ‘  이 ν¬μŠ€νŒ…μ—μ„œ 닀룬 λ‚΄μš©μ€ 'JsDoc을 μ‹œμž‘ν•˜λŠ” κ°„λ‹¨ν•œ 예제'μž…λ‹ˆλ‹€. 더 λ°œμ „μ‹œμΌœμ„œ ν…œν”Œλ¦Ώμ„ μ μš©μ‹œν‚€κ±°λ‚˜ μžλ™ν™”ν•˜λŠ” 방법도 κ΅¬ν˜„ν•˜κ³  κΈ°λ‘ν•˜κ² μŠ΅λ‹ˆλ‹€.πŸ€—


μΆ”κ°€

ν…œν”Œλ¦Ώ 적용 κΈ€ : https://velog.io/@eunjeong/React-JSDoc-template

profile
개발이 ν•˜κ³ μ‹Άμ–΄μš”

0개의 λŒ“κΈ€