시간 추적
GitLab v19.5Offering: GitLab Self-Managed, GitLab Dedicated
요약
시간 추적은 GitLab 작업 항목에 투입한 시간을 기록하고 관리하는 데 도움이 됩니다. 시간 추적 정보는 작업 항목의 오른쪽 사이드바에서 확인할 수 있습니다. 시간 추적 데이터는 빠른 동작이나 사용자 인터페이스로 입력하고 제거합니다.
히스토리
시간 추적은 GitLab 작업 항목에 투입한 시간을 기록하고 관리하는 데 도움이 됩니다. 시간 추적의 기능은 다음과 같습니다.
- 이슈, 머지 리퀘스트, 에픽, 태스크에 실제로 쓴 시간을 기록합니다.
- 완료까지 필요한 총 시간을 예상합니다.
- 시간 기록의 상세 보고서를 제공합니다.
- 표준화된 시간 단위로 합계를 계산합니다.
- 빠른 동작과 UI를 통해 이력을 추적합니다.
시간 추적 정보는 작업 항목의 오른쪽 사이드바에서 확인할 수 있습니다.
![]()
시간 추적 데이터는 빠른 동작이나 사용자 인터페이스로 입력하고 제거합니다. 빠른 동작은 각각 별도의 줄에 입력합니다. 하나의 댓글에서 같은 빠른 동작을 여러 번 사용하면 마지막 항목만 적용됩니다.
권한#
보유한 권한에 따라 사용할 수 있는 시간 추적 기능이 다릅니다.
- 예상 시간을 추가·편집·제거하려면 이슈와 태스크에서는 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가, 머지 리퀘스트에서는 Developer 권한이 필요합니다.
- 소요 시간을 추가하고 편집하려면 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 필요합니다.
- 시간 기록을 삭제하려면 해당 기록의 작성자이거나 Maintainer 또는 Owner 권한이 있어야 합니다.
예상 시간#
예상 시간은 항목을 완료하는 데 필요한 총 시간을 보여 주기 위한 값입니다.
오른쪽 사이드바의 시간 추적 정보 위에 마우스를 올리면 남은 예상 시간을 확인할 수 있습니다.

예상 시간 추가#
사전 요구 사항:
- 이슈에서는 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
- 태스크에서는 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
- 머지 리퀘스트에서는 프로젝트에 대한 Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
예상 시간을 입력하려면 /estimate 빠른 동작을 사용하고 뒤에 시간을 적습니다.
예를 들어 1개월 2주 3일 4시간 5분을 예상 시간으로 입력하려면
/estimate 1mo 2w 3d 4h 5m을 입력합니다.
사용할 수 있는 시간 단위를 확인합니다.
한 항목에는 예상 시간을 하나만 지정할 수 있습니다. 새 예상 시간을 입력할 때마다 이전 값을 덮어씁니다.
예상 시간 제거#
사전 요구 사항:
- 이슈에서는 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
- 태스크에서는 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
- 머지 리퀘스트에서는 프로젝트에 대한 Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
예상 시간을 완전히 제거하려면 /remove_estimate 빠른 동작을 사용합니다.
소요 시간#
작업을 진행하면서 사용한 시간을 기록할 수 있습니다.
새로 입력한 소요 시간은 해당 이슈, 태스크, 머지 리퀘스트의 현재 총 소요 시간에 더해집니다.
이슈, 태스크, 머지 리퀘스트의 총 소요 시간은 4년을 초과할 수 없습니다.
소요 시간 추가#
사전 요구 사항:
- 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
사용자 인터페이스 사용#
히스토리
- GitLab 17.0에서 변경되었습니다. 시간을 사용한 시점을 지정하지 않으면 현재 시각이 사용됩니다.
사용자 인터페이스로 시간 기록을 추가하려면 다음 단계를 수행합니다.
-
사이드바의 Time tracking 섹션에서 Add time entry (+)를 선택합니다. 대화 상자가 열립니다.
-
다음 항목을 입력합니다.
- 소요 시간
- 선택 사항. 시간을 사용한 시점. 비워 두면 현재 시각이 사용됩니다.
- 선택 사항. 요약
-
Save를 선택합니다.
사이드바의 Spent 합계가 갱신되며, 모든 기록은 시간 추적 보고서에서 확인할 수 있습니다.
빠른 동작 사용#
소요 시간을 입력하려면 /spend 빠른 동작을 사용하고 뒤에 시간을 적습니다.
예를 들어 1개월 2주 3일 4시간 5분을 기록하려면
/spend 1mo 2w 3d 4h 5m을 입력합니다.
사용할 수 있는 시간 단위를 확인합니다.
메모가 포함된 시간 추적 보고서 항목을 추가하려면 설명과 빠른 동작을 함께 적어 댓글을 작성합니다. 그러면 시간 추적 보고서의 Summary/Notes 칼럼에 표시됩니다. 예시는 다음과 같습니다.
Draft MR and respond to initial comments
/spend 30m
시간을 사용한 시점을 기록하려면 시간 뒤에 YYYY-MM-DD 형식으로 날짜를 입력합니다.
예를 들어 2021년 1월 31일에 사용한 1시간을 기록하려면
/spend 1h 2021-01-31을 입력합니다.
미래 날짜를 입력하면 시간이 기록되지 않습니다.
커밋 메시지 사용#
히스토리
커밋 메시지에서 곧바로 이슈의 소요 시간을 기록할 수 있습니다. 이 방식을 사용하면 이슈를 따로 수정하지 않고 작업하면서 시간을 추적할 수 있습니다.
커밋 메시지에 소요 시간을 추가하려면 이슈 참조와 함께 @<time> 형식의 시간 추적 마커를 적되, 시간 단위 사이에 공백을 넣지 않습니다.
예시는 다음과 같습니다.
Fix a bug in the login form #123 @1mo2d3h15m
이 커밋 메시지는 이슈 #123에 1개월 2일 3시간 15분의 소요 시간을 추가합니다.
시간 추적 마커는 다음 조건을 충족해야 합니다.
@기호로 시작합니다.- 바로 뒤에 시간 단위를 공백 없이 이어서 적습니다.
- 월(
mo), 일(d), 시간(h), 분(m), 초(s) 단위를 지원합니다. - 일반 시간 추적과 동일한 시간 단위를 사용합니다.
시간 추적 정보가 담긴 커밋을 푸시하면 다음 과정이 진행됩니다.
- GitLab 이 커밋 메시지에서 소요 시간을 추출합니다.
- 같은 커밋 메시지에서 참조한 이슈에 해당 시간이 추가됩니다.
- 커밋에서 시간이 추가되었음을 알리는 시스템 메모가 이슈에 추가됩니다.
- 시간 추적 항목의 설명에 커밋 SHA와 제목이 포함됩니다.
커밋 작성자 권한#
커밋 작성자가 해당 이슈를 수정할 권한이 있는 경우에만 커밋 메시지의 시간이 이슈에 추가됩니다.
- 커밋 작성자는 이슈가 있는 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
- 작성자에게 충분한 권한이 없으면 해당 커밋의 시간 추적 정보는 무시됩니다.
- 권한 확인에는 일반 시간 추적과 동일한 규칙이 적용됩니다.
알려진 문제#
한 커밋에 여러 시간 값이 있는 경우
커밋 메시지가 서로 다른 시간 값으로 여러 이슈를 참조하면, 참조된 모든 이슈에 첫 번째 시간 값만 적용됩니다.
예를 들어 다음 커밋 메시지를 살펴봅니다.
Fixes #41 @1h30m and fixes #40 @2h
이 메시지는 이슈 #41과 이슈 #40 양쪽에 1h30m을 추가합니다. 두 번째 시간 값(@2h)은 무시됩니다.
커밋 SHA 변경으로 인한 중복 시간 기록
커밋의 SHA가 변경되면(예: 리베이스나 어멘드 이후) GitLab은 시간 추적에서 이를 새 커밋으로 간주합니다. 원래 커밋과 새 커밋이 모두 이슈에서 참조되면 시간 기록이 중복될 수 있습니다.
커밋 SHA가 변경될 수 있는 상황에서 시간 기록 중복을 피하려면 다음과 같이 대응합니다.
- 커밋 메시지 대신 UI 나 빠른 동작으로 이슈에 직접 시간을 추가합니다.
- 시간 추적에 커밋 메시지를 사용해야 한다면, 브랜치 히스토리가 확정된 뒤에만 시간을 추가합니다.
- 머지하기 전에 이슈의 시간 추적 보고서를 확인해 중복 가능성이 있는 기록을 찾아 제거합니다.
머지 리퀘스트에서 중복 시간 추적 방지#
시간 추적 정보가 담긴 커밋이 포함된 머지 리퀘스트를 머지할 때, GitLab은 시간이 중복 추적되지 않도록 다음과 같이 처리합니다.
- 같은 커밋 메시지가 리포지터리 히스토리에 여러 번 나타나더라도 커밋당 한 번만 시간을 추적합니다.
- GitLab은 같은 커밋 제목과 ID를 가진 시간 기록이 이슈에 이미 있는지 확인해 중복 추적을 방지합니다.
- 커밋이 머지될 때는 시간이 추가로 추적되지 않습니다. 이를 통해 기능 브랜치가 기본 브랜치로 머지될 때 시간이 이중으로 집계되지 않습니다.
소요 시간 빼기#
사전 요구 사항:
- 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
시간을 빼려면 음수 값을 입력합니다. 예를 들어 /spend -3d는 총 소요 시간에서
3일을 뺍니다. 소요 시간은 0분 미만이 될 수 없으므로,
이미 입력된 시간보다 더 많은 시간을 빼면 GitLab 이 해당 차감을 무시합니다.
소요 시간 삭제#
타임로그는 양수 또는 음수로 기록된 소요 시간 한 건을 가리킵니다.
사전 요구 사항:
- 해당 타임로그의 작성자이거나 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
타임로그를 삭제하려면 다음 중 하나를 수행합니다.
- 시간 추적 보고서에서 타임로그 항목 오른쪽의 Delete time spent ([remove])를 선택합니다.
- GraphQL API를 사용합니다.
모든 소요 시간 삭제#
사전 요구 사항:
- 프로젝트에 대한 Planner, Reporter, Developer, Maintainer, Owner 권한 중 하나가 있어야 합니다.
모든 소요 시간을 한 번에 삭제하려면 /remove_time_spent 빠른 동작을 사용합니다.
항목의 시간 추적 보고서 보기#
항목에 사용한 시간의 시간 추적 보고서를 보려면 다음 단계를 수행합니다.
- 오른쪽 사이드바에서 Spent 옆의 시간을 선택합니다.
![]()
표시되는 소요 시간 상세 내역은 최대 100건으로 제한됩니다.
전체 시간 추적 보고서#
히스토리
- GitLab 15.11에서
global_time_tracking_report라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 16.5에서 GitLab.com에 활성화되었습니다.
GitLab Self-Managed에서는 기본적으로 이 기능을 사용할 수 없습니다. 사용하려면 관리자가 global_time_tracking_report라는 기능 플래그를 활성화하면 됩니다.
GitLab.com에서는 이 기능을 사용할 수 있습니다. GitLab Dedicated에서는 사용할 수 없습니다.
이 기능은 운영 환경에서 사용할 준비가 되지 않았습니다.
GitLab 전체의 이슈, 태스크, 머지 리퀘스트에 사용한 시간 보고서를 확인합니다.
이 기능은 실험 기능입니다. 버그를 발견하면 피드백 이슈에 추가합니다.
전체 시간 추적 보고서를 보려면 다음 단계를 수행합니다.
- 브라우저에서 전체 보고서의 URL을 입력합니다.
- GitLab Self-Managed에서는 기본 URL 뒤에
/-/timelogs를 붙입니다. 예를 들어https://gitlab.example.com/-/timelogs입니다. - GitLab.com에서는 https://gitlab.com/-/timelogs로 이동합니다.
- GitLab Self-Managed에서는 기본 URL 뒤에
- 선택 사항. 특정 사용자로 필터링하려면
@기호 없이 사용자 이름을 입력합니다. - 시작 날짜와 종료 날짜를 선택합니다.
- Run report를 선택합니다.

사용 가능한 시간 단위#
다음 시간 단위를 사용할 수 있습니다.
| 시간 단위 | 입력할 내용 | 환산율 |
|---|---|---|
| 월 | mo, month, 또는 months |
4주 (160시간) |
| 주 | w, week, 또는 weeks |
5일 (40시간) |
| 일 | d, day, 또는 days |
8시간 |
| 시간 | h, hour, 또는 hours |
60분 |
| 분 | m, minute, 또는 minutes |
표시 단위를 시간으로 제한#
GitLab 관리자는 시간 단위 표시를 시간 단위로만 제한할 수 있습니다. 방법은 다음과 같습니다.
- 오른쪽 위에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Settings > Preferences를 선택합니다.
- Localization을 확장합니다.
- Time tracking에서 Limit display of time tracking units to hours 체크박스를 선택합니다.
- Save changes를 선택합니다.
이 옵션을 켜면 1w 4d 3h 대신 75h가 표시됩니다.
관련 주제#
- 시간 추적 GraphQL 참조: