홈으로 돌아가기

Redmine 5.1의 SLA: 플러그인 선택 및 사용자 지정 | 가이드

Redmine 5.1용 SLA 플러그인 호환성 분석. 버전 비호환 및 기능 부족으로 현제한 솔루션 없음 확인. 세 가지 구현 옵션 제안: 상용 솔루션, 기존 플러그인 수정, 맞춤 개발.

현제한 플러그인 없이 Redmine 5.1에 SLA 구현하는 방법? 실전 가이드
Advertisement 728x90

# Redmine 5.1의 SLA: 작동하지 않는 플러그인 분석과 커스터마이징 경로

작업 관리에서 자동화된 지표가 없으면 관리자들이 마감일을 수동으로 모니터링해야 하며, 이는 오류와 효율 저하를 초래합니다. Redmine 5.1을 사용하는 회사들에게 SLA(Service Level Agreement, 서비스 수준 계약) 구현은 매우 중요합니다. 그러나 플러그인 중에서 즉시 사용할 수 있는 솔루션을 찾던 중 심각한 호환성과 기능 문제를 발견했습니다.

Docker를 사용한 테스트 환경 설정

프로덕션 시스템을 위험에 빠뜨리지 않고 안전하게 플러그인을 테스트하기 위해 Docker를 사용해 격리된 테스트 환경을 배포했습니다. 구성에는 Redmine과 PostgreSQL을 위한 별도의 컨테이너, 고정된 Redmine 5.1 버전, 그리고 localhost를 통한 액세스만 포함되었습니다. 핵심 해결책은 파일과 플러그인에 대한 로컬 디렉토리를 매핑하는 것으로, 매번 변경 시 이미지를 다시 빌드하지 않아도 되었습니다.

예제 docker-compose.yml 구성:

Google AdInline article slot
services:
   postgres:
     image: postgres:16
     volumes:
       - db_data:/var/lib/postgresql/data
     environment:
       POSTGRES_USER: "redmine"
       POSTGRES_PASSWORD: "password"
       POSTGRES_DB: "redmine"
       PGDATA: "/var/lib/postgresql/data"
     restart: always
   redmine:
     image: redmine:5.1
     ports:
       - 80:3000
     volumes:
       - ./local-files:/usr/src/redmine/files
       - ./local-plugins:/usr/src/redmine/plugins
     depends_on:
       - postgres
     environment:
       REDMINE_DB_POSTGRES: "postgres"
       REDMINE_DB_USERNAME: "redmine"
       REDMINE_DB_PASSWORD: "password"
       REDMINE_DB_DATABASE: "redmine"
     restart: no
     

volumes:
  redmine_data:
  db_data:  

환경은 docker-compose up -d 명령으로 실행되었습니다. 성공적으로 시작된 후(오류가 발생하지 않음), 작성자는 웹 인터페이스에 로그인(login: admin, password: admin)하여 테스트 데이터를 준비했습니다: 트래커, 프로젝트, 이슈. 플러그인 설치 전에 Docker Desktop의 볼륨 내보내기를 통해 데이터베이스 백업을 생성했습니다.

플러그인 테스트 방법론

충돌을 배제하기 위해 각 플러그인을 개별적으로 테스트했습니다. 프로세스는 세 단계로 구성되었습니다:

  • 플러그인 폴더를 호스트 머신의 ./local-plugins 디렉토리에 복사.
  • Redmine 컨테이너 내부에서 bundle install을 통해 종속성 설치.
  • 필요 시 rake redmine:plugins:migrate 명령으로 마이그레이션 실행.

종속성 설치 중에 일반적인 문제가 발생했습니다. 예를 들어 누락된 gem:

Google AdInline article slot
Could not find gem 'business_time (>= 0.13.0)'
Could not find gem 'holidays (>= 7.1.0)'

해결책은 누락된 구성 요소를 수동으로 설치하는 것이었습니다:

gem install business_time
gem install holidays

이 단계는 테스트한 대부분의 솔루션에 필수적이었습니다.

Redmine 5.1과의 플러그인 호환성 분석

SLA 제어 기능을 충족하는 여덟 개의 플러그인을 테스트했습니다. 솔루션의 주요 요구사항:

Google AdInline article slot
  • 이슈에 대한 응답 시간 모니터링.
  • 이슈 완전 해결 시간 모니터링.
  • 지정된 매개변수로 이슈 필터링 가능.

테스트 결과:

  • reporting_sla (마지막 업데이트 18.11.2025): Rails/Redmine 버전과 호환되지 않음. 깊은 수정 필요.
  • likehopper/redmine_sla (12.02.2026): PostgreSQL에서만 작동하나 테스트 환경에서 Oracle을 사용. DB로 로직을 오프로드하여 높은 성능.
  • redmine_issue_sla (29.01.2018): Redmine 3.x용 구버전 플러그인, 5.1 버전에서 시작되지 않음.
  • redmine_sla_timer (12.07.2020): 설명 없음, 현재 버전과 호환되지 않음.
  • redmine_sla_ola (12.07.2020): 유일하게 작동하는 옵션, 하지만 추가 설정 필요—커스텀 필드 productsfirst_reply 추가.
  • agile (03.12.2025): 프로젝트 관리 작업 처리하나 SLA 기능 없음.
  • RedmineUP Helpdesk: 지원 포함 상용 솔루션, 하지만 모든 시나리오 커버하지 않고 예산 필요.

SLA 구현 권장사항

옵션을 분석한 결과 Redmine 5.1용 즉시 사용 가능한 "즉시 사용" 솔루션은 발견되지 않았습니다. 조직은 앞으로 세 가지 경로를 선택할 수 있습니다:

  • 상용 솔루션 구매 (예: RedmineUP). 장점: 지원, 정기 업데이트. 단점: 보안 정책 제한, 특정 요구사항 불일치.
  • 기존 플러그인 수정 (redmine_sla_ola). 장점: 핵심 기능 이미 구현. 단점: 프로세스에 맞게 커스터마이징 필요, Redmine 업데이트 시 위험.
  • 커스텀 플러그인 개발. 장점: 비즈니스 프로세스에 정확히 맞춤, 불필요한 기능 없음. 단점: 시간 투자 (데모 버전 기준 3-5일 추정).

SLA 프로세스가 엄격하게 규정된 조직에서 자동화를 무시하면 마감일 누락이 더 많아집니다. 구현 경로를 선택할 때 현재 비용뿐만 아니라 TCO(Total Cost of Ownership, 총 소유 비용)도 고려하세요. 상용 솔루션은 연간 라이선스 비용이 발생할 수 있지만, 커스터마이징은 최소한의 지속 비용으로 한 번에 문제를 해결합니다.

주요 교훈

  • 버전 호환성이 핵심: 대부분의 플러그인이 Redmine 5.1용으로 업데이트되지 않아 수정 없이는 작동하지 않음.
  • 추가 설정 필수: "작동하는" 플러그인조차도 커스터마이징(예: 필드 추가) 필요, 노력 증가.
  • Docker 필수: 격리된 환경에서의 테스트가 프로덕션 시스템 손상을 방지하고 롤백을 가속화.
  • Gem 종속성 문제 흔함: 비즈니스 로직 gem(business_time, holidays) 누락으로 수동 설치 필요, 프로세스 복잡화.
  • 커스터마이징 vs. 상용 솔루션: 제한된 예산과 명확한 요구사항 시 자체 플러그인 개발이 장기적으로 자원 절감.

— Editorial Team

Advertisement 728x90

다음 읽기