command-line-interface

4 개의 포스트

github

초보자를 위한 GitHub Copilot CLI: 자주 사용하는 슬래시 명령어 개요 (새 탭에서 열림)

GitHub Copilot CLI의 슬래시 명령은 모델 선택, 컨텍스트 관리, 세션 재개, 변경 사항 확인 등을 터미널에서 직접 수행하게 해주는 핵심 제어 기능이다. `/`를 입력하면 사용 가능한 명령 목록을 확인할 수 있으며, 각 명령을 익히면 작업 흐름과 권한을 더 효율적으로 관리할 수 있다. 특히 모델과 토큰 사용량을 상황에 맞게 조절하면 속도와 결과 품질을 균형 있게 유지할 수 있다. ## 슬래시 명령의 역할 - 슬래시 명령은 Copilot CLI에 내장된 제어 기능이다. - Copilot의 동작을 지시하고, 변경 사항과 컨텍스트를 확인하며, 세션과 프로젝트를 관리한다. - 터미널에서 `/`를 입력하면 현재 지원되는 명령을 스크롤 목록으로 확인할 수 있다. ## 작업에 맞는 모델 선택: `/model` - `/model`을 입력하면 사용 가능한 모델 목록이 표시된다. - 모델마다 적합한 작업이 다르다. - 간단한 리팩터링이나 빠른 작업에는 가벼운 모델이 적합하다. - 기능 설계나 복잡한 추론에는 더 강력한 모델이 유리하다. - 모델 목록은 사용 중인 요금제나 조직 설정에 따라 달라질 수 있다. - 각 모델 옆의 비용 배수는 사용량과 비용 수준을 비교하는 기준이 된다. - 작업의 복잡도와 속도, 비용을 고려해 모델을 선택해야 한다. ## 컨텍스트와 토큰 관리 ### 현재 사용량 확인: `/context` - `/context`는 현재 세션의 컨텍스트 사용량을 보여준다. - 남은 토큰 수, 시스템이 사용하는 공간, 추가로 활용 가능한 버퍼를 확인할 수 있다. - 컨텍스트 창이 가득 차면 Copilot이 이전 대화와 정보를 충분히 참고하기 어려워진다. ### 대화 압축: `/compact` - `/compact`는 현재 대화를 요약해 컨텍스트 공간을 확보한다. - 기존 세션을 유지하면서 새로운 작업으로 넘어갈 때 유용하다. - 컨텍스트 한도에 가까워지면 Copilot CLI가 자동으로 압축할 수 있지만, 사용자가 직접 실행할 수도 있다. ### 세션 초기화: `/clear` - `/clear`는 현재 세션을 완전히 지운다. - 이전 대화의 영향을 받지 않고 새로운 작업을 시작할 때 사용한다. ## 이전 세션 재개: `/resume` - `/resume`은 과거에 진행한 세션 목록을 표시한다. - 로컬 세션과 원격 세션을 모두 확인할 수 있다. - 세션을 선택하면 이전 작업 기록을 검토한 뒤 중단한 지점부터 작업을 이어갈 수 있다. ## 변경 사항 확인: `/diff` - `/diff`는 현재 세션에서 발생한 최근 변경 사항을 보여준다. - Copilot이 수정한 파일을 검토하고, 의도하지 않은 변경이 없는지 확인하는 데 사용한다. - 변경 내용을 검증한 뒤 커밋이나 다음 작업으로 넘어가는 것이 좋다. ## 작업 디렉터리 변경: `/cwd` - `/cwd`를 사용하면 Copilot을 종료하지 않고 다른 저장소나 디렉터리로 이동할 수 있다. - 여러 프로젝트를 오가며 작업할 때 편리하다. - Copilot의 작업 범위를 현재 선택한 프로젝트에 맞게 조정할 수 있다. ## 도구 권한 초기화: `/reset-allowed-tools` - `/reset-allowed-tools`는 이전에 허용한 파일 수정 등의 도구 권한을 초기화한다. - 신뢰 수준이 다른 저장소로 이동했을 때 기존 권한을 재설정하는 데 유용하다. - 민감한 프로젝트를 다룰 때 권한을 다시 확인하는 안전 장치로 활용할 수 있다. ## 실용적인 활용 방법 - 작업을 시작하기 전에 `/`를 입력해 사용 가능한 명령을 확인한다. - 복잡한 기능 설계에는 `/model`로 추론 능력이 높은 모델을 선택한다. - 컨텍스트가 부족해지면 `/context`로 상태를 확인하고 `/compact`를 실행한다. - Copilot이 코드를 수정한 뒤 `/diff`로 변경 내용을 검토한다. - 다른 프로젝트로 이동할 때는 `/cwd`, 권한을 정리해야 할 때는 `/reset-allowed-tools`를 사용한다. - 슬래시 명령을 익히면 Copilot CLI를 단순한 코드 생성 도구가 아니라 세션·컨텍스트·권한을 통제하는 작업 환경으로 활용할 수 있다.

github

초보자를 위한 GitHub Copilot CLI: 대화형 vs 비대화형 모드 (새 탭에서 열림)

GitHub Copilot CLI는 대화형과 비대화형이라는 두 가지 실행 모드를 제공한다. 대화형 모드는 세션 안에서 질문과 후속 작업을 반복하며 프로젝트를 함께 다루는 데 적합하고, 비대화형 모드는 한 번의 프롬프트로 빠른 답변을 얻거나 자동화된 워크플로에 연결할 때 유용하다. 이전 세션을 다시 불러오는 기능도 제공하므로 작업 방식과 목적에 따라 모드를 선택할 수 있다. ## 대화형 모드: 반복적인 협업과 심층 작업 대화형 모드는 Copilot CLI의 기본 모드로, 채팅처럼 Copilot과 여러 차례 상호작용하는 방식이다. - 터미널에서 `copilot`을 입력해 시작한다. - 처음 실행하면 Copilot이 프로젝트 파일을 읽고 수정할 수 있도록 현재 폴더를 신뢰할지 물을 수 있다. - 질문을 입력하면 프로젝트를 분석한 답변이나 실행 방법을 제시한다. - 필요하면 “직접 실행해줘”와 같은 후속 프롬프트를 입력해 서버 실행이나 파일 수정 등을 맡길 수 있다. - 같은 세션에서 결과를 검토하고 추가 질문이나 변경 요청을 이어갈 수 있다. - 프로젝트 탐색, 디버깅, 기능 구현처럼 맥락을 유지해야 하는 작업에 적합하다. ## 비대화형 모드: 빠른 일회성 작업 비대화형 모드는 별도의 대화 세션에 들어가지 않고 한 번의 프롬프트를 즉시 실행하는 방식이다. - 일반 터미널에서 `copilot -p "프롬프트"` 형식으로 실행한다. - 예시: ```bash copilot -p "이 저장소의 역할과 주요 폴더를 간단히 요약해줘" ``` - 저장소 요약, 코드 조각 생성, 간단한 질문처럼 후속 대화가 필요 없는 작업에 적합하다. - 답변을 받은 뒤 곧바로 기존 셸 작업으로 돌아갈 수 있다. - 스크립트나 자동화된 개발 워크플로에 Copilot을 연결할 때도 활용할 수 있다. ## 이전 세션 이어가기 Copilot CLI는 이전 대화의 맥락을 유지한 채 작업을 재개할 수 있다. - 대화형 모드에서 `/resume`을 입력하면 이전 세션 목록이 표시된다. - 비대화형 상태에서 바로 세션 선택기를 열려면 다음 명령을 사용한다. ```bash copilot --resume ``` - 이전에 진행하던 프로젝트 분석, 코드 수정, 논의 내용을 이어서 작업할 수 있다. ## 모드 선택 기준 - 프로젝트를 탐색하거나 Copilot과 계속 협업해야 한다면 대화형 모드를 사용한다. - 명확한 질문에 대한 단일 답변, 저장소 요약, 코드 생성이 필요하면 비대화형 모드가 효율적이다. - 반복 작업이나 자동화 파이프라인에는 `copilot -p`를 활용한다. - 중단했던 복잡한 작업을 재개할 때는 `/resume` 또는 `copilot --resume`을 사용한다. 상호작용이 많은 개발 작업에는 대화형 모드를, 빠르고 집중적인 요청에는 비대화형 모드를 선택하면 터미널 안에서 Copilot을 효율적으로 활용할 수 있다.

github

입문자를 위한 GitHub Copilot CLI: GitHub Copilot CLI 시작하기 (새 탭에서 열림)

GitHub Copilot CLI는 에이전트형 AI를 터미널에 통합해 코드 작성, 테스트 실행, 오류 수정 등을 지원하는 도구다. 이 글은 npm을 통한 설치부터 GitHub 인증, 폴더 권한 설정, 첫 프롬프트 실행까지의 시작 과정을 소개한다. 또한 프로젝트 분석, 엔드포인트 생성, Copilot Cloud Agent로 작업 위임 같은 활용 사례를 설명한다. ## GitHub Copilot CLI란? - Copilot의 에이전트 기능을 명령줄 환경에서 사용할 수 있게 해주는 도구다. - 저장소 전체 맥락을 바탕으로 파일을 탐색하고 코드를 작성할 수 있다. - 코드 빌드와 테스트 실행을 자율적으로 수행하며, 오류를 발견하면 스스로 수정할 수 있다. - 사용자는 작업을 요청한 뒤 결과를 검토하고 추가 변경을 지시할 수 있어, 다른 도구로 전환하지 않고 개발 흐름을 유지할 수 있다. - CLI에서 Copilot Cloud Agent에 작업을 위임하는 것도 가능하다. ## 설치 방법 Node.js가 설치되어 있다면 npm으로 전역 설치할 수 있다. ```bash npm install -g @github/copilot ``` - Windows에서는 WinGet, macOS에서는 Homebrew 등 패키지 관리자를 사용할 수도 있다. - 패키지 관리자별 정확한 설치 명령은 해당 도구의 문서를 확인해야 한다. ## 최초 실행과 인증 설치가 끝나면 터미널에서 `Copilot` 명령으로 실행한다. ```plaintext Copilot ``` 처음 사용하는 경우 `/login` 명령으로 GitHub 계정에 로그인한다. ```plaintext /login ``` 로그인 과정에서 다음 작업이 수행된다. - Copilot 클라이언트와 GitHub Copilot 계정을 연결한다. - GitHub 리소스에 접근할 수 있도록 읽기 전용 GitHub MCP 서버를 연결한다. ## 폴더 권한 설정 Copilot이 프로젝트를 분석하거나 파일을 수정하려면 해당 폴더에 대한 접근 권한을 부여해야 한다. - 현재 세션에서만 권한을 허용할 수 있다. - 같은 프로젝트에서 반복적으로 사용할 경우 권한 설정을 저장할 수 있다. - 파일을 생성하거나 수정하는 작업에서는 Copilot이 별도로 사용자 승인을 요청할 수 있다. - 권한을 부여한 뒤 자연어로 프로젝트 분석, 코드 작성, 테스트 등의 작업을 요청할 수 있다. ## 프로젝트 분석과 코드 생성 Copilot CLI는 저장소의 파일과 문서를 직접 탐색해 프로젝트 구조와 개발 관례를 파악한다. 예를 들어 다음과 같이 요청할 수 있다. ```plaintext Give me an overview of this project ``` - 주요 파일과 프로젝트 구성을 확인한 뒤 개요를 제공한다. - 새 기능을 요청하면 기존 문서와 코드 예제를 참고해 프로젝트 스타일에 맞추려 한다. - 예를 들어 카테고리 전체를 반환하는 새 엔드포인트를 추가하도록 요청할 수 있다. ```plaintext Let’s add a new endpoint to return all categories ``` - 파일 생성이나 변경 전에는 필요한 권한을 요청한다. ## Copilot Cloud Agent로 작업 위임 명확하게 정의된 작업은 CLI에서 Copilot Cloud Agent에 넘길 수 있다. ```plaintext /delegate Let’s deal with issue #14 to add the rest of the CRUD endpoints to games ``` 위임하면 Copilot이 다음 작업을 수행한다. - 현재 CLI 세션의 컨텍스트를 유지한다. - 새 브랜치를 생성한다. - 초안 상태의 Pull Request를 연다. - 백그라운드에서 요청된 변경 작업을 진행한다. - 작업 완료 후 사용자가 결과를 검토하도록 한다. ## 이후 학습할 기능 이 글은 입문 시리즈의 첫 번째 내용으로, 다음 주제들이 후속 글에서 다뤄질 예정이라고 안내한다. - 대화형 모드와 비대화형 모드 비교 - `-p` 플래그를 이용한 빠른 요약 - Copilot CLI의 슬래시 명령 - MCP 서버 연동 - CLI 사용법과 모범 사례 Copilot CLI는 터미널을 떠나지 않고 프로젝트를 이해하고 코드를 수정할 수 있게 해주는 도구다. 처음에는 작은 프로젝트 개요나 단순한 기능 추가부터 사용하고, 파일 변경과 권한 요청 결과를 직접 검토하면서 점차 작업 위임 범위를 넓히는 것이 좋다.

github

아이디어에서 풀 리퀘스트까지 (새 탭에서 열림)

GitHub Copilot CLI는 터미널에서 자연어로 아이디어를 구체화하고, 코드 작성·테스트·수정·Pull Request 생성까지 이어 주는 코딩 에이전트다. 다만 설계와 검토를 대신하는 도구가 아니라, 개발자의 판단 아래 반복 작업과 초기 구현을 빠르게 처리하는 도구로 활용해야 한다. CLI에서 빠르게 시작한 뒤 IDE에서 정교하게 다듬고 GitHub에서 협업·배포하는 흐름이 핵심이다. ## Copilot CLI의 역할과 한계 - 터미널에서 원하는 결과를 자연어로 설명할 수 있다. - `/plan` 또는 `Shift + Tab` planning mode로 작업 계획을 먼저 작성할 수 있다. - 명령어, 파일 변경, diff를 실행 전에 검토할 수 있다. - 사용자의 명시적인 승인 없이는 명령 실행이나 파일 변경을 수행하지 않는다. - 설계 결정과 코드 리뷰를 대체하지 않으며, 생성된 결과는 동료가 작성한 코드처럼 검토해야 한다. ## 의도에서 시작하는 프로젝트 설계 - 처음부터 프레임워크나 템플릿을 고르기보다 만들고 싶은 기능을 먼저 설명한다. - 예시: ```text Create a small web service with a single JSON endpoint and basic tests ``` - `copilot -p "..."`를 사용하면 단일 프롬프트로 제안 내용을 생성할 수 있다. - Copilot CLI는 기술 스택, 파일 구조, 초기화 명령 등을 제안하지만 자동으로 실행하지는 않는다. - 제안 내용을 검토한 뒤 실제 프로젝트 방향으로 채택할 항목을 선택한다. ## 필요한 만큼만 스캐폴딩하기 - 방향이 정해지면 최소한의 프로젝트 구조와 설정 파일을 생성하도록 요청한다. - 예시: ```text Scaffold this as a minimal Node.js project with a test runner and README ``` - 디렉터리, 설정, 테스트 러너, README 등 반복적인 보일러플레이트를 빠르게 만들 수 있다. - 생성된 구조는 일반적인 관례에 기반한 출발점일 뿐이며, 최종 설계로 받아들일 필요는 없다. - 불필요한 파일이나 설정은 직접 수정하거나 삭제해야 한다. ## 실패 지점에서 바로 반복하기 - 테스트를 CLI 내부에서 실행하고 실제 출력 결과를 바탕으로 다음 작업을 요청한다. - 예시: ```text Run all my tests and make sure they pass ``` ```text Why are these tests failing? ``` ```text Fix this test failure and show the diff ``` - `실행 → 결과 확인 → 원인 질문 → diff 검토`의 짧은 반복 주기가 중요하다. - 추상적인 설명보다 실제 테스트 실패나 명령 출력에 근거해 수정하도록 만들 수 있다. - 이해가 필요할 때는 `explain`, 구체적인 수정안을 원할 때는 `suggest`를 활용할 수 있다. ## 저장소 전체의 기계적 변경 - 이름 변경, 반복 패턴 수정, 테스트 갱신처럼 범위가 명확한 작업에 적합하다. - 예시: ```text Rename all instances of X to Y across the repository and update tests ``` - 작업 의도가 명확하고 변경 범위가 제한적이므로 diff 검토와 롤백이 쉽다. - 긴 생성 결과를 읽는 대신 저장소 전체에 적용된 구체적인 변경 내역을 확인할 수 있다. ## CLI에서 IDE로 정교하게 다듬기 - 초기 구현과 반복 작업이 끝나면 IDE로 이동해 코드의 정확성과 설계를 개선한다. - IDE에서는 다음과 같은 작업에 집중한다. - 예외 상황과 엣지 케이스 검토 - API 구조 개선 - 복잡한 비즈니스 로직 결정 - 리뷰에서 설명하고 책임질 설계 선택 - CLI는 낮은 형식 비용으로 빠르게 실제 결과물을 만드는 데 적합하다. - IDE는 코드를 원하는 수준으로 정제하고 장기적으로 유지 가능한 형태로 만드는 데 적합하다. ## 커밋과 Pull Request로 마무리하기 - 변경 사항을 커밋하고 push하는 작업도 자연어로 요청할 수 있다. - 예시: ```text Add and commit all files with applicable descriptive messages, push the changes. ``` - Pull Request를 생성하고 Copilot을 리뷰어로 추가할 수도 있다. - GitHub로 작업을 넘기면 결과물이 다음 단계로 연결된다. - 팀원이 검토할 수 있음 - CI에서 테스트할 수 있음 - 비동기 방식으로 수정·협업할 수 있음 - Copilot의 가치는 단순한 코드 제안보다 커밋, Pull Request, 리뷰까지 이어지는 전체 개발 흐름에서 커진다. ## CLI·IDE·GitHub의 역할 분담 - **CLI:** 아이디어를 빠르게 검증하고, 계획·스캐폴딩·테스트·기계적 변경을 수행한다. - **IDE:** 로직을 정밀하게 다듬고 설계와 엣지 케이스를 결정한다. - **GitHub:** 코드 리뷰, CI, 협업, Pull Request 병합과 배포를 진행한다. Copilot CLI는 개발자의 판단을 대체하기보다, 의도에서 검토 가능한 변경 사항까지 도달하는 시간을 줄이는 도구로 사용하는 것이 가장 효과적이다. generated code와 diff를 항상 직접 확인하고, 정밀한 설계가 필요한 순간에는 IDE와 팀 리뷰로 넘기는 방식을 권장한다.