github

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

GitHub Copilot CLI는 터미널에서 자연어로 아이디어를 구체화하고, 코드 작성·테스트·수정·Pull Request 생성까지 이어 주는 코딩 에이전트다. 다만 설계와 검토를 대신하는 도구가 아니라, 개발자의 판단 아래 반복 작업과 초기 구현을 빠르게 처리하는 도구로 활용해야 한다. CLI에서 빠르게 시작한 뒤 IDE에서 정교하게 다듬고 GitHub에서 협업·배포하는 흐름이 핵심이다.

Copilot CLI의 역할과 한계

  • 터미널에서 원하는 결과를 자연어로 설명할 수 있다.
  • /plan 또는 Shift + Tab planning mode로 작업 계획을 먼저 작성할 수 있다.
  • 명령어, 파일 변경, diff를 실행 전에 검토할 수 있다.
  • 사용자의 명시적인 승인 없이는 명령 실행이나 파일 변경을 수행하지 않는다.
  • 설계 결정과 코드 리뷰를 대체하지 않으며, 생성된 결과는 동료가 작성한 코드처럼 검토해야 한다.

의도에서 시작하는 프로젝트 설계

  • 처음부터 프레임워크나 템플릿을 고르기보다 만들고 싶은 기능을 먼저 설명한다.
  • 예시:
    Create a small web service with a single JSON endpoint and basic tests
    
  • copilot -p "..."를 사용하면 단일 프롬프트로 제안 내용을 생성할 수 있다.
  • Copilot CLI는 기술 스택, 파일 구조, 초기화 명령 등을 제안하지만 자동으로 실행하지는 않는다.
  • 제안 내용을 검토한 뒤 실제 프로젝트 방향으로 채택할 항목을 선택한다.

필요한 만큼만 스캐폴딩하기

  • 방향이 정해지면 최소한의 프로젝트 구조와 설정 파일을 생성하도록 요청한다.
  • 예시:
    Scaffold this as a minimal Node.js project with a test runner and README
    
  • 디렉터리, 설정, 테스트 러너, README 등 반복적인 보일러플레이트를 빠르게 만들 수 있다.
  • 생성된 구조는 일반적인 관례에 기반한 출발점일 뿐이며, 최종 설계로 받아들일 필요는 없다.
  • 불필요한 파일이나 설정은 직접 수정하거나 삭제해야 한다.

실패 지점에서 바로 반복하기

  • 테스트를 CLI 내부에서 실행하고 실제 출력 결과를 바탕으로 다음 작업을 요청한다.
  • 예시:
    Run all my tests and make sure they pass
    
    Why are these tests failing?
    
    Fix this test failure and show the diff
    
  • 실행 → 결과 확인 → 원인 질문 → diff 검토의 짧은 반복 주기가 중요하다.
  • 추상적인 설명보다 실제 테스트 실패나 명령 출력에 근거해 수정하도록 만들 수 있다.
  • 이해가 필요할 때는 explain, 구체적인 수정안을 원할 때는 suggest를 활용할 수 있다.

저장소 전체의 기계적 변경

  • 이름 변경, 반복 패턴 수정, 테스트 갱신처럼 범위가 명확한 작업에 적합하다.
  • 예시:
    Rename all instances of X to Y across the repository and update tests
    
  • 작업 의도가 명확하고 변경 범위가 제한적이므로 diff 검토와 롤백이 쉽다.
  • 긴 생성 결과를 읽는 대신 저장소 전체에 적용된 구체적인 변경 내역을 확인할 수 있다.

CLI에서 IDE로 정교하게 다듬기

  • 초기 구현과 반복 작업이 끝나면 IDE로 이동해 코드의 정확성과 설계를 개선한다.
  • IDE에서는 다음과 같은 작업에 집중한다.
    • 예외 상황과 엣지 케이스 검토
    • API 구조 개선
    • 복잡한 비즈니스 로직 결정
    • 리뷰에서 설명하고 책임질 설계 선택
  • CLI는 낮은 형식 비용으로 빠르게 실제 결과물을 만드는 데 적합하다.
  • IDE는 코드를 원하는 수준으로 정제하고 장기적으로 유지 가능한 형태로 만드는 데 적합하다.

커밋과 Pull Request로 마무리하기

  • 변경 사항을 커밋하고 push하는 작업도 자연어로 요청할 수 있다.
  • 예시:
    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와 팀 리뷰로 넘기는 방식을 권장한다.