1. IMS 역할
1-1. IMS(Issue Management System) 란?
- 자사에서 생산되는 제품에 대한 이슈추적(Issue Tracking) 시스템
- 이슈가 발견된 때부터 해결될 때까지의 과정을 기록하고 추적하는 작업을 도와줌
- 이슈 발생시 IMS에 이슈를 등록하면, 등록된 이슈는 여러 부서를 거쳐 검토 및 처리됨
- 이슈 진행상황과 처리 결과 등에 대해 파악하고, 공유할 수 있는 시스템
1-2. 주요 기능
- 이슈 워크플로우 커스터마이징 기능
- 이슈 처리 담당자 관리 및 이슈 상태별 처리 플로우 관리
- 이슈 등록부터 완료까지 모든 과정에 대한 추적 기능
- 이슈 처리 완료시 고객에게 자동 답변 기능
2. IMS 주요 기능
2-1. Issue 프로퍼티
- 이슈 프로퍼티 생성 및 설정 기능
- 이슈의 프로퍼티는 동적으로 만들어지고 삭제됨
- 기존 RDB의 설계로는 프로퍼티를 추가하고 삭제하면 스키마가 변경되기에 운영하기 비현실적
- Entity-Attribute-Value Model을 사용하면 프로퍼티의 변경이 스키마에 영향을 주지 않음
- EAV 모델은 데이터 검색하기 위해 많은 조인 필요하여 성능 문제 일으킬 수 있기 때문에 NoSql이 적합할 수 있음
2-2. 이슈 상태 및 전환 커스터마이징
- 워크플로우 (상태, 전환) 생성
- 이슈 상태 종류를 직접 정의하고, 이슈에 상태를 설정할 수 있음
- 현재 상태에서 다음으로 갈 수 있는 상태를 설정할 수 있음
- 이슈가 생성되면, 설정한 워크플로우에 따라 상태가 변화됨
- 전환 규칙 생성
- 상태 전환 지정시 규칙을 설정할 수 있음
- 규칙 종류
- 권한 제한 : 사용자의 권한을 확인해서 특정한 사용자만 상태 전환 할 수 있도록 강제하는 규칙
→ ex. OPEN에서 ASSIGNED 상태로 변경하는 전환은 접수팀만 가능
- 상태 제한 : 특정 상태에서만 전환 할 수 있도록 강제하는 규칙
→ ex. OPEN 상태에서는 ASSIGNED와 REJECTED 2가지 상태로만 갈 수 있음
- 프로퍼티 제한 : 프로퍼티가 특정 값인 경우에만 전환 할 수 있도록 강제하는 규칙
→ ex. OPEN 상태에서 ASSIGNED로 전환하기 위해서는 배정자가 지정되어야지만 가능
- 프로퍼티 업데이트 : 상태가 변경될 경우, 특정 프로퍼티의 값을 자동으로 변경하는 규칙
→ ex. Close 상태가 되면, 이슈가 종료된 시점이 자동으로 등록됨
2-3. 권한 관리
- 프로젝트 관리 권한 제한 (마스터, 부마스터, 운영진, 사원 등)
- 전환 규칙에는 권한 제한 규칙이 존재함
- 역할 기반 접근 제어(Role Based Access Control, RBAC) 활용 예정
- 사용자가 아닌 사용자가 속해있는 역할에 따라 접근 권한을 결정함
- 역할에 따라 액세스 권한을 부여하고 관리함
- User, Group, Role, RoleBiding 개념 사용하여 권한 관리 수행