Skip to main content

GitHub Copilot์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ํƒ์ƒ‰

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Copilot์„ ์‚ฌ์šฉํ•˜์—ฌ GitHub์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” GitHub์˜ Copilot ์ฑ„ํŒ…๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์šฉ๋„๋ฅผ ์ดํ•ดํ•˜๊ณ , ํŒŒ์ผ์„ ๊ฒ€์‚ฌํ•˜๊ณ , ํŠน์ • ์ฝ”๋“œ ์ค„์„ ์‚ดํŽด๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์˜จ๋ณด๋”ฉ, ์ฝ”๋“œ ๊ฒ€ํ† , ํ”„๋กœ์ ํŠธ ํƒ์ƒ‰์„ ๋” ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์กฐ๊ฑด

GitHub Copilot์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Copilot์ด๋ž€?์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ดํ•ด

ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ํ•ด๋‹น ํŒŒ์ผ์˜ ์šฉ๋„๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Copilot์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ถ”๊ฐ€ ์ •๋ณด ํŒŒ์ผ ์š”์•ฝ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์šฉ๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. GitHub ์›น์‚ฌ์ดํŠธ์—์„œ ์ฑ„ํŒ…ํ•  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ํŽ˜์ด์ง€ ์˜ค๋ฅธ์ชฝ ์œ„์—์„œ GitHub Copilot ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ฑ„ํŒ… ํŒจ๋„ ๋งจ ์œ„์— ์žˆ๋Š” ์ œ๋ชฉ์ด โ€œ์ฑ„ํŒ… ์ •๋ณดโ€๋กœ ํ‘œ์‹œ๋˜๊ณ  ํ˜„์žฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ด๋ฆ„์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์ด์ „์— ๋‹ค๋ฅธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด ์ฑ„ํŒ… ์ค‘์ด์–ด์„œ ์ž˜๋ชป๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ ์ฑ„ํŒ…ํ•  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    "๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ"๊ฐ€ ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ "Copilot" ์ฑ„ํŒ… ํŒจ๋„ ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฐ์ƒท.

  4. โ€œCopilot์— ์งˆ๋ฌธํ•˜๊ธฐโ€ ์ƒ์ž์˜ ์ฑ„ํŒ… ํŒจ๋„ ์•„๋ž˜์ชฝ์— โ€œ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์šฉ๋„ ์š”์•ฝโ€์„ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. Copilot์ด(๊ฐ€) ์ฑ„ํŒ… ํŒจ๋„์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

Copilot์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ด์˜ ์—ฌ๋Ÿฌ ํด๋” ๋ฐ ํŒŒ์ผ์˜ ์—ญํ• ์„ ์ดํ•ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Copilot์—๊ฒŒ ํŠน์ • ํŒŒ์ผ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์š”์•ฝํ•˜๊ฑฐ๋‚˜ ํŠน์ • ํด๋”์˜ ์šฉ๋„๋ฅผ ์„ค๋ช…ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ๋ฐ ์ฝ”๋“œ ํƒ์ƒ‰

ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ํŠน์ • ํŒŒ์ผ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Copilot์€ ํŒŒ์ผ์˜ ์ฝ˜ํ…์ธ  ์š”์•ฝ์„ ์ œ๊ณตํ•˜์—ฌ ํŒŒ์ผ์˜ ์šฉ๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Copilot์—๊ฒŒ ํŒŒ์ผ ๋‚ด์˜ ํŠน์ • ์ฝ”๋“œ ์ค„์„ ์„ค๋ช…ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. GitHub์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ์ „์ฒด ํŒŒ์ผ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ํ•˜๋ ค๋ฉด ํŒŒ์ผ ๋ณด๊ธฐ์˜ ์˜ค๋ฅธ์ชฝ ์œ„์— ์žˆ๋Š” Copilot ์•„์ด์ฝ˜()์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      ํŒŒ์ผ ๋ณด๊ธฐ ๋งจ ์œ„์— ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ Copilot ๋ฒ„ํŠผ ์Šคํฌ๋ฆฐ์ƒท

    • ํŒŒ์ผ ๋‚ด ํŠน์ • ์ค„์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      1. ์งˆ๋ฌธํ•  ์ฒซ ๋ฒˆ์งธ ์ค„์˜ ์ค„ ๋ฒˆํ˜ธ๋ฅผ ํด๋ฆญํ•˜๊ณ  Shift ํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ฑ„ ์„ ํƒํ•  ๋งˆ์ง€๋ง‰ ์ค„์˜ ์ค„ ๋ฒˆํ˜ธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
      2. ์„ ํƒํ•œ ์ค„์— ๋Œ€ํ•ด ์ง์ ‘ ์งˆ๋ฌธํ•˜๋ ค๋ฉด ์„ ํƒ ์˜์—ญ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” Copilot ์•„์ด์ฝ˜()์„ ํด๋ฆญํ•œ ๋‹ค์Œ, GitHub Copilot ์ฑ„ํŒ… ํŒจ๋„์— ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
      3. ๋ฏธ๋ฆฌ ์ •์˜๋œ ์งˆ๋ฌธ์„ ํ•˜๋ ค๋ฉด Copilot ์•„์ด์ฝ˜ ์˜†์— ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ, ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      ์„ ํƒํ•œ ์ฝ”๋“œ ์˜ค๋ฅธ์ชฝ์— ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ Copilot ๋ฒ„ํŠผ ์Šคํฌ๋ฆฐ์ƒท

  3. Copilot ์•„์ด์ฝ˜์„ ํด๋ฆญํ–ˆ๋‹ค๋ฉด ์ฑ„ํŒ… ํŒจ๋„ ์•„๋ž˜์ชฝ์˜ "Copilot์— ์งˆ๋ฌธํ•˜๊ธฐ" ์ƒ์ž์— ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ์ „์ฒด ํŒŒ์ผ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • Explain this file.
    • How could I improve this code?
    • How can I test this script?

    ํŠน์ • ์ค„์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • Explain the function at the selected lines.
    • How could I improve this class?
    • Add error handling to this code.
    • Write a unit test for this method.

    Copilot์ด(๊ฐ€) ํŒจ๋„์˜ ์š”์ฒญ์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

  4. ํ•„์š”์— ๋”ฐ๋ผ ์งˆ๋ฌธ์„ ์ œ์ถœํ•œ ํ›„ ํ…์ŠคํŠธ ์ƒ์ž์—์„œ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ ์‘๋‹ต์„ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ํ›„์† ์งˆ๋ฌธ์„ ํ•˜์—ฌ ๋Œ€ํ™”๋ฅผ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ž์„ธํžˆ ์•Œ๋ ค์ฃผ์„ธ์š”"๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Copilot์ด(๊ฐ€) ๋งˆ์ง€๋ง‰ ์„ค๋ช…์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ

๋‹ค์Œ ๋‹จ๊ณ„

์ด์ œ Copilot์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub์˜ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ํŒŒ์ผ ๋˜๋Š” ์ฝ”๋“œ ์ค„์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.