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 필터 저장 및 자동화 활용
- JQL 실행 후 "검색 저장" 클릭 → 이후에도 해당 필터를 재사용 가능
- "구독(Subscription)" 설정 → 특정 필터 결과를 정기적으로 이메일로 받아볼 수 있음
- "대시보드 위젯" 추가 → 필터를 대시보드에 추가하여 실시간 모니터링 가능
- JIRA 자동화 설정 → 특정 조건이 충족되면 알림을 보내거나, 상태를 변경하는 자동화 작업 실행
🔹 마무리
JQL을 익히면 JIRA에서 원하는 이슈를 빠르게 찾을 수 있으며, 자동화 및 필터링을 통해 업무 효율을 극대화할 수 있습니다.
- 초급자: UI에서 필터 만들기 → 프로젝트, 상태, 해결 여부 필터링
- 중급자: JQL을 활용하여 키워드 검색, 정렬, 날짜 필터링 적용
- 숙련자: 자동화, 필터 구독, 대시보드 연동을 통한 업무 최적화
'코딩취미 > 프로그램 지식' 카테고리의 다른 글
아날로그-디지털 변환기의 INL과 DNL 완전 정복 (0) | 2025.03.28 |
---|---|
JIRA 필터 만들기: 초급자, 중급자, 숙련자 단계별 가이드 (0) | 2025.03.13 |
CSV 파일 크기 문제 해결 방법: 초급, 중급, 고급 단계별 가이드 (0) | 2025.03.13 |
대용량 CSV 데이터를 다루는 방법 총정리 (0) | 2025.03.12 |
소프트웨어별 CSV 최대 줄(Row) 수 제한 : excel, XLSX, Google Sheets, MySQL (0) | 2025.03.12 |