요구사항 관리
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요구사항을 사용하면 제품을 검사할 기준을 설정할 수 있습니다. 요구사항은 GitLab의 아티팩트로, 제품의 특정 동작을 설명합니다. 업계 표준에서 애플리케이션에 특정 기능이나 동작이 있어야 한다면 요구사항을 만들어 이를 반영할 수 있습니다.
요구사항을 사용하면 제품을 검사할 기준을 설정할 수 있습니다. 사용자, 이해관계자, 시스템, 소프트웨어 또는 중요하다고 생각하는 모든 것을 기반으로 할 수 있습니다.
요구사항은 GitLab의 아티팩트로, 제품의 특정 동작을 설명합니다. 요구사항은 장기적으로 유지되며 수동으로 지우지 않는 한 사라지지 않습니다.
업계 표준에서 애플리케이션에 특정 기능이나 동작이 있어야 한다면 요구사항을 만들어 이를 반영할 수 있습니다. 기능이 더 이상 필요하지 않으면 관련 요구사항을 보관할 수 있습니다.
개요는 Requirements Management를 참조하세요.
더 자세한 안내는 GitLab Requirements Traceability Walkthrough를 참조하세요.

요구사항 만들기#
히스토리
- GitLab 17.7에서 최소 사용자 역할이 Reporter에서 Planner로 변경됨.
각 프로젝트에서 페이지 매김된 요구사항 목록을 이용할 수 있으며, 거기서 새 요구사항을 만들 수 있습니다.
전제 조건:
- Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.
요구사항을 만들려면:
- 프로젝트에서 Plan > Requirements로 이동합니다.
- New requirement를 선택합니다.
- 제목과 설명을 입력하고 New requirement를 선택합니다.

목록 상단에 새로 만들어진 요구사항이 표시되며, 요구사항 목록은 생성 날짜 기준으로 내림차순으로 정렬됩니다.
요구사항 보기#
목록에서 요구사항을 선택하여 볼 수 있습니다.

요구사항을 보면서 편집하려면 요구사항 제목 옆에 있는 Edit 아이콘(✏️)을 선택합니다.
요구사항 편집#
히스토리
요구사항 목록 페이지에서 요구사항을 편집할 수 있습니다.
전제 조건:
- Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있거나 요구사항의 작성자 또는 담당자여야 합니다.
요구사항을 편집하려면:
- 요구사항 목록에서 Edit 아이콘(✏️)을 선택합니다.
- 텍스트 입력 필드에서 제목과 설명을 업데이트합니다. 편집 양식에서 Satisfied 체크박스를 사용하여 요구사항을 충족됨으로 표시할 수도 있습니다.
- Save changes를 선택합니다.
요구사항 보관#
히스토리
Open 탭에서 열린 요구사항을 보관할 수 있습니다.
전제 조건:
- Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있거나 요구사항의 작성자 또는 담당자여야 합니다.
요구사항을 보관하려면 Archive([archive])를 선택합니다.
요구사항이 보관되면 더 이상 Open 탭에 표시되지 않습니다.
요구사항 다시 열기#
히스토리
Archived 탭에서 보관된 요구사항 목록을 볼 수 있습니다.
전제 조건:
- Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있거나 요구사항의 작성자 또는 담당자여야 합니다.

보관된 요구사항을 다시 열려면 Reopen을 선택합니다.
요구사항이 다시 열리면 더 이상 Archived 탭에 표시되지 않습니다.
요구사항 검색#
다음 기준을 기반으로 요구사항 목록 페이지에서 요구사항을 검색할 수 있습니다:
- 제목
- 작성자 사용자명
- 상태 (충족됨, 실패, 또는 누락)
요구사항을 검색하려면:
- 프로젝트에서 Plan > Requirements > List로 이동합니다.
- Search or filter results 필드를 선택합니다. 드롭다운 목록이 나타납니다.
- 드롭다운 목록에서 요구사항 작성자 또는 상태를 선택하거나 요구사항 제목으로 검색할 일반 텍스트를 입력합니다.
- 키보드에서 Enter를 눌러 목록을 필터링합니다.
다음 기준으로 요구사항 목록을 정렬할 수도 있습니다:
- 생성 날짜
- 업데이트 날짜
CI 작업에서 요구사항 충족 허용#
GitLab은 이제 요구사항 테스트 보고서를 지원합니다. CI 파이프라인에 작업을 추가할 수 있으며, 트리거되면 모든 기존 요구사항을 충족됨으로 표시합니다 (편집 양식에서 수동으로 요구사항을 충족시킬 수도 있습니다. 요구사항 편집 참조).
CI에 수동 작업 추가#
수동 작업이 트리거될 때 요구사항을 충족됨으로 표시하도록 CI를 구성하려면
.gitlab-ci.yml 파일에 아래 코드를 추가합니다.
requirements_confirmation:
when: manual
allow_failure: false
script:
- mkdir tmp
- echo "{\"*\":\"passed\"}" > tmp/requirements.json
artifacts:
reports:
requirements: tmp/requirements.json
이 정의는 수동으로 트리거되는(when: manual) 작업을 CI 파이프라인에 추가합니다.
차단 작업(allow_failure: false)이지만, CI 작업을 트리거하는 조건은 사용자가 결정할 수 있습니다.
또한, CI 작업에서 requirements.json 아티팩트가 생성되고 업로드되는 한,
기존 CI 작업을 사용하여 모든 요구사항을 충족됨으로 표시할 수 있습니다.
이 작업을 수동으로 트리거하면 {"*":"passed"}가 포함된 requirements.json 파일이
아티팩트로 서버에 업로드됩니다. 서버 측에서는 요구사항 보고서에서 "모두 통과" 레코드
({"*":"passed"})를 확인하고, 성공하면 모든 기존 열린 요구사항을 충족됨으로 표시합니다.
개별 요구사항 지정#
개별 요구사항과 그 상태를 지정하는 것이 가능합니다.
다음 요구사항이 있는 경우:
REQ-1(IID1)REQ-2(IID2)REQ-3(IID3)
첫 번째 요구사항은 통과하고 두 번째는 실패했다고 지정할 수 있습니다.
유효한 값은 "passed"와 "failed"입니다.
요구사항 IID를 생략하면(이 경우 REQ-3의 IID 3) 결과가 기록되지 않습니다.
requirements_confirmation:
when: manual
allow_failure: false
script:
- mkdir tmp
- echo "{\"1\":\"passed\", \"2\":\"failed\"}" > tmp/requirements.json
artifacts:
reports:
requirements: tmp/requirements.json
CI에 조건부로 수동 작업 추가#
열린 요구사항이 있을 때만 수동 작업을 포함하도록 CI를 구성하려면
CI_HAS_OPEN_REQUIREMENTS CI/CD 변수를 확인하는 규칙을 추가합니다.
requirements_confirmation:
rules:
- if: '$CI_HAS_OPEN_REQUIREMENTS == "true"'
when: manual
- when: never
allow_failure: false
script:
- mkdir tmp
- echo "{\"*\":\"passed\"}" > tmp/requirements.json
artifacts:
reports:
requirements: tmp/requirements.json
요구사항과 테스트 케이스가
작업 항목으로 마이그레이션되고 있으므로,
프로젝트에서 작업 항목을 활성화한 경우 이전 구성의 requirements를 requirements_v2로 교체해야 합니다:
requirements_v2: tmp/requirements.json
CSV 파일에서 요구사항 가져오기#
히스토리
- GitLab 17.7에서 최소 사용자 역할이 Reporter에서 Planner로 변경됨.
Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.
title과 description 컬럼이 있는 CSV 파일을 업로드하여
프로젝트에 요구사항을 가져올 수 있습니다.
가져오기 후 CSV 파일을 업로드한 사용자가 가져온 요구사항의 작성자로 설정됩니다.
파일 가져오기#
파일을 가져오기 전에:
- 몇 가지 요구사항만 포함된 테스트 파일을 가져오는 것을 고려합니다. GitLab API를 사용하지 않으면 대량 가져오기를 실행 취소할 방법이 없습니다.
- CSV 파일이 파일 형식 요구사항을 충족하는지 확인합니다.
요구사항을 가져오려면:
- 프로젝트에서 Plan > Requirements로 이동합니다.
- 요구사항이 있는 프로젝트의 경우 오른쪽 상단 모서리에서 세로 줄임표(⋮)를 선택한 후 Import requirements([import])를 선택합니다.
- 요구사항이 없는 프로젝트의 경우 페이지 중앙에서 Import CSV를 선택합니다.
- 파일을 선택하고 Import requirements를 선택합니다.
파일이 백그라운드에서 처리되며 가져오기가 완료된 후 이메일 알림이 전송됩니다.
가져온 CSV 파일 형식#
CSV 파일에서 요구사항을 가져올 때 특정 형식이어야 합니다:
- 헤더 행: CSV 파일에는 다음 헤더가 포함되어야 합니다:
title과description. 헤더는 대소문자를 구분하지 않습니다. - 컬럼:
title과description이외의 컬럼 데이터는 가져오지 않습니다. - 구분자: 열 구분자는 헤더 행에서 자동으로 감지됩니다.
지원되는 구분자 문자는 쉼표(
,), 세미콜론(;), 탭(\t)입니다. 행 구분자는CRLF또는LF일 수 있습니다. - 큰따옴표 문자: 큰따옴표(
") 문자는 필드를 인용하는 데 사용되며, 필드에서 열 구분자를 사용할 수 있게 합니다(아래 샘플 CSV 데이터의 세 번째 줄 참조). 인용된 필드에 큰따옴표(")를 삽입하려면 두 개의 큰따옴표 문자를 연속으로 사용합니다(""). - 데이터 행: 헤더 행 아래의 후속 행은 동일한 열 순서를 따라야 합니다. 제목 텍스트는 필수이며, 설명은 선택 사항이고 비워둘 수 있습니다.
샘플 CSV 데이터:
title,description
My Requirement Title,My Requirement Description
Another Title,"A description, with a comma"
"One More Title","One More Description"
파일 크기#
제한은 GitLab 인스턴스의 최대 첨부 파일 크기 구성 값에 따라 다릅니다.
GitLab.com의 경우 10 MB로 설정되어 있습니다.
요구사항을 CSV 파일로 내보내기#
히스토리
- GitLab 17.7에서 최소 사용자 역할이 Reporter에서 Planner로 변경됨.
GitLab 요구사항을 기본 알림 이메일로 첨부 파일로 전송되는 CSV 파일로 내보낼 수 있습니다.
요구사항을 내보내면 팀원들과 함께 다른 도구로 가져오거나 고객과 공유할 수 있습니다. 요구사항 내보내기는 상위 수준 시스템과의 협업뿐만 아니라 감사 및 규정 준수 작업에도 도움이 됩니다.
전제 조건:
- Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.
요구사항을 내보내려면:
-
프로젝트에서 Plan > Requirements로 이동합니다.
-
오른쪽 상단 모서리에서 세로 줄임표(⋮)를 선택한 후 Export as CSV([export])를 선택합니다.
확인 대화 상자가 나타납니다.
-
Advanced export options 아래에서 내보낼 필드를 선택합니다.
기본적으로 모든 필드가 선택됩니다. 내보내기에서 필드를 제외하려면 옆의 체크박스를 지웁니다.
-
Export requirements를 선택합니다. 내보낸 CSV 파일이 사용자와 연결된 이메일 주소로 전송됩니다.
내보낸 CSV 파일 형식#
Microsoft Excel, OpenOffice Calc, Google Sheets와 같은 스프레드시트 편집기에서 내보낸 CSV 파일을 미리 볼 수 있습니다.
내보낸 CSV 파일에는 다음 헤더가 포함됩니다:
- Requirement ID
- Title
- Description
- Author
- Author Username
- Created At (UTC)
- State
- State Updated At (UTC)
