TIP

주석을 μ–΄λ–»κ²Œ λ‹€λŠ”κ²Œ μ’‹μ„κΉŒ...

GREENλ‚˜λ¬΄ 2025. 5. 24. 07:26
728x90

πŸ’¬ ν˜‘μ—…κ³Ό 곡뢀λ₯Ό μœ„ν•œ "주석 잘 λ‹€λŠ” 법" κ°€μ΄λ“œ

μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ 주석은 λ‹¨μˆœν•œ λ©”λͺ¨ κ·Έ μ΄μƒμž…λ‹ˆλ‹€. ν˜‘μ—…μ—μ„œλŠ” μ˜μ‚¬μ†Œν†΅ 도ꡬ이고, 개인 κ³΅λΆ€μ—μ„œλŠ” λ‚˜μ€‘μ˜ λ‚˜λ₯Ό μœ„ν•œ μ„€λͺ…μ„œμž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” ν˜‘μ—…κ³Ό 개인 곡뢀 각각의 상황에 맞좘 주석 μž‘μ„±λ²•κ³Ό μ‹€μ œ μ˜ˆμ‹œλ₯Ό μ†Œκ°œν•˜κ² μŠ΅λ‹ˆλ‹€.


✍️ μ£Όμ„μ˜ κΈ°λ³Έ 원칙

βœ… 1. μ™œλ₯Ό μ„€λͺ…ν•˜λΌ

  • 무엇을 μ„€λͺ…ν•˜κΈ°λ³΄λ‹€λŠ” μ™œ κ·Έλ ‡κ²Œ ν–ˆλŠ”μ§€λ₯Ό μ€‘μ‹¬μœΌλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€.
  • 예) // μ„±λŠ₯을 μœ„ν•΄ 이쀑 루프 λŒ€μ‹  ν•΄μ‹œ λ§΅ μ‚¬μš©

βœ… 2. μ½”λ“œμ™€ λ©€μ–΄μ§€μ§€ μ•Šκ²Œ

  • 주석은 λ°”λ‘œ μœ„λ‚˜ μ˜†μ— μœ„μΉ˜ν•΄μ•Ό 이해가 μ‰½μŠ΅λ‹ˆλ‹€.
  • μ˜ˆμ™Έμ μœΌλ‘œ 블둝 주석은 ν•¨μˆ˜/클래슀 상단에 μœ„μΉ˜ν•©λ‹ˆλ‹€.

βœ… 3. κ³Όν•˜μ§€λ„, λΆ€μ‘±ν•˜μ§€λ„ μ•Šκ²Œ

  • λ‹Ήμ—°ν•œ λ‚΄μš©μ„ λ°˜λ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • ν•„μš” μ΄μƒμ˜ μ„€λͺ…은 였히렀 가독성을 ν•΄μΉ©λ‹ˆλ‹€.

🀝 ν˜‘μ—…μ„ μœ„ν•œ 주석 μž‘μ„±λ²•

ν˜‘μ—…μ—μ„œλŠ” "λ‹€λ₯Έ 개발자"λ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·Έ μ‚¬λžŒμ΄ λ‚΄ μ½”λ“œμ˜ λ§₯락을 이해할 수 μžˆλ„λ‘ μ˜λ„, μ£Όμ˜μ‚¬ν•­, μ˜ˆμ™Έ 처리 이유λ₯Ό λͺ…ν™•νžˆ 기둝해야 ν•©λ‹ˆλ‹€.

πŸ“Œ ν˜‘μ—… μ‹œ μœ μš©ν•œ 주석 νŒ¨ν„΄

1. μ˜λ„ μ„€λͺ…

// μƒˆλ‘œκ³ μΉ¨ μ‹œ 둜그인 μœ μ§€ μœ„ν•΄ 토큰을 localStorageμ—μ„œ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€
const token = localStorage.getItem('token');

2. μ˜ˆμ™Έ 처리 이유

// μ‚¬μš©μžκ°€ νŒŒμΌμ„ μ„ νƒν•˜μ§€ μ•Šκ³  μ’…λ£Œν•  μˆ˜λ„ μžˆμœΌλ―€λ‘œ null 체크
if (selectedFile == null) {
    return;
}

3. TODO / FIXME 주석 ν™œμš©

// TODO: API 응닡 μ˜ˆμ™Έμ²˜λ¦¬ 둜직 μΆ”κ°€ μ˜ˆμ •
// FIXME: νŽ˜μ΄μ§€λ„€μ΄μ…˜μ΄ λˆ„λ½λ¨ – μΆ”ν›„ κ΅¬ν˜„ ν•„μš”

4. λ³€κ²½ νžˆμŠ€ν† λ¦¬ (κ°„λ‹¨νžˆ)

/*
[2025-05-24 λ‹΄λ‹Ήμžμ΄λ¦„]
λ¦¬μŠ€νŠΈμ—μ„œ 쀑볡 제거 둜직 λ³€κ²½ – μ„±λŠ₯ κ°œμ„  λͺ©μ 
*/

 

🧠 개인 κ³΅λΆ€μš© 주석 μž‘μ„±λ²•

개인 ν•™μŠ΅μ—μ„œλŠ” λ‚΄κ°€ μ΄ν•΄ν•œ κ°œλ…, μ½”λ“œ 흐름, μ™Έμš΄ 문법을 μ£Όμ„μœΌλ‘œ μ •λ¦¬ν•˜λ©΄ λ³΅μŠ΅ν•  λ•Œ 큰 도움이 λ©λ‹ˆλ‹€.

πŸ“Œ 개인 곡뢀에 μœ μš©ν•œ 주석 νŒ¨ν„΄

1. μš©μ–΄/κ°œλ… 정리

# ν΄λ‘œμ €(closure): λ‚΄λΆ€ ν•¨μˆ˜κ°€ μ™ΈλΆ€ ν•¨μˆ˜μ˜ μ§€μ—­ λ³€μˆ˜μ— μ ‘κ·Όν•  수 μžˆλŠ” ꡬ쑰

2. 흐름 μ„€λͺ…

// Step 1. μ‚¬μš©μž μž…λ ₯ 검증
// Step 2. μ„œλ²„μ— μš”μ²­ 전솑
// Step 3. 응닡 κ²°κ³Ό 처리

3. 문법/νŒ¨ν„΄ μ•”κΈ°

// initStateλŠ” μœ„μ ―μ΄ 처음 생성될 λ•Œ ν•œ 번만 호좜됨
@override
void initState() {
  super.initState();
}

4. μ‹€ν—˜μš© μ½”λ“œ ν‘œμ‹œ

// μ‹€ν—˜: λ°°μ—΄ 볡사λ₯Ό ν¬μΈν„°λ‘œ μ²˜λ¦¬ν•΄λ³΄κΈ°

 

πŸ’‘ 팁

팁 μ„€λͺ…
πŸ”„ 주기적으둜 κ°±μ‹  μ½”λ“œκ°€ λ°”λ€Œλ©΄ 주석도 ν•¨κ»˜ μ—…λ°μ΄νŠΈν•΄μ•Ό 함
🎯 μΌκ΄€λœ μŠ€νƒ€μΌ μœ μ§€ νŒ€ μ»¨λ²€μ…˜μ— 따라 주석 μŠ€νƒ€μΌ 톡일 (//, /* */, ///, #)
🧹 λΆˆν•„μš”ν•œ 주석 제거 의미 μ—†λŠ” 주석은 μ‚­μ œν•΄μ„œ μ½”λ“œ μ²­κ²° μœ μ§€

πŸ§ͺ 주석 μ•ˆ 써도 λ˜λŠ” κ²½μš°λŠ”?

  • λ„ˆλ¬΄ λ‹¨μˆœν•œ μ½”λ“œ (예: int i = 0;)
  • λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬μ—μ„œ 자주 μ“°λŠ” μ „ν˜•μ μΈ μ½”λ“œ (React useState, Flutter build)
  • ν…ŒμŠ€νŠΈμš© μž„μ‹œ μ½”λ“œ (단, ν˜‘μ—… 쀑이라면 λͺ…μ‹œμ μœΌλ‘œ // ν…ŒμŠ€νŠΈμš©μ΄λΌκ³  써야 함)

 

πŸ’¬ μ–Έμ–΄ 및 ν™˜κ²½λ³„ 주석 기호 μ •λ¦¬ν‘œ

μ–Έμ–΄ / ν™˜κ²½ ν•œ 쀄 주석 μ—¬λŸ¬ 쀄 주석 기타 주석 (λ¬Έμ„œν™” λ“±)
C / C++ // /* ... */ ///, /** ... */ (Doxygen)
Java // /* ... */ /** ... */ (JavaDoc)
Python # μ—†μŒ ('''λŠ” λ¬Έμžμ—΄ 처리) """Docstring""" (ν•¨μˆ˜/클래슀 λ¬Έμ„œν™”)
JavaScript // /* ... */ /** ... */ (JSDoc)
TypeScript // /* ... */ /** ... */ (TSDoc)
Dart // /* ... */ ///, /** ... */ (DartDoc)
Swift // /* ... */ ///, /** ... */ (SwiftDoc)
Kotlin // /* ... */ /** ... */ (KDoc)
Go // /* ... */ (κ°€λŠ₯ν•˜λ‚˜ ꢌμž₯ X) // + λ°”λ‘œ μ•„λž˜μ— ν•¨μˆ˜ μœ„μΉ˜ (GoDoc)
Rust // /* ... */ ///, //!, /** ... */, /*! ... */
SQL -- /* ... */ μ—†μŒ
HTML μ—†μŒ <!-- ... --> μ—†μŒ
CSS μ—†μŒ /* ... */ μ—†μŒ
Shell (bash, zsh) # μ—†μŒ μ—†μŒ
Windows CMD REM λ˜λŠ” :: μ—†μŒ μ—†μŒ
PowerShell # <# ... #> μ—†μŒ

 

ν™˜κ²½ νŠΉμ§•
Shell # 이후 λ‚΄μš©μ€ λͺ¨λ‘ 주석 μ²˜λ¦¬λ©λ‹ˆλ‹€. 슀크립트 파일 .shμ—μ„œλ„ λ™μΌν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.
CMD (Windows λͺ…λ Ή ν”„λ‘¬ν”„νŠΈ) REM λ˜λŠ” ::λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. ::λŠ” 쑰건문 μ•ˆμ—μ„œλŠ” 였λ₯˜ λ°œμƒ κ°€λŠ₯성이 μžˆμ–΄ REM을 ꢌμž₯ν•©λ‹ˆλ‹€.
PowerShell #λŠ” ν•œ 쀄 주석, <# ... #>λŠ” μ—¬λŸ¬ 쀄 주석에 μ‚¬μš©λ©λ‹ˆλ‹€.