본문 바로가기
코딩취미/프로그램 지식

[JIRA 필터] JIRA Query Language (JQL) 완벽 가이드: 문법, 구조, 활용법

by 브링블링 2025. 3. 13.
반응형

JIRA Query Language (JQL) 완벽 가이드: 문법, 구조, 활용법

JIRA는 프로젝트 관리와 이슈 추적을 위한 강력한 도구이며, 이를 효과적으로 사용하려면 **JQL (JIRA Query Language)**을 익히는 것이 중요합니다. JQL을 활용하면 특정 조건에 맞는 이슈를 빠르게 검색하고 관리할 수 있습니다.

이번 글에서는 JQL 문법과 구조를 정리하고, 실제 사용 예제를 통해 초급, 중급, 숙련자별 활용 방법을 살펴보겠습니다.


🔹 JQL이란?

JQL(JIRA Query Language)은 JIRA에서 이슈를 검색하기 위한 쿼리 언어입니다. SQL과 유사한 형식으로 작성되며, 특정 조건을 설정하여 원하는 이슈를 필터링할 수 있습니다.

 

JQL을 사용하면 할 수 있는 일

  • 특정 프로젝트의 미해결 이슈만 검색
  • 담당자가 지정되지 않은 백로그 이슈 찾기
  • 최근 7일 동안 업데이트된 이슈만 필터링
  • 특정 키워드가 포함된 이슈 목록 생성
  • 정렬 기준(우선순위, 업데이트 날짜 등) 설정

🔹 JQL 기본 문법 및 구조

JQL의 기본 구조는 다음과 같습니다.

<필드> <연산자> <값> [AND | OR <필드> <연산자> <값>] ORDER BY <정렬 기준> <정렬 방향>

✅ 1. 기본 필드

JIRA에는 여러 가지 필드가 있으며, 필드명을 기준으로 이슈를 검색할 수 있습니다.

필드명 설명 예제
project 프로젝트 이름 project = SWSTD
status 현재 상태 status = "In Progress"
assignee 담당자 assignee = "john_doe"
reporter 이슈 생성자 reporter = currentUser()
priority 우선순위 priority = High
resolution 해결 상태 resolution = Unresolved
summary 이슈 제목(요약) summary ~ "Error"

✅ 2. 연산자

JQL에서 가장 많이 사용되는 연산자는 다음과 같습니다.

연산자 설명 예제
= 값이 일치하는 경우 status = "Done"
!= 값이 일치하지 않는 경우 status != "Done"
> 값이 큰 경우 priority > Medium
< 값이 작은 경우 updated < -7d (최근 7일 전 업데이트된 이슈)
IN 여러 값 중 하나와 일치하는 경우 status IN ("To Do", "In Progress")
NOT IN 여러 값과 일치하지 않는 경우 priority NOT IN ("Low", "Medium")
~ 포함하는 경우 (부분 일치 검색) summary ~ "bug"
ORDER BY 정렬 기준 설정 ORDER BY priority DESC, updated DESC

🔹 JQL 활용 예제: 초급, 중급, 숙련자

✅ 초급자: 기본적인 필터 만들기

JIRA UI에서 **"이슈 검색"**을 클릭하여 필터를 생성할 수도 있지만, 아래와 같은 JQL을 직접 입력하면 더욱 빠르게 원하는 결과를 얻을 수 있습니다.

 

📌 예제 1: 특정 프로젝트에서 해결되지 않은 이슈 검색

project = SWSTD AND resolution = Unresolved
  • SWSTD 프로젝트에서 해결되지 않은 모든 이슈를 검색

📌 예제 2: 특정 담당자의 할당된 작업 목록 검색

assignee = "john_doe" AND status != "Done"
  • john_doe에게 할당된 미완료 이슈 검색
반응형

✅ 중급자: 키워드 검색 및 정렬 적용

JQL을 사용하면 특정 키워드가 포함된 이슈를 검색하고 정렬할 수 있습니다.

 

📌 예제 3: 특정 키워드가 포함된 미해결 이슈 검색

project = SWSTD 
AND (summary ~ "aTouchSens" OR summary ~ "aTouchSense") 
AND resolution = Unresolved
ORDER BY priority DESC, updated DESC
  • 프로젝트 SWSTD에서 summary에 aTouchSens 또는 aTouchSense가 포함된 미해결 이슈 검색
  • 우선순위(priority) 내림차순, 업데이트 날짜(updated) 내림차순 정렬

📌 예제 4: 최근 7일 동안 업데이트된 이슈 찾기

updated >= -7d ORDER BY updated DESC
  • 최근 7일 내 업데이트된 모든 이슈 검색 (최신순 정렬)

✅ 숙련자: 동적 필터, 자동화 및 대시보드 활용

JQL을 활용하여 더 정교한 조건을 설정하고, 자동화 및 대시보드와 연동할 수도 있습니다.

📌 예제 5: 특정 우선순위 이상의 이슈 자동 검색

priority IN (High, Highest) AND status != "Done"
  • 우선순위가 높거나 가장 높은 이슈미완료 상태인 이슈 검색

📌 예제 6: 담당자가 없는 백로그 이슈 찾기

project = SWSTD AND assignee IS EMPTY AND status = "Backlog"
  • SWSTD 프로젝트에서 담당자가 지정되지 않은 백로그 이슈 검색

📌 예제 7: 특정 날짜 범위 내에 생성된 이슈 검색

created >= "2024-01-01" AND created <= "2024-12-31"
  • 2024년 동안 생성된 모든 이슈 검색

🔹 JQL 필터 저장 및 자동화 활용

  1. JQL 실행 후 "검색 저장" 클릭 → 이후에도 해당 필터를 재사용 가능
  2. "구독(Subscription)" 설정 → 특정 필터 결과를 정기적으로 이메일로 받아볼 수 있음
  3. "대시보드 위젯" 추가 → 필터를 대시보드에 추가하여 실시간 모니터링 가능
  4. JIRA 자동화 설정 → 특정 조건이 충족되면 알림을 보내거나, 상태를 변경하는 자동화 작업 실행

🔹 마무리

JQL을 익히면 JIRA에서 원하는 이슈를 빠르게 찾을 수 있으며, 자동화 및 필터링을 통해 업무 효율을 극대화할 수 있습니다.

  • 초급자: UI에서 필터 만들기 → 프로젝트, 상태, 해결 여부 필터링
  • 중급자: JQL을 활용하여 키워드 검색, 정렬, 날짜 필터링 적용
  • 숙련자: 자동화, 필터 구독, 대시보드 연동을 통한 업무 최적화
반응형