깃허브 코파일럿(GitHub Copilot) CLI, C++ 코드 인텔리전스 기능으로 더욱 강력해지다!
마이크로소프트(Microsoft)는 깃허브 코파일럿 CLI(GitHub Copilot CLI)에 C++ 언어 서버(C++ Language Server)를 미리보기(Preview)로 출시
Visual Studio 및 VS Code와 동일한 인텔리센스(IntelliSense) 엔진을 사용하여, 정확한 C++ 코드 인텔리전스(Code Intelligence)를 제공
기존 텍스트 검색 방식의 한계를 극복하고, 심볼 정의(Symbol Definitions), 참조(References), 호출 계층 구조(Call Hierarchies) 등 의미 기반의 데이터 제공
CMake 프로젝트의 경우, 컴파일 명령(Compile Commands) 자동 생성을 지원하며, MSBuild 지원은 향후 출시 예정
C++ 언어 서버(Language Server)의 핵심 기능
본문에 따르면 C++ 언어 서버(Language Server)는 깃허브 코파일럿(GitHub Copilot)에 정확한 의미 정보(Semantic Data)를 제공하여 코드 이해 능력을 향상시킨다.
심볼 정의(Symbol Definitions), 참조(References), 호출 계층 구조(Call Hierarchies) 등 정교한 코드 분석(Code Analysis) 지원
텍스트 기반 검색(Text-based Search)의 한계 극복: 복잡한 include 구조, 매크로(Macros), 템플릿(Templates) 등 C++ 특성 고려
워크스페이스 심볼 검색(Workspace Symbol Search) 및 정의로 이동(Go-to-definition) 기능으로 관련 코드(Relevant Code) 직접 탐색
결과적으로, C++ 개발 생산성(C++ Development Productivity) 향상에 기여할 것으로 예상된다.
기존 방식(Grep)과의 차이점
글에 따르면 기존 깃허브 코파일럿(GitHub Copilot)은 텍스트 기반 검색(Text-based Search)을 사용했으나, C++ 언어 서버(Language Server) 도입으로 정확성(Accuracy)과 효율성(Efficiency)을 개선했다.
텍스트 검색(Text Search)의 문제점: 복잡한 C++ 코드 구조로 인해 무관한 결과(Irrelevant Results) 반환 가능성
언어 서버(Language Server)의 장점: 의미 기반 분석으로 정확한 코드 정보(Precise Code Information) 제공
예시: 정의로 이동(Go-to-definition) 기능을 통해 관련 코드(Relevant Code) 직접 접근 가능
결론적으로, C++ 언어 서버(Language Server)는 깃허브 코파일럿(GitHub Copilot)의 C++ 코드 이해 능력(C++ Code Understanding)을 획기적으로 향상시킨다.
MSBuild 프로젝트 지원 계획
본문에서는 MSBuild 사용자를 위해 컴파일 명령(Compile Commands) 생성 지원 계획을 언급하며, 현재는 CMake 프로젝트(CMake Projects)를 우선 지원한다.
MSBuild 지원 계획: 샘플 애플리케이션(Sample Application)을 통해 compile_commands.json 추출 지원
CMake 프로젝트 지원: 깃허브 레포지토리(GitHub Repository)에서 자동 설정 스크립트(Automatic Setup Script) 제공
향후 계획: MSBuild 통합 지원을 통해 더 많은 C++ 프로젝트(More C++ Projects) 지원 예정
결과적으로, 다양한 빌드 시스템(Build Systems)을 지원하여 C++ 개발 환경(C++ Development Environment) 전반의 편의성(Convenience)을 높일 것으로 기대된다.
C++ LSP 사용을 위한 팁
글에서는 깃허브 코파일럿(GitHub Copilot)의 C++ 언어 서버(C++ Language Server)를 최대한 활용하기 위한 팁을 제공한다.
쿼리(Queries)에 "Use the C++ LSP" 추가: C++ LSP 사용을 명시적으로 지시하여 정확한 결과 유도
사용자 정의 지침 파일(Custom Instructions File) 생성: C++ LSP를 우선 사용하도록 설정
피드백 채널: 문제 발생 시 깃허브 레포지토리(GitHub Repository)에 이슈(Issue)를 제보
결론적으로, 개발자는 위 팁들을 통해 깃허브 코파일럿(GitHub Copilot)의 C++ 코드 인텔리전스(Code Intelligence) 기능을 최대한 활용(Maximize Utilization)할 수 있다.