스니펫
Offering: GitLab Self-Managed, GitLab Dedicated
GitLab 스니펫을 사용하면 코드와 텍스트 조각을 저장하고 다른 사용자와 공유할 수 있습니다. 다음을 사용하여 스니펫을 만들고 관리할 수 있습니다: GitLab은 두 가지 유형의 스니펫을 제공합니다: GitLab.com에서는 그룹 Owner가 엔터프라이즈 사용자에 대해 개인 스니펫 생성을 제한할 수 있습니다.
GitLab 스니펫을 사용하면 코드와 텍스트 조각을 저장하고 다른 사용자와 공유할 수 있습니다. 스니펫에서 댓글 달기, 복제, 버전 관리 사용이 가능합니다. 스니펫은 여러 파일을 포함할 수 있습니다. 또한 구문 강조, 임베딩, 다운로드를 지원하며 스니펫 API로 스니펫을 관리할 수 있습니다.
다음을 사용하여 스니펫을 만들고 관리할 수 있습니다:
- GitLab 사용자 인터페이스.
- GitLab VS Code 확장.
glabCLI.

GitLab은 두 가지 유형의 스니펫을 제공합니다:
- 개인 스니펫: 프로젝트와 독립적입니다. 공개 범위를 public 또는 private으로 설정할 수 있습니다.
- 프로젝트 스니펫: 특정 프로젝트와 연결됩니다. 공개 범위를 public 또는 프로젝트 멤버만 볼 수 있도록 설정할 수 있습니다.
GitLab.com에서는 그룹 Owner가 엔터프라이즈 사용자에 대해 개인 스니펫 생성을 제한할 수 있습니다.
스니펫 공개 범위#
프로젝트 스니펫의 경우, 프로젝트의 공개 범위가 항상 스니펫의 공개 범위 설정보다 우선합니다. public으로 표시된 스니펫은 이미 프로젝트에 접근할 수 없는 사람은 접근할 수 없습니다.
| 프로젝트 공개 범위 | public 스니펫에 접근 가능한 사람 | private 스니펫에 접근 가능한 사람 |
|---|---|---|
| Private | 프로젝트 멤버만 | 프로젝트 멤버만 |
| Internal | 인증된 사용자 (외부 사용자 제외) | 프로젝트 멤버만 |
| Public | 모든 사람 | 프로젝트 멤버만 |
GitLab.com에서 Internal 공개 범위 설정은 새 프로젝트, 그룹, 스니펫에 대해 비활성화됩니다.
Internal 공개 범위 설정을 사용하는 기존 스니펫은 이 설정을 유지합니다.
변경 사항에 대한 자세한 내용은 관련 이슈에서 확인하세요.
개인 스니펫의 경우, 스니펫의 공개 범위 설정이 접근을 직접 제어합니다:
- Public: 누구나 인증 없이 스니펫에 접근할 수 있습니다.
- Private: 본인만 스니펫에 접근할 수 있습니다.
스니펫 만들기#
개인 스니펫 또는 프로젝트 스니펫을 만들 것인지에 따라 여러 방법으로 스니펫을 만들 수 있습니다:
- 만들 스니펫 유형을 선택합니다:
- 개인 스니펫을 만들려면 다음 중 하나를 수행합니다:
- 스니펫 대시보드에서 새 스니펫을 선택합니다.
- 프로젝트에서: 왼쪽 사이드바에서 새로 만들기 (+)를 선택합니다. GitLab에서 아래에서 새 스니펫을 선택합니다.
- 다른 페이지에서: 오른쪽 상단 모서리에서 새로 만들기 (+)를 선택한 다음 새 스니펫을 선택합니다.
glabCLI에서glab snippet create명령을 사용합니다. 전체 지침은 명령 문서를 참조하세요.- GitLab VS Code 확장이 설치된 경우
Gitlab: Create snippet명령을 사용합니다.
- 프로젝트 스니펫을 만들려면: 프로젝트 페이지로 이동합니다. 새로 만들기 (+)를 선택합니다. 이 프로젝트에서 아래에서 새 스니펫을 선택합니다.
- 개인 스니펫을 만들려면 다음 중 하나를 수행합니다:
- 제목에 제목을 추가합니다.
- 선택 사항. 설명에 스니펫을 설명합니다.
- 파일에서 파일에
example.rb또는index.html과 같은 적절한 이름과 확장자를 지정합니다. 적절한 확장자가 있는 파일 이름은 구문 강조를 표시합니다. 파일 이름을 추가하지 않으면 알려진 복사-붙여넣기 버그가 발생할 수 있습니다. 파일 이름을 제공하지 않으면 GitLab이 자동으로 이름을 생성합니다. - 선택 사항. 스니펫에 여러 파일을 추가합니다.
- 공개 범위를 선택하고 스니펫 만들기를 선택합니다.
프로젝트 스니펫의 경우, 프로젝트의 공개 범위가 외부 경계 역할을 합니다. 자세한 내용은 스니펫 공개 범위를 참조하세요.
스니펫을 만든 후에도 더 많은 파일을 추가할 수 있습니다. 스니펫은 기본적으로 버전이 지정됩니다.
스니펫 찾기#
GitLab에서 볼 수 있는 모든 스니펫을 찾으려면:
-
프로젝트의 스니펫 보기:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 코드 > 스니펫을 선택합니다.
-
만든 모든 스니펫 보기:
- 상단 표시줄에서 검색 또는 이동을 선택합니다.
- 내 작업을 선택합니다.
- 스니펫을 선택합니다.
GitLab.com에서 스니펫을 직접 방문할 수도 있습니다.
-
모든 public 스니펫 탐색:
- 상단 표시줄에서 검색 또는 이동을 선택합니다.
- 탐색을 선택합니다.
- 스니펫을 선택합니다.
GitLab.com에서 모든 public 스니펫을 직접 방문할 수도 있습니다.
스니펫의 기본 공개 범위 변경#
프로젝트 스니펫은 기본적으로 활성화되어 있습니다. 기본 공개 범위를 변경하려면:
- 프로젝트에서 설정 > 일반으로 이동합니다.
- 공개 범위, 프로젝트 기능, 권한 섹션을 펼치고 스니펫으로 스크롤합니다.
- 기본 공개 범위를 전환하고 스니펫을 모든 사람이 볼 수 있는지 아니면 프로젝트 멤버만 볼 수 있는지 선택합니다.
- 변경 사항 저장을 선택합니다.
버전이 지정된 스니펫#
개인 스니펫과 프로젝트 스니펫 모두 기본적으로 버전 관리를 사용합니다.
즉, 모든 스니펫은 스니펫이 생성될 때 기본 브랜치로 초기화된 자체 기본 리포지터리를 갖게 됩니다. 스니펫에 변경 사항이 저장될 때마다 기본 브랜치에 새 커밋이 기록됩니다. 커밋 메시지는 자동으로 생성됩니다. 스니펫의 리포지터리에는 하나의 브랜치만 있습니다. 이 브랜치를 삭제하거나 다른 브랜치를 만들 수 없습니다.
파일 이름#
스니펫은 제공된 파일 이름과 확장자를 기반으로 구문 강조를 지원합니다. 파일 이름과 확장자 없이 스니펫을 제출할 수 있지만, 리포지터리에서 파일로 콘텐츠를 만들려면 유효한 이름이 필요합니다.
스니펫에 파일 이름과 확장자가 제공되지 않으면
GitLab은 snippetfile<x>.txt 형식으로 파일 이름을 추가합니다.
<x>는 파일에 추가되는 숫자를 나타내며 1부터 시작합니다.
이름 없는 스니펫을 더 추가하면 이 숫자가 증가합니다.
이전 버전의 GitLab에서 GitLab 13.0으로 업그레이드할 때, 지원되는 파일 이름이 없는
기존 스니펫의 이름이 호환되는 형식으로 변경됩니다. 예를 들어 스니펫의 파일 이름이 http://a-weird-filename.me인 경우
스니펫의 리포지터리에 포함될 수 있도록 http-a-weird-filename-me로 변경됩니다.
스니펫은 ID로 저장되므로 파일 이름을 변경하면 스니펫에 대한 직접 또는 임베딩된 링크가 끊어집니다.
여러 파일 추가 또는 제거#
단일 스니펫은 최대 10개의 파일을 지원하여 다음과 같은 관련 파일을 함께 유지하는 데 도움이 됩니다:
- 스크립트와 그 출력을 포함하는 스니펫.
- HTML, CSS, JavaScript 코드를 포함하는 스니펫.
docker-compose.yml파일과 관련.env파일이 있는 스니펫.- 프로젝트를 부트스트랩하고 종속성을 관리하는 데 함께 사용할 수 있는
gulpfile.js파일과package.json파일.
스니펫에 10개 이상의 파일이 필요한 경우, 대신 위키를 만드세요. 위키는 모든 구독 수준의 프로젝트에서 사용 가능하며, GitLab Premium의 경우 그룹에서도 사용 가능합니다.
여러 파일이 있는 스니펫은 스니펫 목록에 파일 수를 표시합니다:

스니펫을 Git으로 관리할 수 있으며 (스니펫은 Git 리포지터리로 버전이 지정되므로), 스니펫 API 및 GitLab UI를 통해서도 관리할 수 있습니다.
GitLab UI를 통해 스니펫에 새 파일을 추가하려면:
- GitLab UI에서 스니펫으로 이동합니다.
- 오른쪽 상단 모서리에서 편집을 선택합니다.
- 다른 파일 추가를 선택합니다.
- 제공된 양식 필드에 파일의 콘텐츠를 추가합니다.
- 변경 사항 저장을 선택합니다.
GitLab UI를 통해 스니펫에서 파일을 삭제하려면:
- GitLab UI에서 스니펫으로 이동합니다.
- 오른쪽 상단 모서리에서 편집을 선택합니다.
- 삭제하려는 각 파일의 파일 이름 옆에서 파일 삭제를 선택합니다.
- 변경 사항 저장을 선택합니다.
스니펫 복제#
업데이트를 받으려면 스니펫을 로컬에 복사하는 대신 복제하세요. 복제를 통해 스니펫과 리포지터리의 연결이 유지됩니다.
스니펫을 복제하려면:
- 복제를 선택한 다음 SSH 또는 HTTPS로 복제하기 위한 URL을 복사합니다.
복제된 스니펫에 변경 사항을 커밋하고 GitLab에 푸시할 수 있습니다.
스니펫 임베딩#
public 스니펫은 모든 웹사이트에 공유하고 임베딩할 수 있습니다. GitLab 스니펫을 여러 곳에서 재사용할 수 있으며, 소스의 변경 사항은 임베딩된 스니펫에 반영됩니다. 임베딩되면 사용자는 스니펫을 다운로드하거나 원시 형식으로 볼 수 있습니다.
스니펫을 임베딩하려면:
-
스니펫이 공개적으로 표시되는지 확인합니다:
- 프로젝트 스니펫의 경우:
- 프로젝트와 스니펫 모두 public이어야 합니다. private 또는 internal 프로젝트의 public 스니펫은 임베딩할 수 없습니다.
- 프로젝트에서 설정 > 일반으로 이동합니다. 공개 범위, 프로젝트 기능, 권한 섹션을 펼치고 스니펫으로 스크롤합니다. 스니펫 권한을 접근 가능한 모든 사람으로 설정합니다.
- 개인 스니펫의 경우:
- 스니펫으로 이동합니다.
- 편집을 선택합니다.
- 공개 범위를 Public으로 설정하고 변경 사항 저장을 선택합니다.
- 프로젝트 스니펫의 경우:
-
스니펫의 임베딩 섹션에서 복사를 선택하여 모든 웹사이트나 블로그 게시물에 추가할 수 있는 한 줄 스크립트를 복사합니다. 예를 들어:
<script src="https://gitlab.com/namespace/project/snippets/SNIPPET_ID.js"></script> -
스크립트를 파일에 추가합니다.
임베딩된 스니펫은 다음을 보여주는 헤더를 표시합니다:
- 파일 이름 (정의된 경우).
- 스니펫 크기.
- GitLab 링크.
- 실제 스니펫 콘텐츠.
예를 들어:
스니펫 다운로드#
스니펫의 원시 콘텐츠를 다운로드할 수 있습니다. 기본적으로 Linux 스타일 줄 끝(LF)으로 다운로드됩니다.
원래 줄 끝을 유지하려면 line_ending=raw 매개 변수를 추가해야 합니다
(예: https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw). GitLab 웹 인터페이스를 사용하여
스니펫을 만든 경우 원래 줄 끝은 Windows 스타일 (CRLF)입니다.
스니펫에 댓글 달기#
스니펫을 통해 해당 코드 조각에 대한 대화에 참여하여 사용자 협업을 장려할 수 있습니다.
스니펫을 스팸으로 표시#
GitLab Self-Managed의 관리자는 스니펫을 스팸으로 표시할 수 있습니다.
사전 요구 사항:
- 인스턴스의 관리자여야 합니다.
- 인스턴스에서 Akismet 스팸 방지가 활성화되어 있어야 합니다.
이 작업을 수행하려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 코드 > 스니펫을 선택합니다.
- 스팸으로 신고할 스니펫을 선택합니다.
- 스팸으로 제출을 선택합니다.
GitLab이 스팸을 Akismet으로 전달합니다.
문제 해결#
스니펫 제한#
- 만들 수 있는 스니펫 수에는 제한이 없습니다.
- 브랜치 생성 또는 삭제는 지원되지 않습니다. 기본 브랜치만 사용됩니다.
- Git 태그는 스니펫 리포지터리에서 지원되지 않습니다.
- 스니펫의 리포지터리는 10개 파일로 제한됩니다. 10개 이상의 파일을 푸시하려고 하면 오류가 발생합니다.
- 개정은 GitLab UI에서 사용자에게 표시되지 않지만 업데이트를 위한 이슈가 있습니다.
- 스니펫의 기본 최대 크기는 현재 (2024-04-17 기준) 50 MB입니다.
- Git LFS는 지원되지 않습니다.
스니펫 리포지터리 크기 줄이기#
버전이 지정된 스니펫은 네임스페이스 스토리지 크기의 일부로 간주되므로, 스니펫의 리포지터리를 가능한 한 컴팩트하게 유지하는 것이 좋습니다.
리포지터리를 컴팩트하게 하는 도구에 대한 자세한 내용은 리포지터리 크기 줄이기 문서를 참조하세요.
스니펫 텍스트 상자에 텍스트를 입력할 수 없음#
파일 이름 필드 뒤의 텍스트 영역이 비활성화되어 새 스니펫을 만들 수 없는 경우, 다음 해결 방법을 사용하세요:
- 스니펫의 제목을 입력합니다.
- 파일 필드의 하단으로 스크롤한 다음 다른 파일 추가를 선택합니다. GitLab이 두 번째 파일을 추가하기 위한 두 번째 필드 세트를 표시합니다.
- 두 번째 파일의 파일 이름 필드에 알려진 복사-붙여넣기 버그를 방지하기 위해 파일 이름을 입력합니다.
- 두 번째 파일의 텍스트 영역에 임의의 문자열을 입력합니다.
- 첫 번째 파일 이름으로 스크롤하여 파일 삭제를 선택합니다.
- 나머지 파일을 만들고 완료되면 스니펫 만들기를 선택합니다.
관련 주제#
- GitLab Self-Managed에서 스니펫 설정 구성
