- Redmine
- 4, 5, 6, 7
- 목표
- 독립적인 시계 4개
- 데이터베이스
- PostgreSQL, MySQL, MariaDB, SQLite
- 보고서
- 4종, CSV 내보내기 지원
- 추가 gem
- 없음
- 변경되는 코어 파일
- 없음
제대로 계산하는 업무 시간
분할 근무가 가능한 주간 일정, 캘린더별 시간대, 고정 및 반복 휴일, 특별 근무일. 서머타임 전환에도 현지 시각을 유지하므로 09:00–18:00은 언제나 09:00–18:00입니다.
4개의 독립적인 시계
첫 응답, 접수 확인, 해결, 종료. 각각 고유한 목표, 상태, 일시 중지 동작을 가집니다. 사용하는 항목만 설정하면 됩니다.
고객 응답 대기
상태별 규칙으로 어떤 시계를 멈출지 결정합니다. “고객 응답 대기” 상태에서는 해결 시간을 멈추고 첫 응답 시간은 계속 흐르게 할 수 있습니다. 첫 응답은 여전히 귀사의 몫이기 때문입니다.
알기 쉬운 조건
프로젝트, 유형, 상태, 범주, 담당자, 그룹, 고객 또는 모든 사용자 정의 항목으로 조건을 지정합니다. 레코드 ID가 아닌 실제 이름을 사용합니다.
경고, 심각, 위반
임계값은 기한이 지난 후가 아니라 그 전에 작동합니다. 메일은 Redmine 자체 메일러로 발송되며, 고유 인덱스 기반 처리로 같은 알림이 두 번 발송되는 일이 없습니다.
근거를 제시할 수 있는 준수율
목표별 준수율, 중앙값과 이상값을 포함한 응답 및 해결 시간 분포, 그리고 기한, 실제 일시, 초과 시간을 보여 주는 위반 표를 제공합니다.
팀이 퇴근하면 시계도 멈춥니다
두 타임스탬프를 단순히 빼면 주말까지 시간으로 계산됩니다. Redmine SLA는 업무 캘린더를 따라 실제 업무 시간만 계산하므로, 금요일 늦게 접수된 4시간 목표 일감의 기한은 그날 밤이 아니라 월요일이 됩니다.
| 일감 접수 | 계산된 업무 시간 | 기한 | 실제 경과 시간 |
|---|---|---|---|
| 화요일 09:30 | 4시간, 중단 없음 | 화요일 13:30 | 4시간 |
| 금요일 17:00 | 금요일 1시간, 월요일 3시간 | 월요일 12:00 | 67시간 |
| 금요일 17:00, 월요일 휴일 | 금요일 1시간, 화요일 3시간 | 화요일 12:00 | 91시간 |
| 24×7 캘린더에서 언제든지 | 4시간 경과 | 4시간 후 | 4시간 |
캘린더는 분할 근무, 개별 시간대, 일회성 및 반복 휴일, 특별 근무일을 지원합니다.
각자의 규칙을 가진 4개의 시계
실제로 약속한 목표만 설정하세요. 각 목표는 고유한 이벤트에 따라 시작, 일시 중지, 정지되므로 “고객 응답 대기” 상태에서 해결 시간은 멈추고 첫 응답 시간은 계속 흐르게 할 수 있습니다.
첫 응답: 누군가 답변함
작성자가 아닌 사람이 처음으로 공개 댓글을 달면 정지합니다. 어떤 것을 답변으로 인정할지는 정책별로 설정합니다.
접수 확인: 누군가 맡음
일감에 담당자가 지정되거나 선택한 상태에 도달하면 정지합니다.
해결: 문제가 해결됨
일감이 완료 상태 또는 선택한 해결 상태 중 하나에 도달하면 정지합니다.
종료: 티켓이 마무리됨
먼저 해결하고 나중에 고객과 확인하는 팀을 위해 최종 종료에 대한 별도의 목표를 둡니다.
Redmine처럼 보입니다. 실제로 Redmine이니까요
iframe도, 별도 앱도, 두 번째 로그인도 없습니다. Redmine 7.0에서 실행 중인 플러그인의 실제 화면으로, 모든 SLA 상태의 일감이 있는 데모 프로젝트를 보여 줍니다.
상담원: 모든 일감의 SLA 패널
목표마다 한 줄씩 상태, 남은 시간, 목표 사용 비율, 정확한 기한을 표시합니다.


팀장: 문제가 생기기 직전인 순서로 정렬된 대기열
상태, 건전성, 정책, 위반 여부로 필터링하고 기한순으로 정렬하며 CSV로 내보낼 수 있습니다. 같은 항목이 Redmine 자체 일감 목록에서도 필터와 열로 제공됩니다.
관리자: 고객에게 그대로 보여 줄 수 있는 보고서
준수율, 응답 시간, 해결 시간, 위반을 기간, 정책, 유형, 우선순위로 필터링합니다. 모든 보고서는 CSV로 내보낼 수 있습니다.


시스템 관리자: 알기 쉬운 말로 작성하는 정책
“일감의 우선순위가 긴급, 즉시 중 하나일 때.” 조건은 레코드 ID가 아니라 선택 목록의 실제 이름을 사용합니다. 기간은 30, 4h, 1d 4h 형식으로 입력할 수 있습니다.




운영: 모든 것이 제대로 동작하는지 한곳에서 확인


서비스 데스크에서 실제로 논쟁이 되는 모든 것
분쟁은 티켓이 늦었는지 여부에 관한 것이 아닌 경우가 대부분입니다. 어떤 시간을 계산에 넣었는지, 시계가 언제 멈췄어야 했는지, 당시 목표가 무엇이었는지가 쟁점입니다.
제대로 계산하는 업무 시간
분할 근무가 가능한 주간 일정, 캘린더별 시간대, 고정 및 반복 휴일, 특별 근무일. 서머타임이 바뀌어도 09:00은 09:00으로 유지됩니다.
고객 응답 대기
상태별 일시 중지 규칙을 전역 또는 정책별로 설정합니다. 업무 시간만 돌려주므로 주말 동안 일시 중지해도 손해가 없습니다.
경고, 심각, 위반
임계값은 기한 전에 작동합니다. 각 알림은 Redmine 자체 메일러로 한 번만 발송되며, 템플릿은 이벤트와 언어별로 편집할 수 있습니다.
일감마다 알맞은 정책
프로젝트와 하위 프로젝트, 유형, 우선순위, 상태, 범주, 작성자, 담당자, 그룹 또는 모든 사용자 정의 항목으로 조건을 지정합니다. 여러 정책이 일치하면 순서가 앞선 정책이 적용됩니다.
일감 목록 안에서
SLA 정책, 상태, 건전성, 위반 여부, 기한, 남은 시간을 Redmine 일감 목록의 필터와 열로 제공합니다. 정렬, 그룹화, 내보내기가 가능합니다.
수정해도 과거 기록은 바뀌지 않습니다
모든 SLA는 시작 당시 정책의 스냅샷을 보관합니다. 다음 분기에 목표를 바꿔도 지난 분기의 수치는 그대로입니다. 재계산은 관리자가 의도적으로 실행하는 작업입니다.
일감 하나에 일어나는 일
월요일~금요일 09:00~18:00 캘린더, 첫 응답 목표 30분, 해결 목표 4시간이 적용된 상태에서 금요일 오후에 접수된 심각한 버그의 경우입니다.
| 시점 | 이벤트 | 플러그인의 동작 |
|---|---|---|
| 금 15:00 | 접수 | 처음 일치하는 정책이 적용되고 시계가 시작됩니다. 오늘 남은 업무 시간이 3시간이므로 1시간은 월요일로 넘어갑니다. |
| 금 15:20 | 첫 답변 | 상담원의 공개 댓글로 첫 응답 시계가 20분에 정지합니다. 30분 목표 이내입니다. |
| 금 16:00 | 대기 | 해결 시간이 일시 중지됩니다. 월요일에 고객이 답하면 기한이 잃어버린 업무 시간만큼 정확히 뒤로 미뤄집니다. |
| 월요일 | 75%에서 경고 | 아직 대응할 시간이 있을 때 경고 이메일이 발송됩니다. |
| 월요일 | 해결됨 | 사용한 시간과 목표 달성 여부가 기록되며, 이후 다시 바뀌지 않습니다. |
| 사용률 | 건전성 |
|---|---|
| 75% 미만 | 정상 |
| 75% | 위험 |
| 90% | 심각 |
| 100% | 위반 |
| 보류 | 일시 중지 |
| 목표 달성 | 완료 |
모든 화면에 대응하는 JSON
읽기 전용 JSON API가 화면에 표시되는 모든 내용을 제공합니다. 일반 Redmine API 키로 인증하며 페이지와 동일한 권한을 따릅니다.
| 메서드 | 엔드포인트 | 반환값 |
|---|---|---|
| GET | /sla/issues/:id.json | 일감 하나의 SLA |
| GET | /sla/issues.json | SLA 일감, 필터 가능 |
| GET | /projects/:id/sla/issues.json | 한 프로젝트의 SLA 일감 |
| GET | /sla/timeline/:id.json | 일감 하나의 타임라인 |
| GET | /sla/dashboard.json | 대시보드 카운터 및 준수율 |
| GET | /sla/reports/:report.json | 4가지 보고서 중 하나 |
| GET | /sla/policies.json | 정책 및 목표 |
| GET | /sla/calendars.json | 캘린더 및 근무 시간 |
일감 하나의 SLA 조회
X-Redmine-API-Key 헤더에 키를 담아 보내세요. 응답에는 정책, 캘린더, 전체 건전성, 그리고 목표별 상태, 기한, 사용 시간이 담긴 항목이 포함됩니다. 이를 이용해 상황판 화면에 SLA 카운트다운을 표시하거나 준수율 수치를 자체 보고 시스템에 공급할 수 있습니다.
역할별로 부여하는 6가지 권한
SLA는 표준 Redmine 프로젝트 모듈입니다. 측정할 프로젝트에서 모듈을 켜고 각 역할에 필요한 권한만 부여하세요. Redmine 관리자는 항상 2가지 전역 권한을 가집니다.
| 권한 | 범위 | 허용되는 작업 |
|---|---|---|
| view_sla | 프로젝트 | 일감의 SLA 패널, SLA 일감 목록, 타임라인 보기 |
| view_sla_dashboard | 프로젝트 | SLA 대시보드 보기 |
| view_sla_reports | 프로젝트 | SLA 보고서 보기 및 내보내기 |
| manage_sla | 프로젝트 | 프로젝트의 SLA 설정 편집 및 일감의 SLA 재계산 |
| manage_sla_policies | 전역 | 정책 및 일시 중지 규칙 생성·편집 |
| manage_sla_calendars | 전역 | 캘린더 및 휴일 생성·편집 |
지금 Redmine이 실행되는 곳에서 그대로 실행됩니다
| 환경 | 상태 | 비고 |
|---|---|---|
| Redmine 7.x | 지원 | Redmine 7.0, Rails 8.1, Ruby 3.4.2에서 테스트했습니다. 이 페이지의 스크린샷은 7.0에서 촬영했습니다. |
| Redmine 6.x | 지원 | |
| Redmine 5.x | 지원 | 마이그레이션 후 플러그인 assets 작업 실행 필요 |
| Redmine 4.x | 지원 | 4.0은 플러그인이 명시한 최소 버전입니다 |
| 데이터베이스 | 지원 | PostgreSQL, MySQL, MariaDB, SQLite 지원, 데이터베이스 종속 SQL 없음 |
| 추가 gem | 없음 | Redis도, Sidekiq도 필요 없습니다. cron 항목 또는 systemd 타이머 하나로 백그라운드 점검을 실행합니다. |
| Redmine 코어 | 변경 없음 | 코어 파일을 수정하지 않으므로 Redmine 업그레이드에 영향이 없습니다 |
3단계로 설치
셸 접근 권한과 rake 작업 실행 권한이 필요합니다. 플러그인을 설치하기 전에 항상 백업하세요.
cd /path/to/redmine # the package arrives by email, or from your download link unzip redmine_sla-1.0.0.zip -d plugins/
RAILS_ENV=production bundle exec rake redmine:plugins:migrate # Redmine 4 and 5 only (Redmine 6+ serves plugin assets directly) RAILS_ENV=production bundle exec rake redmine:plugins:assets touch tmp/restart.txt # or systemctl restart redmine
# every five minutes: evaluate timers that are due, safe to run repeatedly */5 * * * * cd /path/to/redmine && RAILS_ENV=production bundle exec rake redmine_sla:process >> log/sla.log 2>&1
# Administration → SLA → create the default business calendars, then follow the checklist # Administration → SLA → Policies → write one policy: targets, calendar, conditions # Project → Settings → Modules → tick SLA for each project you measure # Administration → Roles and permissions → grant the SLA permissions
플러그인이 Redmine 코어 파일을 수정하나요?
정책을 수정하면 기존 SLA는 어떻게 되나요?
Redis, Sidekiq 또는 추가 gem이 필요한가요?
고객이나 프로젝트마다 다른 SLA를 적용할 수 있나요?
설치 전에 있던 일감은 어떻게 되나요?
안전하게 제거할 수 있나요?
스크린샷은 실제 화면인가요?
가격
맞춤 Redmine 솔루션이 필요하신가요?
기존 플러그인에 없는 기능을 찾고 계신가요?
RedmineKit은 맞춤 Redmine 플러그인 개발, 플러그인 커스터마이징, 워크플로 자동화, 타사 시스템 통합 등 비즈니스에 맞춘 솔루션을 제공합니다.
필요한 내용을 알려 주세요. 요구 사항을 검토한 후 예상 비용과 일정을 포함한 적합한 솔루션을 제안해 드립니다.
