Jira, 프로젝트 관리 도구가 튜링 완전하다는 사실!

by DD
1주 전
조회수 4

Jira 자동화 기능이 튜링 완전(Turing-complete) 하다는 것을 증명하는 논문이 공개됨

Minsky Machine을 Jira 자동화 규칙으로 구현하여 증명함

이슈(Issue) 연결 개수를 레지스터로, 워크플로우 상태를 프로그램 카운터로 활용

커뮤니티에서는 'kill it with fire!' 와 같은 반응을 보이며, 복잡성에 대한 우려를 표명

Minsky Machine 구현 및 튜링 완전성 증명

본 논문은 Jira 자동화 기능을 활용하여 Minsky Machine을 구현함으로써 Jira의 튜링 완전성(Turing-completeness)을 증명했다. 구체적으로, 이슈 연결 개수(Linked Issue Count)를 레지스터로, 워크플로우 상태(Workflow Status)를 프로그램 카운터로 매핑하여, INC, DEC, GOTO 연산을 Jira 자동화 규칙으로 표현했다. 이를 통해 Jira가 이론적으로 모든 계산을 수행할 수 있음을 입증했다.

Jira 자동화의 기술적 구현

기술적으로, Bug, Task, Epic과 같은 Jira 이슈 유형을 활용하여 Minsky Machine의 레지스터를 구현했다. 이슈 생성 및 삭제(Issue Creation and Deletion)를 통해 INC 및 DEC 연산을, JQL 조건(JQL Condition)을 사용하여 조건 분기를 구현했다. 또한, 'Allow rule to trigger other rules' 설정을 통해 규칙 간의 연쇄적인 실행을 가능하게 하여 복잡한 계산을 수행할 수 있도록 했다.

Fibonacci 수열 구현과 Convert Issue Type 활용

저자는 Jira 자동화 기능을 활용하여 Fibonacci 수열을 구현하는 방법을 제시했다. 특히, Convert Issue Type 기능을 활용하여 DEC와 INC 연산을 원자적으로 결합함으로써, 상태 전이(State Transition)를 단순화했다. 이는 Jira 자동화 규칙의 복잡성을 줄이고, 보다 효율적인 프로그램을 작성할 수 있게 해준다. 하지만, Jira Cloud의 체인 깊이 제한(Chain-depth Cap)으로 인해 수동적인 재실행이 필요하다는 단점이 존재한다.

Jira Data Center 환경에서의 튜링 완전성

Jira Cloud 환경뿐만 아니라, Jira Data Center 환경에서도 동일한 자동화 기능을 사용할 수 있다. Data Center는 automation.rule.execution.timeout과 같은 설정을 통해 규칙 실행 시간을 제어할 수 있으며, 이는 복잡한 자동화 규칙의 실행을 관리하는 데 유용하다. 이러한 기능을 통해 Jira Data Center 환경에서도 튜링 완전성을 유지할 수 있다.

Jira IS Turing-complete