코드 조각

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

GitLab 코드 조각을 사용하면 코드와 텍스트 조각을 저장하고 다른 사용자와 공유할 수 있습니다. 코드 조각에 댓글을 다는, 복제하는버전 관리를 하는 등의 작업을 할 수 있습니다. 코드 조각은 여러 파일을 포함할 수 있습니다. 또한 문법 강조, 임베드, 다운로드를 지원하며, 코드 조각 API를 사용하여 코드 조각을 유지할 수도 있습니다.

GitLab에서는 두 가지 유형의 코드 조각을 제공합니다:

  • 개인 코드 조각: 어떤 프로젝트에도 속해 있지 않은 코드 조각입니다. 코드 조각에 대한 가시성 수준을 설정할 수 있습니다: 공개 또는 비공개입니다.
  • 프로젝트 코드 조각: 특정 프로젝트와 항상 관련된 코드 조각입니다. 프로젝트 코드 조각은 공개적으로 볼 수 있거나 프로젝트 구성원만 볼 수 있습니다.
note
2019년 7월 이후에는 Internal 가시성 설정이 GitLab.com의 새로운 프로젝트, 그룹 및 코드 조각에 대해 비활성화되었습니다. 기존 코드 조각에서 Internal 가시성 설정을 계속 사용할 수 있습니다. 해당 변경 사항에 대해 자세히 알아보려면 해당 이슈를 참조하십시오.

코드 조각 생성

다음과 같은 여러 가지 방법으로 코드 조각을 생성할 수 있습니다. 이 방법은 개인 또는 프로젝트 코드 조각을 생성하느냐에 따라 다릅니다:

  1. 생성할 코드 조각의 유형을 선택합니다:
    • 개인 코드 조각을 만들려면 다음 중 하나를 수행합니다:
    • 프로젝트 코드 조각을 만들려면: 프로젝트 페이지로 이동합니다. 새로 만들기 ()를 선택합니다. 이 프로젝트 내의 하단에서 새 코드 조각을 선택합니다.
  2. 제목에 제목을 추가합니다.
  3. 선택 사항. 설명에 코드 조각을 설명합니다.
  4. 파일에 적절한 이름과 확장자(예: example.rb 또는 index.html)를 지정합니다. 적절한 확장자를 가진 파일 이름은 문법 강조로 표시됩니다. 파일 이름을 제공하지 않으면 알려진 복사 및 붙여넣기 버그가 발생할 수 있습니다. 파일 이름을 제공하지 않으면 GitLab이 이를 대신 생성합니다.
  5. 선택 사항. 코드 조각에 여러 파일을 추가합니다.
  6. 가시성 수준을 선택하고 코드 조각 만들기를 선택합니다.

코드 조각을 생성한 후에도 파일을 추가할 수 있습니다. 코드 조각은 기본적으로 버전 관리됩니다.

코드 조각 찾기

GitLab에서 여러분에게 보이는 모든 코드 조각을 찾으려면 다음을 수행할 수 있습니다:

  • 프로젝트의 코드 조각 보기:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
    2. 코드 > 코드 조각을 선택합니다.
  • 생성한 모든 코드 조각 보기:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택합니다.
    2. 내 작업을 선택합니다.
    3. 코드 조각을 선택합니다.

    GitLab.com에서는 코드 조각에 직접 방문할 수도 있습니다.

  • 모든 공개 코드 조각 탐색:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택합니다.
    2. 탐색을 선택합니다.
    3. 코드 조각을 선택합니다.

    GitLab.com에서는 모든 공개 코드 조각에 직접 방문할 수도 있습니다.

코드 조각의 기본 가시성 변경

프로젝트 코드 조각은 기본적으로 활성화되어 있습니다. 이러한 코드 조각의 기본 가시성을 변경하려면:

  1. 프로젝트에서 설정 > 일반으로 이동합니다.
  2. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 코드 조각으로 스크롤합니다.
  3. 기본 가시성을 토글하고 코드 조각을 모두가 볼 수 있도록 할지 프로젝트 구성원만 볼 수 있도록 할지 선택합니다.
  4. 변경 사항 저장을 선택합니다.

버전 관리된 코드 조각

개인 및 프로젝트 코드 조각은 기본적으로 버전 관리를 사용합니다.

이는 모든 코드 조각이 생성될 때 기본 브랜치에 대한 내재적인 리포지터리를 초기화한다는 의미입니다. 코드 조각을 저장할 때마다 기본 브랜치에 대한 새 커밋이 기록됩니다. 커밋 메시지는 자동으로 생성됩니다. 코드 조각의 리포지터리에는 하나의 브랜치만 있습니다. 이 브랜치를 삭제하거나 다른 브랜치를 만들 수 없습니다.

파일 이름

코드 조각은 파일 이름과 확장자를 기반으로 문법 강조를 지원합니다. 확장자가 지정되지 않고 코드 조각을 제출할 수는 있지만, 파일의 콘텐츠를 작성하기 위해 유효한 이름이 필요합니다.

코드 조각에 지원되는 파일 이름과 확장자가 제공되지 않으면 GitLab은 snippetfile<x>.txt 형식의 파일 이름을 추가합니다. 여기서 <x>는 1부터 시작하는 번호입니다. 더 많은 명명되지 않은 코드 조각이 추가되면 이 번호가 증가합니다.

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에 사용할 수 있습니다.

다중 파일을 지원하는 코드 조각은 코드 조각 디렉터리에 파일 수를 표시합니다:

코드 조각 예시

GitLab의 UI에서 코드 조각을 관리할 수 있습니다(이는 버전 관리되므로), 코드 조각 API를 통해 또는 GitLab의 UI에서 수행할 수 있습니다.

GitLab UI를 통해 코드 조각에 새 파일을 추가하는 방법:

  1. GitLab UI에서 코드 조각으로 이동합니다.
  2. 우측 상단에서 편집을 선택합니다.
  3. 다른 파일 추가를 선택합니다.
  4. 제공된 양식 필드에 콘텐츠를 파일에 추가합니다.
  5. 변경 사항 저장을 선택합니다.

GitLab UI를 통해 코드 조각에서 파일을 삭제하는 방법:

  1. GitLab UI에서 코드 조각으로 이동합니다.
  2. 우측 상단에서 편집을 선택합니다.
  3. 삭제하려는 각 파일 이름 옆의 파일 삭제를 선택합니다.
  4. 변경 사항 저장을 선택합니다.

스니펫 복제

업데이트를 받으려면 로컬로 복사하는 대신 스니펫을 복제합니다. 복제를 통해 스니펫과 리포지터리의 연결을 유지할 수 있습니다.

스니펫을 복제하려면:

  • 복제를 선택한 후, SSH 또는 HTTPS로 복제할 URL을 복사합니다.

스니펫을 복제한 후에 변경 사항을 커밋하고 GitLab에 변경 사항을 푸시할 수 있습니다.

스니펫 임베드

공개 스니펫은 모든 웹사이트에 공유되고 임베드될 수 있습니다. GitLab 스니펫을 여러 곳에서 재사용할 수 있으며 소스의 모든 변경 사항이 임베드된 스니펫에 반영됩니다. 임베드된 경우 사용자는 해당 스니펫을 다운로드하거나 원본 형식으로 볼 수 있습니다.

스니펫을 임베드하려면:

  1. 스니펫이 공개적으로 표시되는지 확인하세요:
    • 프로젝트 스니펫인 경우, 프로젝트가 공개되어 있어야 합니다.
    • 스니펫이 공개적으로 표시됩니다.
    • 프로젝트에서 설정 > 일반으로 이동합니다. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 스니펫으로 스크롤합니다. 스니펫 권한을 모든 사용자에게 접근 가능으로 설정합니다.
  2. 스니펫의 임베드 섹션에서 웹사이트나 블로그 글에 추가할 수 있는 한 줄 스크립트를 복사하기 위해 복사를 선택합니다. 예:

    <script src="https://gitlab.com/namespace/project/snippets/SNIPPET_ID.js"></script>
    
  3. 파일에 스크립트를 추가합니다.

임베드된 스니펫은 다음을 보여주는 헤더를 표시합니다:

  • 파일 이름(정의된 경우).
  • 스니펫 크기.
  • GitLab에 대한 링크.
  • 실제 스니펫 내용.

예시:

스니펫 다운로드

스니펫의 원시 내용을 다운로드할 수 있습니다. 기본적으로 리눅스 스타일의 줄 끝( LF )으로 다운로드됩니다. 원래의 줄 끝을 유지하려면 line_ending=raw 매개변수를 추가해야 합니다 (예: https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw). 스니펫이 GitLab 웹 인터페이스를 사용하여 생성된 경우, 원래의 줄 끝은 윈도우 스타일( CRLF )입니다.

스니펫에 댓글 달기

스니펫으로 코드 조각에 대한 대화에 참여하여 사용자 협업을 촉진할 수 있습니다.

스니펫을 스팸으로 표시

Tier: Free, Premium, Ultimate Offering: Self-Managed, GitLab Dedicated

Self-Managed형 GitLab 인스턴스의 관리자는 스니펫을 스팸으로 표시할 수 있습니다.

필수 조건:

  • 인스턴스의 관리자여야 합니다.
  • 인스턴스에서 Akismet 스팸 방지가 활성화되어 있어야 합니다.

이 작업을 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 코드 > 스니펫을 선택합니다.
  3. 스팸으로 신고하려는 스니펫을 선택합니다.
  4. 스팸으로 제출을 선택합니다.

GitLab은 스팸을 Akismet으로 전달합니다.

문제 해결

스니펫 제한사항

  • 생성할 수 있는 스니펫 수에 제한이 없습니다.
  • 이진 파일은 지원되지 않습니다.
  • 브랜치를 생성하거나 삭제할 수 없습니다. 기본 브랜치만 사용됩니다.
  • 스니펫 리포지터리에서 Git 태그는 지원되지 않습니다.
  • 스니펫 리포지터리는 10개의 파일로 제한됩니다. 10개 이상의 파일을 푸시하려고 하면 오류가 발생합니다.
  • 사용자가 GitLab UI에서 리비전을 볼 수 없지만 해당 이슈가 업데이트를 위해 존재합니다.
  • 2024-04-17을 기준으로 기본 스니펫의 최대 크기는 50MB입니다.
  • Git LFS는 지원되지 않습니다.

스니펫 리포지터리 크기 축소

버전이 있는 스니펫은 네임스페이스 리포지터리 크기의 일부로 간주되기 때문에 스니펫 리포지터리를 최대한 작게 유지하는 것이 좋습니다.

리포지터리 크기 축소 도구에 대한 자세한 정보는 리포지터리 크기를 줄이는 방법 문서를 참조하세요.

스니펫 텍스트 상자에 텍스트를 입력할 수 없음

파일 이름 필드 뒤의 텍스트 영역이 비활성화되어 새 스니펫을 생성하는 것을 방해한다면 다음 해결 방법을 사용하세요:

  1. 스니펫에 제목을 입력합니다.
  2. 파일 더 추가를 선택하려면 파일 필드 아래로 스크롤합니다. GitLab은 두 번째 파일을 추가할 수 있는 필드 집합을 표시합니다.
  3. 두 번째 파일의 파일 이름 필드에는 알려진 복사 및 붙여넣기 버그를 피하기 위해 파일 이름을 입력합니다.
  4. 두 번째 파일의 텍스트 영역에 임의의 문자열을 입력합니다.
  5. 첫 번째 파일의 파일 이름으로 스크롤하고 파일 삭제를 선택합니다.
  6. 나머지 파일을 생성하고 완료되면 스니펫 생성을 선택합니다.

관련 토픽