Cody
Cody (Sourcegraph)
Cody는 Sourcegraph가 만든 AI 코딩 어시스턴트예요. 최신 LLM과 여러분의 개발 컨텍스트를 활용해서 코드를 더 빨리 이해하고, 작성하고, 수정하도록 도와줘요. VS Code, JetBrains, Visual Studio, 그리고 Sourcegraph 웹 앱에서 사용할 수 있어요.
Cody의 핵심은 코드베이스 컨텍스트예요. Sourcegraph의 강력한 Search API를 이용해서 로컬 코드베이스와 원격 코드베이스에서 모두 컨텍스트를 가져와요. 그래서 API, 심볼, 사용 패턴 같은 정보를 여러분의 전체 코드베이스에서 활용할 수 있어요. GitHub, GitLab 같은 코드 호스트와 VS Code, JetBrains, Visual Studio 같은 IDE에 연결하면, Cody가 개인 AI 코딩 어시스턴트 역할을 해요. 주요 기능은 다음과 같아요.
- 가장 강력한 모델과 컨텍스트를 갖춘 개발자 채팅
- 코드 자동완성, 코드 수정, 커스터마이즈 가능한 프롬프트
- 더 정확한 결과를 위한 광범위한 컨텍스트
출처: 문서
본문
주요 기능
| 기능 | 설명 |
|---|---|
| Auto-edit | 커서 이동과 타이핑을 분석해서 코드 변경을 제안해요. 코드베이스에서 한 글자 이상 수정을 하면, 커서 위치와 최근 변경 사항을 바탕으로 상황에 맞는 수정안을 제안하기 시작해요. |
| Prompts | 미리 만들어 둔 프롬프트와 커스터마이즈 프롬프트로 작업 흐름의 핵심 작업을 자동화해요. 자주 쓰는 질문이나 작업을 프롬프트로 만들어서 팀과 공유할 수 있어요. |
| Context | 채팅을 지원하는 최고의 LLM 모델과 컨텍스트를 제공해요. Sourcegraph의 고급 Search API를 사용해서 로컬과 원격 코드베이스에서 모두 컨텍스트를 가져와요. |
| Debug code | 코드의 오류를 찾고 수정하는 데 최적화되어 있어요. 디버깅 능력과 자동완성 제안이 디버깅 과정을 크게 가속화해서 개발자 생산성을 높여줘요. |
| Context Filters | 채팅과 자동완성 결과에서 특정 저장소를 무시하도록 설정할 수 있어요. 코드베이스가 어떤 컨텍스트를 사용할지 제어하고 관리하는 데 도움이 돼요. |
Cody는 Code Search 같은 Sourcegraph의 다른 제품과도 호환돼요. 검색 쿼리를 실행해서 저장소나 파일을 열면 Cody 버튼이 보이는데, 이 버튼을 누르면 Cody 채팅 인터페이스로 이동해서 코드베이스에 대해 질문할 수 있어요.
설치하기 (VS Code)
VS Code에서 Cody 확장 프로그램을 설치하는 방법이에요. 확장 프로그램은 VS Code 마켓플레이스에서 직접 설치하거나, 다음 단계를 따라 VS Code 안에서 설치할 수 있어요.
- VS Code 편집기를 연다
- Activity Bar의 Extensions 아이콘을 클릭하거나 단축키
Cmd+Shift+X(macOS) /Ctrl+Shift+X(Windows/Linux)를 누른다 - 검색창에 Cody AI를 입력하고 Install 버튼을 클릭한다
- 설치 후 확장 프로그램을 활성화하려면 VS Code를 다시 로드하라는 메시지가 나올 수 있다
설치가 끝나면 사이드바에 Cody 아이콘이 생겨요. Sourcegraph Enterprise 사용자는 Sign In to Your Enterprise Instance를 클릭해서 Enterprise 인스턴스에 연결하면 돼요.
채팅으로 시작하기 (Quickstart)
확장 프로그램을 설치하고 Sourcegraph에 연결한 뒤, VS Code 사이드 Activity Bar에서 Cody 아이콘을 클릭하면 Cody 채팅 패널이 열려요. 기본적으로 채팅 입력은 전체 코드베이스를 컨텍스트로 사용하고, 기본 채팅 모델은 Claude 3.5 Sonnet이에요. 모델과 컨텍스트는 사용 목적에 따라 바꿀 수 있어요.
Cody와 채팅으로 코드에 대해 질문할 수 있어요. 간단한 질문부터 시작해 보세요.
- What does this code do?
- Explain this codebase in three to four lines
혹은 더 복잡한 질문도 할 수 있어요.
- Suggest ways to refactor the codebase?
- How can I make this code more performant?
Cody는 코드 스니펫, 수정 제안, 설명 같은 형태로 응답해요.
자동완성 예시
Cody의 동작을 확인하기 위해 숫자 배열을 정렬하는 함수를 만들어 보는 예시예요. code.js 파일을 새로 만들고 다음과 같이 코드를 입력하세요.
JS function bubbleSort ( array ) {}
입력을 시작하면 Cody가 코딩 패턴과 코드 컨텍스트를 바탕으로 자동완성 제안을 해줘요. 자동완성 제안은 회색 텍스트로 표시되고, 제안을 적용하려면 Tab 키를 누르면 돼요.
유용한 키보드 단축키
Opt+L(macOS) /Alt+L(Windows/Linux): 채팅 화면과 마지막 활성 텍스트 에디터 사이를 전환해요. 텍스트 편집기에서 선택 영역이 있을 때 사용하면 선택한 코드를 채팅에 컨텍스트로 추가해요.Shift+Opt+L(macOS) /Shift+Alt+L(Windows/Linux): 새 채팅 세션을 즉시 시작해요.Opt+K(macOS) /Alt+K(Windows/Linux): Edit Code 지시 상자를 열어요. 선택한 코드나 커서 위치의 코드로 수정이나 개선을 요청할 수 있어요.Opt+C(macOS) /Alt+C(Windows/Linux): Cody Commands 메뉴를 열어요.Cmd+.(macOS) /Ctrl+.(Windows/Linux): 현재 컨텍스트를 기반으로 Cody가 코드를 수정하거나 생성하는 Quick Fix 메뉴를 열어요.
컨텍스트 선택 (@-mentions)
Cody 채팅에서는 @-mentions로 메시지에 파일과 심볼을 컨텍스트로 추가할 수 있어요.
@file다음에 파일 이름을 입력하면 파일을 컨텍스트로 포함해요@#다음에 심볼 이름을 입력하면 심볼의 정의를 컨텍스트로 포함해요. 함수, 메서드, 클래스, 타입 등이 모두 심볼이에요
대형 파일에서는 줄 번호 범위를 지정할 수도 있어요. 예를 들어 @filepath/filename:1-10처럼 파일 이름 뒤에 숫자 범위를 붙이면 돼요.