Skip to main content

GitHub Copilot๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ•™์Šต

GitHub Copilot ์ฑ„ํŒ…์€ ์ƒˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ํ™•์žฅํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œ๊ฐœ

GitHub Copilot์€ ์ด์ „ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜ ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ•™์Šตํ•˜๋Š” ๊ฒฝ์šฐ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ํ›„์ž์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์‹์ด ์ด๋ฏธ ์žˆ์ง€๋งŒ ์ƒˆ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” IDE์—์„œ Copilot Chat ๋ฐ Copilot ์ฝ”๋“œ ์™„์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. Asking GitHub Copilot questions in your IDE ๋ฐ Getting code suggestions in your IDE with GitHub Copilot์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ ์‚ฌํ•ญ์œผ๋กœ ์‹œ์ž‘

Copilot Chat์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์–ธ์–ด์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๊ฐ€ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์–ธ์–ด์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์•Œ์•„๋ณด์„ธ์š”. Copilot์— ์ƒˆ ์–ธ์–ด๋กœ ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์•Œ์•„์•ผ ํ•  ์ฃผ์š” ์‚ฌํ•ญ์„ ๋ฌผ์–ด๋ณด์„ธ์š”.

์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ: ์–ธ์–ด ๊ธฐ๋ณธ ์‚ฌํ•ญ

๋‹ค์Œ์€ Copilot Chat์—์„œ ์ƒˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ํ•™์Šตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ”„๋กฌํ”„ํŠธ์ž…๋‹ˆ๋‹ค.

  • What is NEW-LANGUAGE best suited for? I am an experienced Python programmer, but I don't know anything about NEW-LANGUAGE.

  • What are the main ways in which NEW-LANGUAGE differs from other languages? Explain the most essential things I need to know as an experienced programmer who wants to learn to code in NEW-LANGUAGE.

  • How can I install NEW-LANGUAGE?

  • How does error handling work in NEW-LANGUAGE?

  • How do you manage dependencies and packages in NEW-LANGUAGE?

  • What are the most essential libraries or frameworks I should know about for NEW-LANGUAGE?

  • What testing frameworks does the NEW-LANGUAGE community typically use?

  • What are the biggest mistakes newcomers to NEW-LANGUAGE typically make with this language?

  • As an experienced programmer learning NEW-LANGUAGE, what are the things I should focus on first?

Copilot์„ ๊ฐœ์ธ ํŠธ๋ ˆ์ด๋„ˆ๋กœ ์‚ฌ์šฉ

GitHub Copilot์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ, ํ•จ์ˆ˜ ๋˜๋Š” ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์˜ ์ฒญํฌ๋ฅผ ๋งŒ๋“ค๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ ์–ธ์–ด๋ฅผ ํ•™์Šตํ•˜๋ ค๋Š” ๊ฒฝ์šฐ, ํŠนํžˆ ์ œ์•ˆ๋œ ์ฝ”๋“œ๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š์€ ์ฑ„ ๊ทธ๋Œ€๋กœ ์ˆ˜๋ฝํ•œ๋‹ค๋ฉด, ์ฝ”๋“œ ๋Œ€๋ถ€๋ถ„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ Copilot์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์–ธ์–ด๋ฅผ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ Copilot์—์„œ ์ œ์•ˆํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ •๋ง ์ข‹์€์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  Copilot์„ ๋งž์ถคํ˜• ํ•™์Šต ๋„์šฐ๋ฏธ๋กœ ๊ฐ„์ฃผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ: ์„ค๋ช… ์š”์ฒญ

  • Explain your previous suggestion in more detail. I am new to NEW-LANGUAGE and I don't understand the code you suggested.

  • Show me how to write the following Ruby code in NEW-LANGUAGE: `people_over_50 = people.select { |person| person.age > 50 }`. Explain each part of the NEW-LANGUAGE code that you suggest.

  • Add comprehensive comments to this NEW-LANGUAGE file to explain what each part of the code does.

์ƒˆ ์–ธ์–ด๋กœ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

์‹œ์ž‘ํ•˜๋ ค๋ฉด ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. Copilot์— ๋„์›€์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด Copilot์— ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์ž‘๋™ ๋ฐฉ์‹์„ ํ•™์Šตํ•œ ํ›„ ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ: ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

  • Show me the Rust code for a simple, useful command line tool that asks for user input and returns some useful information based on what was entered.

  • Comment the suggested code more thoroughly. I want to understand what every part of this code does.

  • Give me the code for a very small Android app written in Kotlin.

  • Suggests ways I could enhance this app.

์ฃผ์„ ๋ฐ Copilot ์ฝ”๋“œ ์™„์„ฑ ์‚ฌ์šฉ

Copilot Chat์— ์ƒˆ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ ์ฝ”๋“œ๋ฅผ ์ œ์•ˆํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋Œ€์‹  ํŽธ์ง‘๊ธฐ์—์„œ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๊ณ  Copilot ์ฝ”๋“œ ์™„์„ฑ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ œ์•ˆ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

  1. IDE์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์–ธ์–ด์— ์ ์ ˆํ•œ ํŒŒ์ผ ์ด๋ฆ„ ํ™•์žฅ๋ช…์œผ๋กœ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Rust๋ฅผ ํ•™์Šตํ•˜๋Š” ๊ฒฝ์šฐ example.rs๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ ์ฃผ์„ ์ค„์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

    Rust
    // NEW-LANGUAGE command line program to find the day of the week for a date.
    // The program does the following:
    // Prompt user to input string in format YYYYMMDD
    // Parse the string to check that it is a valid date.
    // If it's not, print an error message and exit.
    // Calculate the day of the week for the given date.
    // Print the day of the week to the user.
    
  3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ ์ค‘์ธ ์–ธ์–ด์™€ ์ผ์น˜ํ•˜๋„๋ก ์ฃผ์„ ๊ตฌ๋ฌธ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  4. NEW-LANGUAGE๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ์–ธ์–ด์˜ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ ์ด๋ฆ„ ํ™•์žฅ๋ช…์€ ์‚ฌ์šฉํ•  ์–ธ์–ด๋ฅผ Copilot์— ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

  5. return ํ‚ค์™€ tab ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ Copilot์—์„œ ์ œ๊ณตํ•˜๋Š” ์ฝ”๋“œ ์™„์„ฑ ์ œ์•ˆ์„ ํ™•์ธํ•˜๊ณ  ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์™„์„ฑ๋  ๋•Œ๊นŒ์ง€ ์ œ์•ˆ์„ ๊ณ„์† ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค.

  6. ์ฝ”๋“œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด๋ฉด์„œ ์ฝ”๋“œ์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด Copilot์— ์„ค๋ช…ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ:

    1. ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์ฝ”๋“œ ์ค„์„ ํ•˜๋‚˜ ์ด์ƒ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    2. VS Code์—์„œ:

      ์„ ํƒํ•œ ์ฝ”๋“œ๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋‹จ์ถ”๋กœ ํด๋ฆญํ•˜๊ณ  Copilot > Explain์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      JetBrains IDE์—์„œ:

      ์„ ํƒํ•œ ์ฝ”๋“œ๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋‹จ์ถ”๋กœ ํด๋ฆญํ•˜๊ณ  GitHub Copilot > Explain This๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      Visual Studio์—์„œ:

      Copilot Chat ํŒจ๋„์„ ์—ด๊ณ  ํ”„๋กฌํ”„ํŠธ Explain this code๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

Copilot์— ๊ตฌ์ฒด์ ์œผ๋กœ ์งˆ๋ฌธํ•˜๊ธฐ

์ƒˆ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ๋™์•ˆ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์€ ์ฝ”๋“œ ๋‹จ์œ„๋กœ ์ž‘์—…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Copilot์— ์ž˜ ์ •์˜๋œ ์ข์€ ๋ฒ”์œ„์˜ ์งˆ๋ฌธ์„ ์ œ์‹œํ•˜์—ฌ ์ƒˆ ์–ธ์–ด์˜ ๊ตฌ๋ฌธ๊ณผ ๊ด€์šฉ๊ตฌ์— ์ต์ˆ™ํ•ด์ง€๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ: ๊ตฌ์ฒด์ ์ธ ์งˆ๋ฌธ

  • Explain all of the various ways that conditionals can be coded in NEW-LANGUAGE.

  • In JavaScript I'd write: `The ${numCats === 1 ? 'cat is' : 'cats are'} hungry.`. How do I write this in NEW-LANGUAGE?

  • In NEW-LANGUAGE, how do I convert a string to all lowercase?

  • What is the equivalent of num++ in NEW-LANGUAGE?

  • How do I run a program written in the NEW-LANGUAGE programming language?

  • How can I compile a single executable file for my NEW-LANGUAGE project, that I can distribute as a release?

๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ƒˆ ์–ธ์–ด๋กœ ๋ณ€ํ™˜

๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์‹์„ ํ™œ์šฉํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์€ ํ•œ ๊ฐ€์ง€ ์–ธ์–ด์˜ ์ต์ˆ™ํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ƒˆ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•œ ๋‹ค์Œ, ์ƒˆ ์–ธ์–ด๋กœ ๋™์ผํ•œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์„ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์ž์ฒด ํฌํ•จ๋œ ์ฝ”๋“œ ์กฐ๊ฐ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Copilot Chat์— ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ•™์Šต ์ค‘์ธ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  3. ์ œ์•ˆ๋œ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํŽธ์ง‘๊ธฐ์—์„œ ์ƒˆ ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.
  4. ๋‘ ์ฝ”๋“œ ์กฐ๊ฐ์„ ๋‚˜๋ž€ํžˆ ์‚ดํŽด๋ณด๋ฉด์„œ ์ƒˆ ์–ธ์–ด๋กœ ๋™์ผํ•œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์œ ์‚ฌ์ ๊ณผ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
  5. Copilot์— ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ์–ธ์–ด๋กœ ๊ธฐ์กด ์ฝ”๋“œ ์ฝ๊ธฐ

์ƒˆ ์–ธ์–ด์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ์ต์ˆ™ํ•ด์ง€๋ฉด ํ•ด๋‹น ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์€ ํ›„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”. ํŒŒ์ผ์„ ์—ด๊ณ  Copilot Chat์— ํŒŒ์ผ ์šฉ๋„์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์ฝ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋œ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜์‹œ๊ฒ ์–ด์š”? ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ์ œ๊ณต ํ•จ์ˆ˜์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์•Œ ์ˆ˜ ์žˆ๋‚˜์š”? ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Copilot์— ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„์„ ์„ค๋ช…ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

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

Copilot์ด ํ•ญ์ƒ ์˜ณ์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š๊ธฐ

Copilot์€ ์ƒˆ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ์ด์ง€๋งŒ, ๋ชจ๋“  AI ๋„์šฐ๋ฏธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•ญ์ƒ ๋งž๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์ ์ด ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copilot์— ํฐ ์ฝ”๋“œ ๋ณธ๋ฌธ์ด ํ•™์Šต๋˜์ง€๋งŒ ๊ฐ ์–ธ์–ด์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ์ œ์•ˆ ์‚ฌํ•ญ์˜ ํ’ˆ์งˆ์€ ํ•ด๋‹น ์–ธ์–ด์˜ ํ•™์Šต ๋ฐ์ดํ„ฐ ์–‘๊ณผ ๋‹ค์–‘์„ฑ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JavaScript๋Š” ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ž˜ ๋‚˜์™€ ์žˆ์œผ๋ฏ€๋กœ Copilot์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ •ํ™•ํ•˜๊ณ  ์œ ์šฉํ•œ ์ œ์•ˆ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ž˜ ๋‚˜์™€ ์žˆ์ง€ ์•Š์€ ์–ธ์–ด์˜ ๊ฒฝ์šฐ Copilot์—์„œ ์ œ์•ˆํ•˜๋Š” ๋‚ด์šฉ์˜ ํ’ˆ์งˆ์ด ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ญ์ƒ Copilot์—์„œ ์ œ์•ˆํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Copilot์—์„œ ์ œ์•ˆํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ๋•Œ๋Š” ์„ฑ๋Šฅ์ด ๋” ์ข‹๊ฑฐ๋‚˜ ๊ฐ„๋‹จํ•˜๊ฑฐ๋‚˜ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ๋” ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Copilot์ด ๊ฐ€์žฅ ์ข‹์€ ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์œผ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ Copilot์— ์˜ค๋ฅ˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Copilot์ด ์ฝ”๋”ฉ ์Šคํƒ€์ผ ์ง€์นจ์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์‚ฌ์šฉ์ž ์ง€์ • ์ง€์นจ์„ ์ˆ˜์ •ํ•˜์—ฌ ์•ž์œผ๋กœ Copilot์ด ์‚ฌ์šฉ์ž์˜ ์ง€์นจ์„ ์ค€์ˆ˜ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub Copilot์— ๋Œ€ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์‚ฌ์šฉ์ž ์ง€์ • ์ง€์นจ ์ถ”๊ฐ€์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ์ œ ํ”„๋กฌํ”„ํŠธ: ์ž‘์—… ํ™•์ธ

  • Check this code for syntax errors.

  • Assess whether this code is optimally performant.

  • Suggest alternative ways this code could have been written.