시맨틱 코드 검색
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed
요약
관리자 문서는 시맨틱 코드 검색 관리를 참고합니다. 시맨틱 코드 검색을 사용하면 키워드 일치가 아니라 의미를 기준으로 리포지터리에서 관련 코드 스니펫을 찾을 수 있습니다. 시맨틱 코드 검색은 코드베이스를 벡터 데이터베이스에 저장되는 벡터 임베딩으로 변환합니다.
관리자 문서는 시맨틱 코드 검색 관리를 참고합니다.
시맨틱 코드 검색을 사용하면 키워드 일치가 아니라 의미를 기준으로 리포지터리에서 관련 코드 스니펫을 찾을 수 있습니다.
시맨틱 코드 검색은 코드베이스를 벡터 데이터베이스에 저장되는 벡터 임베딩으로 변환합니다. 검색하면 쿼리가 임베딩으로 변환되고 코드 임베딩과 비교되어 의미가 유사한 결과를 찾습니다. 이 방식은 키워드가 일치하지 않는 경우에도 관련 코드를 찾아냅니다.
사전 요구 사항#
- GitLab Self-Managed에서는 인스턴스에 대해 시맨틱 코드 검색이 켜져 있어야 합니다. GitLab.com에서는 시맨틱 코드 검색이 기본적으로 켜져 있습니다.
- 베타 및 실험 기능이 켜져 있어야 합니다.
- GitLab.com에서는 최상위 그룹에 대해 켭니다.
- GitLab Self-Managed에서는 인스턴스에 대해 켭니다.
- 프로젝트에 대해 GitLab Duo가 켜져 있어야 합니다.
시맨틱 코드 검색 사용#
시맨틱 코드 검색은 여러 인터페이스로 사용할 수 있습니다.
- REST API:
GET /api/v4/projects/:id/search/semantic엔드포인트를 사용하여 코드베이스를 프로그래밍 방식으로 검색합니다. - MCP 서버 도구: 에이전트 워크플로에서
semantic_code_search도구를 사용합니다. - CLI: 명령줄에서 접근하려면
glab search semantic명령을 사용합니다.
임시 초기 인덱싱#
GitLab 프로젝트에서 시맨틱 코드 검색을 처음 사용하면 다음과 같이 동작합니다.
- 리포지터리 코드가 인덱싱되어 벡터 임베딩으로 변환됩니다.
- 이 임베딩은 구성된 벡터 스토어에 저장됩니다.
- 코드가 기본 브랜치에 푸시되면 업데이트가 점진적으로 처리됩니다.
대규모 리포지터리에서는 초기 인덱싱에 시간이 걸릴 수 있습니다.