요구사항 관리
GitLab v19.5Offering: 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 아이콘(✏️)을 선택합니다.
요구사항 편집#
히스토리
- GitLab 17.7에서 최소 사용자 역할이 Reporter에서 Planner로 변경되었습니다.
요구사항 목록 페이지에서 요구사항을 편집할 수 있습니다.
사전 요구 사항:
- Planner, Reporter, Developer, Maintainer 또는 Owner 권한이 있거나 해당 요구사항의 작성자 또는 담당자여야 합니다.
요구사항을 편집하려면 다음 단계를 수행합니다:
- 요구사항 목록에서 Edit 아이콘(✏️)을 선택합니다.
- 텍스트 입력 필드에서 제목과 설명을 업데이트합니다. 편집 양식에서 Satisfied 체크박스를 사용하여 요구사항을 충족됨으로 표시할 수도 있습니다.
- Save changes를 선택합니다.
요구사항 보관#
히스토리
- GitLab 17.7에서 최소 사용자 역할이 Reporter에서 Planner로 변경되었습니다.
Open 탭에 있는 동안 열린 요구사항을 보관할 수 있습니다.
사전 요구 사항:
- Planner, Reporter, Developer, Maintainer 또는 Owner 권한이 있거나 해당 요구사항의 작성자 또는 담당자여야 합니다.
요구사항을 보관하려면 Archive([archive])를 선택합니다.
요구사항이 보관되면 곧바로 Open 탭에 표시되지 않습니다.
요구사항 다시 열기#
히스토리
- GitLab 17.7에서 최소 사용자 역할이 Reporter에서 Planner로 변경되었습니다.
Archived 탭에서 보관된 요구사항 목록을 볼 수 있습니다.
사전 요구 사항:
- Planner, Reporter, Developer, Maintainer 또는 Owner 권한이 있거나 해당 요구사항의 작성자 또는 담당자여야 합니다.

보관된 요구사항을 다시 열려면 Reopen을 선택합니다.
요구사항이 다시 열리면 곧바로 Archived 탭에 표시되지 않습니다.
요구사항 검색#
요구사항 목록 페이지에서 다음 기준으로 요구사항을 검색할 수 있습니다:
- 제목
- 작성자 사용자명
- 상태(충족됨, 실패 또는 누락)
요구사항을 검색하려면 다음 단계를 수행합니다:
- 프로젝트에서 Plan > Requirements > List로 이동합니다.
- Search or filter results 필드를 선택합니다. 드롭다운 목록이 나타납니다.
- 드롭다운 목록에서 요구사항 작성자나 상태를 선택하거나, 요구사항 제목으로 검색할 일반 텍스트를 입력합니다.
- 키보드에서 Enter를 눌러 목록을 필터링합니다.
요구사항 목록은 다음 기준으로 정렬할 수도 있습니다:
- 생성 날짜
- 업데이트 날짜
CI job에서 요구사항 충족 허용#
GitLab은 이제 요구사항 테스트 보고서를 지원합니다. CI 파이프라인에 job을 추가하면, 해당 job 이 트리거될 때 기존 요구사항이 모두 충족됨으로 표시됩니다(편집 양식에서 요구사항을 수동으로 충족시킬 수도 있습니다. 요구사항 편집 참고).
CI에 수동 job 추가#
수동 job 이 트리거될 때 요구사항을 충족됨으로 표시하도록 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) job을 CI 파이프라인에
추가합니다. 이 job은 차단 방식(allow_failure: false)이지만, CI job을 트리거하는
조건은 사용자가 정할 수 있습니다. 또한 CI job 이 requirements.json
아티팩트를 생성해 업로드하기만 하면, 기존 CI job을 사용해
요구사항을 모두 충족됨으로 표시할 수 있습니다.
이 job을 수동으로 트리거하면 {"*":"passed"}가 담긴 requirements.json
파일이 아티팩트로 서버에 업로드됩니다. 서버 측에서는 요구사항 보고서에서
"all passed" 레코드({"*":"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에 수동 job 조건부 추가#
열린 요구사항이 있을 때만 수동 job을 포함하도록 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 인스턴스의 Max Attachment Size 구성 값에 따라 달라집니다.
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)