์๊ฐ
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 ์ฝ๋ ์์ฑ์์ ์ ๊ณตํ๋ ์ ์ ๋ด์ฉ์ ํ์ธํ ์ ์์ต๋๋ค.
์์:
-
IDE์์ ์ฌ์ฉ ์ค์ธ ์ธ์ด์ ์ ์ ํ ํ์ผ ์ด๋ฆ ํ์ฅ๋ช ์ผ๋ก ํ์ผ์ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด Rust๋ฅผ ํ์ตํ๋ ๊ฒฝ์ฐ
example.rs
๋ผ๋ ํ์ผ์ ๋ง๋ญ๋๋ค. -
๋ค์ ์ฃผ์ ์ค์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ต๋๋ค.
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.
// 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.
-
ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ ์ค์ธ ์ธ์ด์ ์ผ์นํ๋๋ก ์ฃผ์ ๊ตฌ๋ฌธ์ ๋ณ๊ฒฝํฉ๋๋ค.
-
NEW-LANGUAGE
๋ฅผ ์ฌ์ฉ ์ค์ธ ์ธ์ด์ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์ด ํ์ผ ์ด๋ฆ ํ์ฅ๋ช ์ ์ฌ์ฉํ ์ธ์ด๋ฅผ Copilot์ ์๋ ค์ค๋๋ค. -
return ํค์ tab ํค๋ฅผ ๋๋ฌ Copilot์์ ์ ๊ณตํ๋ ์ฝ๋ ์์ฑ ์ ์์ ํ์ธํ๊ณ ์๋ฝํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ์์ฑ๋ ๋๊น์ง ์ ์์ ๊ณ์ ์๋ฝํฉ๋๋ค.
-
์ฝ๋๋ฅผ ์ ์ฝ์ด๋ณด๋ฉด์ ์ฝ๋์ ์๋ ๋ฐฉ์์ ํ์ธํฉ๋๋ค. ์ดํดํ์ง ๋ชปํ๋ ์ฝ๋ ๋ถ๋ถ์ด ์์ผ๋ฉด Copilot์ ์ค๋ช ํด ๋ฌ๋ผ๊ณ ์์ฒญํฉ๋๋ค. ์์:
-
์ดํดํ์ง ๋ชปํ๋ ์ฝ๋ ์ค์ ํ๋ ์ด์ ์ ํํฉ๋๋ค.
-
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?
๊ธฐ์กด ์ฝ๋๋ฅผ ์ ์ธ์ด๋ก ๋ณํ
๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ ์ง์์ ํ์ฉํ๋ ํ ๊ฐ์ง ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ํ ๊ฐ์ง ์ธ์ด์ ์ต์ํ ์ฝ๋๋ฅผ ๊ฐ์ ธ์์ ์ ์ธ์ด๋ก ๋ณํํ ๋ค์, ์ ์ธ์ด๋ก ๋์ผํ ์์ ์ด ์ํ๋๋ ๋ฐฉ์์ ๊ฒํ ํ๋ ๊ฒ์ ๋๋ค.
- ์์ฒด ํฌํจ๋ ์ฝ๋ ์กฐ๊ฐ์ ์ฐพ์ต๋๋ค. ํจ์๋ฅผ ์๋ก ๋ค ์ ์์ต๋๋ค.
- Copilot Chat์ ํด๋น ํจ์๋ฅผ ํ์ต ์ค์ธ ์ธ์ด๋ก ๋ณํํ๋๋ก ์์ฒญํฉ๋๋ค.
- ์ ์๋ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ํธ์ง๊ธฐ์์ ์ ํ์ผ์ ๋ถ์ฌ๋ฃ์ต๋๋ค.
- ๋ ์ฝ๋ ์กฐ๊ฐ์ ๋๋ํ ์ดํด๋ณด๋ฉด์ ์ ์ธ์ด๋ก ๋์ผํ ์์ ์ด ์ํ๋๋ ๋ฐฉ์์ ๋ถ์ํฉ๋๋ค. ์ ์ฌ์ ๊ณผ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
- 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.