github-copilot-sdk

4 개의 포스트

github

Copilot vs. 직접 API 접근: 실제로 무엇에 비용을 지불하고 있나요? (새 탭에서 열림)

같은 AI 모델을 사용하더라도 GitHub Copilot과 원시 API는 서로 다른 계층의 문제를 해결한다. Copilot은 이슈부터 코드 수정, 테스트, 풀 리퀘스트와 조직 정책 적용까지 연결된 개발 워크플로를 제공하고, 원시 API는 프롬프트·검색·라우팅·보안·로그·과금 등을 직접 설계하는 시스템 구축용 기반이다. 따라서 비용과 선택 기준은 토큰 단가만이 아니라 팀이 직접 소유하고 운영해야 하는 작업의 범위에 따라 결정된다. ## GitHub Copilot은 모델을 둘러싼 개발 도구 - Copilot의 모델 호출은 개발 작업 전체 중 한 단계에 불과하다. - 일반적인 유지보수 작업에는 다음 요소가 함께 필요하다. - GitHub Issue 분석 - 저장소와 관련 파일 탐색 - 코드 수정 및 diff 생성 - 저장소 지침과 허용된 명령 반영 - 터미널에서 테스트 실행 - Pull Request 생성 및 리뷰 - 조직의 보안·사용 정책 적용 - Copilot은 에디터, 저장소, 이슈, PR, 터미널, 조직 관리 기능을 하나의 흐름으로 연결한다. - 유료 플랜에서는 코드 자동 완성과 Next Edit Suggestions가 계속 포함되며, 더 많은 리소스를 사용하는 채팅·에이전트 작업에는 AI Credits가 적용된다. - 실제 작업 비용은 모델의 토큰 단가 외에도 다음 요인에 영향을 받는다. - 선택된 컨텍스트의 양 - 도구 호출 횟수 - 실패에 따른 재시도 - 이슈에서 리뷰 완료 PR까지 이어지는 전체 작업 경로 - 조직 플랜은 AI Credits를 조직 단위로 공유하고, 관리자가 예산과 사용량을 대시보드에서 추적할 수 있다. ## 원시 API는 직접 소유하는 시스템을 위한 기반 - API 직접 호출은 다음과 같은 시스템을 만들 때 적합하다. - 제품 기능에 포함되는 AI 기능 - 사내 에이전트 플랫폼 - 모델 평가·벤치마크 도구 - 자동화 파이프라인 - 개발자가 직접 결정할 수 있는 항목이 많다. - 프롬프트 구성 - 문서 및 코드 검색 방식 - 모델 라우팅 - 실패한 도구 호출의 재시도 정책 - 로그와 추적 데이터 저장 - 인증 정보와 보안 경계 - 과금 및 사용량 관리 - 예를 들어 사내 에이전트가 특정 태그의 이슈를 읽고, 회사 문서를 검색하고, 별도 시스템에 변경 요청을 만들며, 감사 기록까지 남긴다면 자체 데이터 경계·이벤트 트리거·승인 절차가 필요하다. - API는 이런 요구사항을 구현할 수 있는 기본 요소를 제공하지만, 저장소 파일을 어떻게 검색하고 에이전트 권한을 어디까지 허용할지는 개발자가 설계해야 한다. ## 에이전트 SDK는 두 계층 사이의 선택지 - 에이전트 SDK는 모델 API와 완성된 개발 도구 사이에서 오케스트레이션을 담당한다. - 일반적으로 다음 기능을 제공한다. - 도구 사용 - 세션 관리 - 스트리밍 응답 - 에이전트 실행 흐름 제어 - SDK에 따라 특정 제공업체에 종속되거나 여러 모델 제공업체를 지원할 수 있다. - GitHub Copilot SDK는 Copilot CLI를 구동하는 에이전트 런타임을 노출해, 직접 처음부터 에이전트 하네스를 만들지 않고도 검증된 실행 환경을 임베드할 수 있게 한다. - 이 런타임은 Copilot 구독 또는 사용자의 자체 provider key로 실행할 수 있다. ## BYOK: Copilot 워크플로와 모델 비용을 분리 - Copilot의 BYOK(Bring Your Own Key)는 지원되는 외부 모델을 Copilot Chat, Copilot CLI, VS Code에서 사용할 수 있게 한다. - 지원 제공업체에는 다음이 포함된다. - Anthropic - AWS Bedrock - Google AI Studio - Microsoft Foundry - OpenAI 및 OpenAI 호환 제공업체 - xAI - 모델은 Copilot의 하네스와 GitHub가 유지하는 통합 기능을 사용하지만, 토큰 비용은 사용자가 연결한 제공업체에 청구된다. - 기존 클라우드 계약이나 약정된 사용량이 있는 팀은 해당 계약을 유지하면서도 개발자는 익숙한 Copilot 환경을 사용할 수 있다. - Copilot CLI에서는 Azure OpenAI, Anthropic, 로컬 Ollama 모델 등도 사용할 수 있다. - BYOK는 글 작성 시점에 공개 프리뷰이므로 구매나 아키텍처 결정을 내리기 전에 최신 GitHub 문서를 확인해야 한다. - 엔터프라이즈와 조직 관리자는 GitHub 호스팅 모델과 BYOK 모델을 포함해 팀에서 사용할 모델을 정책으로 제한할 수 있다. ## 상황에 따른 선택 기준 - **원시 API를 선택할 때** - 자체 제품이나 내부 시스템에 AI를 통합해야 할 때 - 사용자 정의 프롬프트·검색·라우팅이 필요할 때 - 보안, 감사, 승인, 로그, 과금 체계를 직접 통제해야 할 때 - **GitHub Copilot을 선택할 때** - 개발자가 GitHub와 IDE 안에서 코드를 작성하고 리뷰할 때 - 이슈부터 PR, 테스트, 보안 정책까지 연결된 흐름이 중요할 때 - 조직 차원의 사용량·예산·모델 정책 관리가 필요할 때 - **BYOK를 고려할 때** - Copilot의 개발 워크플로는 유지하면서 특정 외부 모델이나 기존 클라우드 계약을 사용해야 할 때 실용적으로는 팀의 개발 생산성 향상이 목적이면 Copilot을, 독자적인 AI 제품이나 자동화 시스템 구축이 목적이면 원시 API를 우선 검토하는 것이 적절하다. 두 요구가 모두 있다면 Copilot 또는 Copilot SDK에 BYOK를 결합하는 방식도 선택지가 된다.

github

GitHub Copilot CLI로 이모지 리스트 생성기 만들기 (새 탭에서 열림)

소셜 미디어용 목록에 어울리는 이모지를 자동으로 붙여 주는 터미널 애플리케이션을 GitHub Copilot CLI로 개발한 사례를 소개합니다. 사용자가 마크다운 bullet list를 입력한 뒤 `Ctrl + S`를 누르면 Copilot SDK가 각 항목에 적절한 이모지를 추가하고 결과를 클립보드에 복사합니다. 이 프로젝트는 짧은 기획과 여러 AI 개발 도구를 활용해 실용적인 CLI를 빠르게 만들 수 있음을 보여 줍니다. ## 이모지 목록 생성기의 기능 - 터미널에서 실행되는 대화형 애플리케이션입니다. - 사용자가 bullet point 목록을 붙여 넣거나 직접 작성합니다. - `Ctrl + S`를 누르면 각 항목의 의미에 맞는 이모지를 자동으로 추가합니다. - 완성된 목록은 클립보드에 복사되어 소셜 미디어 게시물 등에 바로 사용할 수 있습니다. - `Ctrl + C`로 애플리케이션을 종료합니다. ## 사용한 기술 스택 - `@opentui/core` - 터미널 기반 사용자 인터페이스를 구현합니다. - `@github/copilot-sdk` - 입력된 문장을 분석하고 적절한 이모지를 선택하는 AI 기능을 담당합니다. - `clipboardy` - 생성된 결과를 시스템 클립보드에 복사합니다. - GitHub Copilot CLI - 프로젝트 기획, 구현, 코드 작성 과정 전반에 활용되었습니다. ## Copilot CLI를 활용한 개발 과정 - 먼저 Copilot CLI의 **plan mode**에서 애플리케이션의 요구사항을 자연어로 설명했습니다. - Copilot은 사용할 기술 스택, UI 방식, 라이브러리 등에 대해 추가 질문을 했습니다. - 논의 결과를 바탕으로 검토 가능한 `plan.md` 파일을 생성했습니다. - 계획을 확인한 뒤 Claude Opus 4.7을 사용해 실제 구현을 진행했습니다. - 몇 분 만에 동작하는 터미널 UI와 AI 기반 변환 기능을 완성했습니다. ## 함께 사용한 Copilot CLI 기능 - **Plan mode** - 구현 전에 요구사항과 기술적 접근 방식을 정리합니다. - **Autopilot mode** - 여러 구현 작업을 자동으로 진행하도록 합니다. - **Multi-model workflow** - 계획 수립과 구현 등 작업 목적에 따라 서로 다른 AI 모델을 활용합니다. - **`allow-all` 도구 플래그** - CLI가 필요한 도구를 보다 자유롭게 사용할 수 있도록 합니다. - **GitHub MCP 서버** - GitHub 관련 정보와 기능을 Copilot이 활용할 수 있게 합니다. ## 공개된 결과물 - 완성된 프로젝트는 무료 오픈 소스로 공개되었습니다. - GitHub 저장소: `cassidoo/emoji-list-generator` - Copilot CLI와 Copilot SDK의 공식 문서를 참고해 유사한 프로젝트를 직접 만들 수 있습니다. 작은 자동화 도구라도 요구사항을 먼저 계획으로 구체화하고, AI 모델·SDK·터미널 UI·클립보드 라이브러리를 조합하면 빠르게 완성할 수 있습니다. 특히 반복적인 콘텐츠 작성 작업을 CLI로 자동화하려는 개발자에게 적합한 접근입니다.

github

Copilot SDK를 활용한 AI 기반 GitHub 이슈 분류 구축하기 (새 탭에서 열림)

IssueCrush는 GitHub 이슈를 카드처럼 검토하고, Copilot SDK로 각 이슈의 요약과 처리 방향을 자동으로 제안하는 앱이다. React Native가 Node.js 기반 SDK를 직접 실행할 수 없기 때문에, Copilot SDK는 서버에서 실행하고 클라이언트는 HTTPS로 통신하는 구조를 사용한다. 핵심은 AI를 활용해 트리아지 시간을 줄이되, 인증 보안·리소스 정리·AI 장애 시 대체 경로까지 함께 설계하는 것이다. ## IssueCrush: 스와이프로 이슈 트리아지 - GitHub 이슈를 스와이프 가능한 카드로 표시한다. - 왼쪽으로 넘기면 이슈를 닫고, 오른쪽으로 넘기면 유지한다. - “Get AI Summary”를 누르면 Copilot이 이슈 내용을 분석한다. - 긴 이슈 설명을 직접 모두 읽지 않고도 다음 정보를 빠르게 파악할 수 있다. - 이슈의 핵심 내용 - 주요 문제나 기능 요청 - 조사, 구현, 담당 팀 배정, 중복 이슈 종료 등 권장 조치 ## React Native와 서버 측 SDK 아키텍처 - Copilot SDK는 Node.js 패키지이며 내부적으로 Copilot CLI 프로세스를 실행하고 JSON-RPC로 통신한다. - React Native 앱에서는 Node.js 런타임과 CLI 바이너리를 직접 사용할 수 없으므로 SDK를 서버에서 실행해야 한다. - 구성은 다음과 같다. - React Native·웹 클라이언트 → HTTPS → Node.js 서버 - Node.js 서버 → Copilot SDK → 로컬 Copilot CLI - 클라이언트는 별도로 GitHub OAuth와 GitHub REST API를 사용해 이슈 데이터를 가져온다. - 서버 측 통합의 장점: - 여러 클라이언트가 하나의 SDK 인스턴스를 공유해 연결과 인증 오버헤드를 줄인다. - Copilot 인증 정보와 API 토큰을 모바일 앱에 포함하지 않아 보안성이 높다. - Copilot 장애나 타임아웃이 발생해도 기본 요약으로 대체할 수 있다. - 서버에서 요청·응답, 지연 시간, 오류를 기록해 디버깅과 모니터링이 쉽다. ## 사전 준비 사항 - 서버에 Copilot CLI를 설치하고 시스템 `PATH`에서 실행 가능하게 해야 한다. - GitHub Copilot 구독 또는 BYOK 방식의 자체 API 키가 필요하다. - 서버에서 `copilot auth`를 실행하거나 `COPILOT_GITHUB_TOKEN` 환경 변수를 설정해 CLI를 인증해야 한다. ## Copilot SDK의 세션 기반 실행 SDK 사용 흐름은 다음과 같다. - `CopilotClient`를 생성하고 `start()`로 CLI 프로세스를 시작한다. - `createSession()`으로 사용할 모델과 권한 처리 방식을 지정한다. - `sendAndWait()`에 프롬프트를 전달해 응답을 기다린다. - `response.data.content`에서 요약 결과를 추출한다. - 작업이 끝나면 세션을 `disconnect()`하고 클라이언트를 `stop()`한다. 예시에서는 `gpt-4.1` 모델과 `approveAll` 권한 처리기를 사용하며, 초기화부터 정리까지 `try/finally`로 감싼다. ## 세션 생명주기와 리소스 정리 - SDK의 기본 생명주기는 다음 순서다. - `start()` - `createSession()` - `sendAndWait()` - `disconnect()` - `stop()` - 세션을 정리하지 않으면 리소스와 메모리가 누수될 수 있다. - 항상 `try/finally`에서 정리 작업을 수행해야 한다. - 정리 과정의 오류가 원래 발생한 오류를 덮지 않도록 `catch(() => {})`로 무시할 수 있다. ## 트리아지를 위한 프롬프트 설계 - 원문을 그대로 전달하기보다 모델이 판단하기 쉬운 구조화된 정보를 제공한다. - 프롬프트에는 다음 정보가 포함된다. - 제목과 이슈 번호 - 저장소 이름 - 상태와 라벨 - 생성일 - 작성자 - 이슈 본문 - 모델에게 2~3문장으로 간결하게 답하도록 요청한다. - 응답 목표는 다음 세 가지다. - 이슈가 무엇에 관한 것인지 설명 - 핵심 문제나 요청 식별 - 조사 필요, 구현 가능, 백엔드 팀 배정, 중복으로 종료 등 권장 조치 제안 - 빠른 검토를 위해 명확하고 실행 가능하게 작성하도록 하고, 마크다운 형식은 사용하지 않도록 지시한다. - 라벨과 작성자 같은 메타데이터도 이슈의 성격과 처리 방향을 판단하는 데 중요한 맥락으로 활용된다. ## 실용적인 권장 사항 Copilot SDK를 모바일이나 웹 앱에 직접 넣기보다 Node.js 서버에 배치하고, 인증 정보는 서버에만 보관하는 구성이 적절하다. 또한 세션 정리를 반드시 보장하고, AI가 실패해도 기본 트리아지가 가능하도록 비AI 대체 경로를 마련하는 것이 안정적인 운영에 중요하다.

github

‘텍스트로서의 AI’ 시대는 끝났다. 실행이 새로운 인터페이스다. (새 탭에서 열림)

이 글은 AI가 단순히 텍스트를 주고받는 도구를 넘어, 계획을 세우고 도구를 호출하며 실제 작업을 수행하는 실행 계층으로 발전하고 있다고 주장합니다. GitHub Copilot SDK를 사용하면 애플리케이션에 Copilot CLI의 검증된 계획·실행 엔진을 직접 내장할 수 있습니다. 이를 통해 개발자는 고정된 자동화 스크립트나 자체 오케스트레이션 계층을 만들지 않고도, 제약 조건 안에서 적응적으로 동작하는 에이전트형 시스템을 구축할 수 있습니다. ## 텍스트 기반 AI에서 실행 기반 AI로 - 기존 AI 사용 방식은 텍스트를 입력하고 텍스트를 받은 뒤, 사용자가 다음 행동을 직접 결정하는 구조였습니다. - 실제 운영 소프트웨어는 다음과 같은 실행 루프를 필요로 합니다. - 작업 계획 수립 - 도구 호출 - 파일 및 시스템 변경 - 명령 실행 - 오류 복구 - 실행 중 상황 변화에 따른 대응 - 따라서 AI의 핵심 인터페이스가 텍스트가 아니라, 제약 조건과 관찰 가능성을 갖춘 실행으로 바뀌고 있습니다. ## 여러 단계 작업을 에이전트에 위임 - 기존 스크립트는 작업 단계가 고정되어 있을 때는 유용하지만, 상황에 따라 흐름이 바뀌거나 오류 복구가 필요하면 취약해집니다. - Copilot SDK를 사용하면 애플리케이션이 구체적인 절차 대신 작업의 의도와 제약 조건을 전달할 수 있습니다. - 예를 들어 “이 저장소를 릴리스 준비 상태로 만들어라”라고 요청하면 에이전트가 다음을 수행할 수 있습니다. - 저장소 구조 탐색 - 필요한 작업 계획 수립 - 파일 수정 - 명령 실행 - 실패 발생 시 대안 적용 및 복구 - 고정된 예외 처리를 직접 작성하지 않고도, 규모가 커지는 업무 흐름에 적응하는 자동화를 구현할 수 있다는 점이 핵심입니다. ## 구조화된 런타임 컨텍스트 활용 - 시스템 로직을 프롬프트에 계속 추가하면 프롬프트가 복잡하고 취약해지며, 테스트와 유지보수가 어려워집니다. - Copilot SDK는 컨텍스트를 텍스트가 아닌 구조화되고 조합 가능한 도구와 데이터로 제공합니다. - 애플리케이션은 다음과 같은 방식으로 실행 환경을 확장할 수 있습니다. - 도메인 전용 도구 및 에이전트 스킬 정의 - Model Context Protocol(MCP)을 통한 도구 연결 - 실행 시점에 필요한 컨텍스트 검색 - 예를 들어 에이전트가 직접 다음 정보를 조회할 수 있습니다. - 서비스 소유 팀 - 과거 의사결정 기록 - 의존성 그래프 - 내부 API 스키마 - 권한과 안전 제약 조건 - MCP는 에이전트가 실제 시스템과 권한이 부여된 데이터에 근거해 행동하도록 연결하는 기반 역할을 합니다. ## IDE 밖에 실행 기능 내장 - AI 기능은 더 이상 IDE나 터미널 안에서만 제공될 필요가 없습니다. - Copilot SDK를 활용하면 다음과 같은 애플리케이션에 에이전트 실행을 통합할 수 있습니다. - 데스크톱 애플리케이션 - 사내 운영 도구 - 백그라운드 서비스 - SaaS 플랫폼 - 이벤트 기반 시스템 - 파일 변경, 배포 이벤트, 사용자 동작 등을 감지한 뒤 애플리케이션에서 Copilot을 프로그래밍 방식으로 호출할 수 있습니다. - 결과적으로 AI는 별도의 보조 창이 아니라 제품 내부에서 실행되는 인프라가 됩니다. ## 애플리케이션 아키텍처의 변화 - Copilot SDK는 Copilot CLI를 구동하는 계획·실행 엔진을 애플리케이션의 프로그래밍 가능한 계층으로 제공합니다. - 개발자는 매번 오케스트레이션 로직을 새로 구축하기보다, 애플리케이션이 달성해야 할 목표와 실행 가능한 범위를 정의하는 데 집중할 수 있습니다. - 다만 실제 운영 환경에서는 도구 권한, 안전 제약, 실행 결과 관찰, 오류 처리 등을 명확히 설계해야 합니다. Copilot SDK는 AI를 “답변을 생성하는 기능”에서 “실제 업무를 수행하는 시스템 구성 요소”로 확장하려는 접근입니다. 반복 작업이나 복잡한 운영 흐름에 적용할 때는 의도 중심의 에이전트 실행, MCP 기반의 구조화된 컨텍스트, 명확한 권한·안전 제약을 함께 설계하는 것이 좋습니다.