GitHub Copilot์ ์ฑํ
API์ ์ฐ๊ฒฐํ๋ Python ๊ธฐ๋ฐ ๋ฐ์คํฌํ ์ฑ๋ด์
๋๋ค.
Copilot Pro+ ๊ตฌ๋
์๋ผ๋ฉด Claude, Gemini, ChatGPT ๋ฑ ํ๋ฆฌ๋ฏธ์ AI ๋ชจ๋ธ์
๋ณ๋ ๊ตฌ๋
๋ฃ ์์ด ํธ๋ฆฌํ GUI๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
| ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|
| ๋ชจ๋ธ ์ ํ | ๋ผ๋์ค ๋ฒํผ์ผ๋ก ๋ํ ์ค์๋ Claude Opus 4.5, Gemini 3.1 Pro, GPT-4.1 ๊ฐ ์์ ๋กญ๊ฒ ์ ํ |
| GitHub OAuth | ๋๋ฐ์ด์ค ํ๋ก์ฐ ์ธ์ฆ โ ํ ํฐ์ ์ง์ ๋ณต์ฌยท๋ถ์ฌ๋ฃ๊ธฐํ ํ์ ์์ |
| ๋ค์ค ๋ํ | ์ฌ์ด๋๋ฐ์์ ๋ํ๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฆ์ ๋ฐ๊พธ๊ณ , ์ญ์ ๊ฐ๋ฅ; ๋ง์ง๋ง์ผ๋ก ์ด์๋ ๋ํ๋ฅผ ์๋์ผ๋ก ๊ธฐ์ต |
| ๋ํ ๊ธฐ๋ก ์ ์ฅ | ๋ก์ปฌ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค(~/.copilot_chatbot.db)์ ์ ์ฅ; ๊ธฐ์กด JSON ๊ธฐ๋ก์ ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
|
| ํ ํฐ ์ธ์ ์ปจํ ์คํธ ์ฐฝ | tiktoken์ผ๋ก ํ ํฐ์ ๊ณ์ฐํ๊ณ ํ์คํ ๋ฆฌ๋ฅผ ์๋ผ ๋ชจ๋ ์์ฒญ์ด ๋ชจ๋ธ์ ์ปจํ ์คํธ ํ๋ ์์ ๋ค์ด์ค๋๋ก ์ฒ๋ฆฌ |
| ์ด๋ฏธ์ง ์ฒจ๋ถ | .png, .jpg, .jpeg, .gif, .webp ํ์ผ์ ์ฒจ๋ถํ๋ฉด base64๋ก ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ์ ์ ์ก |
| ์คํ๋ ๋์ํธ ์ฒจ๋ถ | .csv, .xls, .xlsx ํ์ผ์ ์ฒจ๋ถํ๋ฉด ๋ด์ฉ์ด ํ
์คํธ๋ก ๋ณํ๋์ด ์ ์ก |
| ๊ฐ์ธ ํ๋กฌํํธ | ์ด๋ฆ ์๋ ํ๋กฌํํธ๋ฅผ ์ ์ฅยท์์ ยท์ญ์ ; ์ฒดํฌ๋ฐ์ค๋ก ์ฌ๋ฌ ํ๋กฌํํธ๋ฅผ ๋์์ ํ์ฑํ(์๋ ์๋ถ์); ๋๋๊ทธ๋ก ์์ ๋ณ๊ฒฝ |
| ์์คํ ํ๋กฌํํธ | ํ๋กฌํํธ ๋งค๋์ ์์ ๋ํ๋ณ ์์คํ ํ๋กฌํํธ ์ค์ |
| ํ๋กฌํํธ ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ | .json ํ์ผ๋ก ํ๋กฌํํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ณต์ |
| ๋ํ ์ ์ฅ | ๋ํ๋ฅผ JSON ๋๋ ์ผ๋ฐ ํ ์คํธ๋ก ๋ด๋ณด๋ด๊ธฐ |
| ์คํธ๋ฆฌ๋ฐ ์๋ต | ์๋ต์ด ๋จ์ด ๋จ์๋ก ์ค์๊ฐ์ผ๋ก ํ์ |
| ๊ธฐ๋ก ์ง์ฐ ๋ก๋ฉ | ์ฑํ ์๋จ์ผ๋ก ์คํฌ๋กคํ๋ฉด ์ด์ ๋ฉ์์ง๋ฅผ ํ์ํ ๋ ๋ถ๋ฌ์ด |
- Python 3.10 ์ด์
- GitHub Copilot Pro+ ๊ตฌ๋
Windows / macOS (pip)
pip install -r requirements.txt
Ubuntu / Debian (apt)
์ต์ Ubuntu(23.04+)์์๋ PEP 668์ ๋ฐ๋ผ ์์คํ
Python์ pip๋ก ์ง์ ํจํค์ง๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์ ๊ณต๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ธ์:
chmod +x install_ubuntu.sh sudo ./install_ubuntu.sh
| ํจํค์ง | ์ญํ |
|---|---|
requests |
GitHub ๋ฐ Copilot API HTTP ํต์ |
openpyxl |
.xlsx ์์
ํ์ผ ์ฝ๊ธฐ |
tiktoken |
์ปจํ ์คํธ ์ฐฝ ๊ด๋ฆฌ๋ฅผ ์ํ ์ ํํ ํ ํฐ ๊ณ์ฐ |
typing_extensions |
Python 3.11 ๋ฏธ๋ง์์ ์ต์ typing ๊ธฐ๋ฅ ์ง์ |
GUI์๋ tkinter๋ฅผ ์ฌ์ฉํ๋ฉฐ, WindowsยทmacOS์ฉ Python ๊ณต์ ์ค์น ํ๋ก๊ทธ๋จ์๋ ๊ธฐ๋ณธ ํฌํจ๋์ด ์์ต๋๋ค.
Ubuntu/Debian์์ install_ubuntu.sh๋ฅผ ์ฌ์ฉํ๋ฉด python3-tk๋ ํจ๊ป ์ค์น๋ฉ๋๋ค.
์๋์ผ๋ก ์ค์นํ๋ ค๋ฉด:
# Debian / Ubuntu
sudo apt-get install python3-tk์ด๋ฏธ Python 3.10 ์ด์์ด ์ค์น๋์ด ์๋ค๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.
๋ช ๋ น ํ๋กฌํํธ(cmd)์์python --version์ ์ ๋ ฅํด ๋ฒ์ ์ ํ์ธํ ์ ์์ต๋๋ค.
- ์น ๋ธ๋ผ์ฐ์ ์์ https://www.python.org/downloads/ ์ ์ ์ํฉ๋๋ค.
- "Download Python 3.x.x" ๋ฒํผ์ ํด๋ฆญํด ์ค์น ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ค์ด๋ก๋๋
.exeํ์ผ์ ์คํํฉ๋๋ค. - ์ค์น ํ๋ฉด ํ๋จ์ ์๋ "Add Python to PATH" ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ฐ๋์ ์ฒดํฌํฉ๋๋ค.
(์ด ์ต์ ์ ๋น ๋จ๋ฆฌ๋ฉด ์ดํpython๋ช ๋ น์ด ์ธ์๋์ง ์์ต๋๋ค.) - "Install Now" ๋ฅผ ํด๋ฆญํ๊ณ ์ค์น๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
- ์ค์น ์๋ฃ ํ "Close" ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด ์ ์ฅ์ ํ์ด์ง ์ค๋ฅธ์ชฝ ์์ ์ด๋ก์ "Code" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- "Download ZIP" ์ ์ ํํด ZIP ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ค์ด๋ก๋๋ ZIP ํ์ผ์ ์ํ๋ ์์น์ ์์ถ ํด์ ํฉ๋๋ค.
์)C:\Users\์ฌ์ฉ์์ด๋ฆ\Documents\Hungry_mans_CopilotChatBot
์์ถ์ ํด์ ํ ํด๋๋ฅผ ํ์ผ ํ์๊ธฐ๋ก ์ฝ๋๋ค.
๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํด ๊ทธ ํด๋์์ ๋ฐ๋ก ํฐ๋ฏธ๋์ ์ด ์ ์์ต๋๋ค.
๋ฐฉ๋ฒ A โ ์ฃผ์ ํ์์ค ์ด์ฉ (๊ฐ์ฅ ๋น ๋ฆ)
- ํ์ผ ํ์๊ธฐ ์๋จ์ ์ฃผ์ ํ์์ค์ ํด๋ฆญํฉ๋๋ค.
- ์ฃผ์๊ฐ ์ ํ๋ ์ํ์์
cmd๋ฅผ ์ ๋ ฅํ๊ณ Enter๋ฅผ ๋๋ฆ ๋๋ค. - ํด๋น ํด๋ ๊ฒฝ๋ก์์ ๋ช ๋ น ํ๋กฌํํธ๊ฐ ์ด๋ฆฝ๋๋ค.
๋ฐฉ๋ฒ B โ ์ฐํด๋ฆญ ๋ฉ๋ด ์ด์ฉ
- ์์ถ ํด์ ๋ ํด๋ ์์ ๋น ๊ณต๊ฐ์ Shift + ์ฐํด๋ฆญํฉ๋๋ค.
- "์ฌ๊ธฐ์ PowerShell ์ฐฝ ์ด๊ธฐ" ๋๋ "์ฌ๊ธฐ์ ํฐ๋ฏธ๋ ์ด๊ธฐ" ๋ฅผ ์ ํํฉ๋๋ค.
์ด๋ฆฐ ํฐ๋ฏธ๋(๋ช ๋ น ํ๋กฌํํธ ๋๋ PowerShell)์์ ์๋ ๋ช ๋ น์ ์ ๋ ฅํ๊ณ Enter๋ฅผ ๋๋ฆ ๋๋ค:
pip install -r requirements.txt
์ค์น๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. (์ธํฐ๋ท ์๋์ ๋ฐ๋ผ ์์ญ ์ด ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.)
Ubuntu / Debian ์ฌ์ฉ์:
externally-managed-environment์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด
pip๋์sudo ./install_ubuntu.sh๋ฅผ ์ฌ์ฉํ์ธ์. ์์ธํ ๋ด์ฉ์ ์์ Python ํจํค์ง ์น์ ์ ์ฐธ๊ณ ํฉ๋๋ค.
python main.py
์ฒ์ ์คํํ๋ฉด ์ค์ โ GitHub ์ธ์ฆ... ๋ฉ๋ด๋ก ์ด๋ํด ํ๋ฉด์ ์๋ด์ ๋ฐ๋ผ GitHub ๊ณ์ ์ ์ฐ๋ํฉ๋๋ค.
Hungry_mans_CopilotChatBot/
โโโ main.py # ์ง์
์
โโโ requirements.txt
โโโ install_ubuntu.sh # Ubuntu/Debian์ฉ ํจํค์ง ์ค์น ์คํฌ๋ฆฝํธ
โโโ README.md
โโโ src/
โโโ __init__.py
โโโ app.py # tkinter GUI (๋ฉ์ธ ์ฐฝ + ๋ชจ๋ ๋ค์ด์ผ๋ก๊ทธ)
โโโ auth.py # GitHub ๋๋ฐ์ด์ค ํ๋ก์ฐ OAuth + ํ ํฐ ์ ์ฅ
โโโ chat_store.py # SQLite ๊ธฐ๋ฐ ๋ํ ๋ฐ ๋ฉ์์ง ์ ์ฅ
โโโ context_manager.py # ํ ํฐ ์ธ์ ์ปจํ
์คํธ ์ฐฝ ํธ๋ฆฌ๋ฐ (tiktoken)
โโโ copilot_api.py # Copilot Chat API ํด๋ผ์ด์ธํธ (์คํธ๋ฆฌ๋ฐ)
โโโ file_handler.py # ์ด๋ฏธ์ง / CSV / ์์
ํ์ผ ์ฒ๋ฆฌ
โโโ paths.py # ์ฑ ๋ฐ์ดํฐ ํ์ผ ๊ฒฝ๋ก ๊ด๋ฆฌ
โโโ prompt_manager.py # ๊ฐ์ธ ํ๋กฌํํธ CRUD + ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ
- ์ฑ์ด GitHub์ ๋๋ฐ์ด์ค ์ฝ๋๋ฅผ ์์ฒญํฉ๋๋ค (๊ณต๊ฐ Copilot OAuth App ํด๋ผ์ด์ธํธ ID
Iv1.b507a08c87ecfe98์ฌ์ฉ). - ๋ธ๋ผ์ฐ์ ์์
https://github.com/login/device๊ฐ ์ด๋ฆฌ๋ฉด โ ํ๋ฉด์ ํ์๋ ์ฝ๋๋ฅผ ์ ๋ ฅํด ์น์ธํฉ๋๋ค. - ์ฑ์ด ์น์ธ์ด ์๋ฃ๋ ๋๊น์ง GitHub๋ฅผ ํด๋งํ๋ฉฐ, ์๋ฃ ํ GitHub ํ ํฐ์
~/.copilot_chatbot_token.json์ ์ ์ฅํฉ๋๋ค. - API๋ฅผ ํธ์ถํ ๋๋ง๋ค GitHub ํ ํฐ์ ๋จ๊ธฐ Copilot API ๋ฒ ์ด๋ฌ ํ ํฐ(์ ํจ ์๊ฐ ~30๋ถ, ์๋ ๊ฐฑ์ )๊ณผ ๊ตํํฉ๋๋ค.
| ํค | ๋์ |
|---|---|
Enter |
๋ฉ์์ง ์ ์ก |
Shift + Enter |
์ ๋ ฅ ์ฐฝ์์ ์ค ๋ฐ๊ฟ |
์์ฑ์๋ GitHub Copilot Pro+ ๊ตฌ๋
์(์ 39๋ฌ๋ฌ โ ์ ์ฌ์ ๊ฑด๋๋ฐ๋ฉฐ ๋ธ ๊ตฌ๋
๋ฃ)๋ก,
ํด๋น ๊ตฌ๋
์ ์ด๋ฏธ ํฌํจ๋ Claude, Gemini, GPT-4.1 ๋ชจ๋ธ์
๋ณ๋ ์ ๋ฃ ์๋น์ค์ ๊ฐ์
ํ์ง ์๊ณ ํธ๋ฆฌํ ๋ฐ์คํฌํ GUI๋ก ์ฐ๊ณ ์ถ์ด์ ๋ง๋ค์์ต๋๋ค.