JQL이란 무엇인가?
JQL(Jira Query Language)은 Atlassian Jira에서 이슈를 검색하고 관리할 수 있게 해주는 고유한 쿼리 언어입니다. Jira를 사용하는 기업과 팀은 다양한 프로젝트와 이슈를 동시에 관리해야 하는데, JQL은 이러한 데이터를 효과적으로 필터링하고 분석할 수 있는 도구입니다. JQL을 통해 간단한 조건부터 복잡한 쿼리까지 원하는 형태로 이슈를 검색할 수 있으며, 이슈 추적, 관리, 보고서 생성 등의 업무에 매우 유용합니다.
JQL은 SQL과 비슷하지만, Jira에 특화된 언어로, 사용자 인터페이스에서 사용할 수 있으며, 프로젝트 관리자나 개발자가 필요에 따라 쉽게 적용할 수 있습니다.
JQL의 기본 구조
JQL은 필드, 연산자, 값의 조합으로 이루어집니다. 기본적인 구조는 다음과 같습니다: Field, Operator, Value
아래 예시는 My Project라는 프로젝트에 속해 있고, 진행 중 상태이며, dan에게 할당된 모든 이슈를 검색합니다. JQL은 이처럼 직관적인 문법을 제공해 복잡한 검색 조건도 간단하게 표현할 수 있습니다.
예시
project = "My Project"
status = "In Progress"
assignee = dan
JQL의 주요 필드와 연산자
JQL을 사용하려면 필드와 연산자에 대해 알아야 합니다. 필드는 이슈의 특정 속성을 의미하며, 연산자는 해당 필드와 비교할 값을 정의합니다.
주요 필드:
- project: 프로젝트 이름 또는 ID
- issuetype: 이슈의 타입 (버그, 태스크, 서브태스크 등)
- status: 이슈의 현재 상태 (열림, 진행 중, 종료 등)
- priority: 이슈의 우선순위 (높음, 중간, 낮음 등)
- assignee: 담당자
- reporter: 이슈를 보고한 사람
주요 연산자:
- = (같음): 해당 필드가 특정 값과 동일할 때 사용
- != (다름): 해당 필드가 특정 값과 다를 때 사용
- >: 숫자나 날짜가 특정 값보다 클 때 사용
- <: 숫자나 날짜가 특정 값보다 작을 때 사용
주요 키워드:
- AND: 해당 필드 모두 허용하는 경우 사용
- OR: 해당 필드 중 하나를 허용하는 경우 사용
- IN: 여러 값 중 하나와 일치할 때 사용
- NOT IN: 여러 값 중 일치하지 않을 때 사용
아래 예시는 Website Redesign 프로젝트에서 열림 상태에 있으며, 우선순위가 높음 또는 위급인 이슈를 검색합니다.
예시
project = "Website Redesign" AND status = "Open" AND priority IN ("High", "Critical")
JQL을 사용한 실전 예시
다양한 조건을 결합해 원하는 데이터를 얻는 것이 JQL의 핵심입니다. 아래는 실전에서 자주 사용하는 JQL 쿼리의 예시입니다.
특정 사용자가 할당된 모든 이슈 검색
assignee = dan
지난 7일 동안 생성된 이슈 검색
created >= -7d
특정 스프린트에 속한 모든 이슈 검색
sprint = "Sprint 42"
완료되지 않은 모든 이슈 검색
status != "Done"
특정 날짜 이전에 마감된 이슈 검색
duedate < "2024-01-01"
고급 JQL 기능 예시
JQL은 기본적인 검색 기능을 넘어 더 복잡한 조건을 처리할 수 있는 고급 기능도 제공합니다.
1) 함수 사용
JQL에서는 내장된 함수를 사용하여 특정 패턴의 이슈를 검색할 수 있습니다. 대표적인 함수는 다음과 같습니다.
https://support.atlassian.com/jira-software-cloud/docs/jql-functions/
currentUser(): 현재 사용자를 기준으로 이슈 검색
assignee = currentUser()
startOfDay(), endOfDay(): 특정 기간 내 이슈 검색
created >= startOfDay(-30) AND created <= endOfDay()
memberOf(): 특정 그룹에 속한 사용자를 기준으로 이슈 검색
assignee IN membersOf("developers")
2) 서브쿼리 사용
서브쿼리를 사용하면 쿼리 안에 또 다른 쿼리를 넣어 더 정교한 검색을 수행할 수 있습니다.
Backend 프로젝트에서 상태가 In Progress이며, 담당자가 backend-team 그룹에 속한 이슈 검색
project = "Backend" AND status = "In Progress" AND assignee IN (membersOf("backend-team"))
JQL은 Jira 사용자에게 필수적인 도구로, 이슈를 더 효율적으로 관리하고 팀의 생산성을 향상시킬 수 있습니다. 기본적인 문법만 이해하더라도 상당히 유용한 검색을 수행할 수 있으며, 고급 기능을 활용하면 복잡한 요구사항도 쉽게 해결할 수 있습니다.
JQL을 통해 Jira 사용 경험을 크게 개선할 수 있으므로, 이 도구를 완벽히 활용해 보다 체계적인 프로젝트 관리를 실현해 보세요.
'System Engineering' 카테고리의 다른 글
시스템 엔지니어링: 기본 원칙, 개념 원리 (1) | 2024.09.15 |
---|---|
시스템 엔지니어링: 역사와 도전 (Brief History of System Engineering and Challenge) (2) | 2024.09.15 |
LLM : Llama 3.1 차세대 소픈소스 AI 모델의 시대를 열다 (0) | 2024.08.15 |
생성형 AI : RAG (Retrieval-Argumented Generation), LLM 문제점과 RAG에 대한 나만의 정리 (0) | 2024.08.15 |
2024년 산업기술 동향: 생성형 AI, 반도체, 자율주행 그리고 정책 변화 (0) | 2024.08.13 |