🎯 Visual Studio Code(VS Code) μŠ€λ‹ˆνŽ« μž‘μ„± κ°€μ΄λ“œ

슘·2024λ…„ 12μ›” 10일
0

🎯 개발 κ°€μ΄λ“œ

λͺ©λ‘ 보기
2/3

VS Code의 μŠ€λ‹ˆνŽ«(Snippet) κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ 반볡적인 μ½”λ“œ μž‘μ„± μ‹œκ°„μ„ μ ˆμ•½ν•˜κ³ , μ½”λ“œμ˜ 일관성을 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” μŠ€λ‹ˆνŽ« μž‘μ„± 방법과 ν™œμš©λ²•μ— λŒ€ν•œ μ •λ¦¬μž…λ‹ˆλ‹€.


1. μŠ€λ‹ˆνŽ«μ΄λž€?

  • μŠ€λ‹ˆνŽ«μ€ μ½”λ“œ 쑰각을 μžλ™μœΌλ‘œ μž…λ ₯ν•  수 μžˆλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.
  • ν‚€μ›Œλ“œ μž…λ ₯ ν›„ νƒ­(Tab)을 λˆ„λ₯΄λ©΄ ν•΄λ‹Ή ν‚€μ›Œλ“œμ— μ—°κ²°λœ μ½”λ“œ 쑰각이 μžλ™μœΌλ‘œ μ™„μ„±λ©λ‹ˆλ‹€.

2. μŠ€λ‹ˆνŽ« 생성 μœ„μΉ˜

  1. μ „μ—­(Global) μŠ€λ‹ˆνŽ«: λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš© κ°€λŠ₯.
    • File > Preferences > User Snippetsμ—μ„œ 생성.
  2. μ›Œν¬μŠ€νŽ˜μ΄μŠ€(Workspace) μŠ€λ‹ˆνŽ«: νŠΉμ • ν”„λ‘œμ νŠΈμ—μ„œλ§Œ μ‚¬μš©.
    • ν”„λ‘œμ νŠΈ 루트의 .vscode/ 폴더에 μ €μž₯된 μŠ€λ‹ˆνŽ« 파일.

3. μŠ€λ‹ˆνŽ« μž‘μ„± 방법

3.1 기본 ꡬ쑰

μŠ€λ‹ˆνŽ«μ€ JSON ν˜•μ‹μœΌλ‘œ μž‘μ„±λ©λ‹ˆλ‹€.

{
  "μŠ€λ‹ˆνŽ« 이름": {
    "prefix": "trigger",          // ν‚€μ›Œλ“œ
    "body": [                    // μ½”λ“œ λ‚΄μš©
      "μ½”λ“œ 라인 1",
      "μ½”λ“œ 라인 2"
    ],
    "description": "μ„€λͺ…"         // (선택) μŠ€λ‹ˆνŽ« μ„€λͺ…
  }
}

3.2 예제: μ½˜μ†” 둜그 μŠ€λ‹ˆνŽ«

console.logλ₯Ό λΉ λ₯΄κ²Œ μž…λ ₯ν•˜λŠ” μŠ€λ‹ˆνŽ«:

{
  "Console Log": {
    "prefix": "clg",
    "body": ["console.log('$1');"],
    "description": "Insert a console.log statement"
  }
}
  • Trigger: clg μž…λ ₯ ν›„ Tab ν‚€.
  • μ™„μ„± κ²°κ³Ό:
console.log('');

3.3 동적 κ°’ 및 μ»€μ„œ μœ„μΉ˜

λ³€μˆ˜ μ‚¬μš© ($)

  • $1, $2 λ“±μœΌλ‘œ μ»€μ„œμ˜ μœ„μΉ˜λ₯Ό μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ${N:default} ν˜•νƒœλ‘œ 기본값을 μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
{
  "Function Template": {
    "prefix": "func",
    "body": [
      "function ${1:functionName}(${2:args}) {",
      "  $0",
      "}"
    ],
    "description": "Insert a function template"
  }
}
  • Trigger: func μž…λ ₯ ν›„ Tab.
  • μ™„μ„± κ²°κ³Ό
function functionName(args) {
  
}

3.4 반볡 ν…μŠ€νŠΈ (${N|option1,option2,...|})

반볡 ν…μŠ€νŠΈ 선택 κ°€λŠ₯:

{
  "For Loop": {
    "prefix": "forloop",
    "body": [
      "for (let ${1:i} = 0; ${1} < ${2:10}; ${1}++) {",
      "  console.log(${1});",
      "}"
    ],
    "description": "Insert a for loop"
  }
}

Trigger: forloop μž…λ ₯ ν›„ Tab.
μ™„μ„± κ²°κ³Ό

for (let i = 0; i < 10; i++) {
  console.log(i);
}

4. μŠ€λ‹ˆνŽ« 관리 방법

4.1 μŠ€λ‹ˆνŽ« 파일 생성

단좕킀: Ctrl+Shift+P β†’ Preferences: Configure User Snippets 선택.
μ‚¬μš©ν•  μ–Έμ–΄ λ˜λŠ” New Global Snippets File 선택.
μƒμ„±λœ JSON νŒŒμΌμ— μŠ€λ‹ˆνŽ« μΆ”κ°€.

4.2 μŠ€λ‹ˆνŽ« 파일 μœ„μΉ˜

  • μ „μ—­ μŠ€λ‹ˆνŽ« 파일:
    - OS별 μœ„μΉ˜:
    		>Windows: %APPDATA%\Code\User\snippets
    		>macOS: ~/Library/Application Support/Code/User/snippets
    		Linux: ~/.config/Code/User/snippets
  • μ›Œν¬μŠ€νŽ˜μ΄μŠ€ μŠ€λ‹ˆνŽ« 파일: .vscode/ 폴더에 μ €μž₯.

5. μœ μš©ν•œ μŠ€λ‹ˆνŽ« 예제

React μ»΄ν¬λ„ŒνŠΈ

{
  "React Functional Component": {
    "prefix": "rfc",
    "body": [
      "import React from 'react';",
      "",
      "const ${1:ComponentName} = (${2:props}) => {",
      "  return (",
      "    <div>",
      "      ${3:/* content */}",
      "    </div>",
      "  );",
      "};",
      "",
      "export default ${1:ComponentName};"
    ],
    "description": "Create a React functional component"
  }
}

HTML 기본 ꡬ쑰

{
  "HTML Boilerplate": {
    "prefix": "html5",
    "body": [
      "<!DOCTYPE html>",
      "<html lang=\"${1:en}\">",
      "<head>",
      "  <meta charset=\"UTF-8\">",
      "  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
      "  <title>${2:Document}</title>",
      "</head>",
      "<body>",
      "  $0",
      "</body>",
      "</html>"
    ],
    "description": "Basic HTML5 boilerplate"
  }
}

6. μŠ€λ‹ˆνŽ« ν™œμš© 팁

  1. ν”„λ‘œμ νŠΈλ³„ μŠ€λ‹ˆνŽ«: νŒ€ ν”„λ‘œμ νŠΈμ— ν•„μš”ν•œ μŠ€λ‹ˆνŽ«μ„ κ³΅μœ ν•˜λ €λ©΄ .vscode/snippets.json에 μ €μž₯.
  2. μ½”λ“œ 일관성: λ™μΌν•œ μ½”λ“œ μŠ€νƒ€μΌμ„ μœ μ§€ν•˜λŠ” 데 유용.
  3. 생산성 ν–₯상: 반볡 μž‘μ—…μ„ μžλ™ν™”ν•΄ 개발 μ‹œκ°„μ„ μ ˆμ•½.
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ μ„±μž₯κΈ° 기둝기둝

0개의 λŒ“κΈ€