본문으로 건너뛰기
중급약 25분

Jira 실전 ①: 프로젝트·업무 항목·필드 구조 이해하기

버튼 위치가 아니라 구조를 익힌다. 프로젝트 유형 선택부터 업무 항목 계층, 그리고 결함 리포트 품질을 강제하는 필드 3층 구조까지 실무 기준으로 다룬다.

  • #Jira
  • #업무항목
  • #이슈유형
  • #필드구성
  • #프로젝트설정

개념

먼저 알아둘 용어 변화 — 이슈가 업무 항목이 되었다

Jira를 오랜만에 열었거나 자료를 검색해 본 사람은 용어가 어긋나서 당황할 수 있다. Atlassian이 Jira Cloud의 UI 용어를 "이슈(issue)"에서 "업무 항목(work item)"으로 바꿨기 때문이다. 플랜별로 순차 적용됐고, 지금 화면에서는 "이슈 만들기" 대신 "만들기", "이슈"라는 단어 대신 "업무 항목" 또는 "작업"이 보인다.

중요한 것은 바뀐 것이 표시 용어뿐 이라는 점이다.

예전 표현지금
화면 용어이슈(Issue)업무 항목(Work item)
JQLissuetype = Bug그대로 동작(하위 호환 유지)
REST API/rest/api/3/issue/...그대로
URL·키QA-123그대로
워크플로·필드·권한동작 변화 없음

그래서 이 레슨은 화면 설명에는 '업무 항목'을, JQL·API 문맥에서는 'issue'를 쓴다. 실무에서도 팀원마다 두 단어를 섞어 쓰게 되는데, 같은 것을 가리킨다 는 사실만 알면 혼선은 없다. 자료를 검색할 때 2025년 이전 글은 전부 "이슈"로 쓰여 있으니 참고하면 된다.

모듈 6(레슨 4)에서 "도구는 다르지만 개념은 같다"고 배웠다. 여기에 한 줄 더한다 — 같은 도구 안에서도 이름은 바뀐다. 개념을 붙잡아야 오래 간다.

프로젝트는 무엇을 담는 그릇인가

Jira에서 프로젝트 는 업무 항목이 담기는 그릇이자, 워크플로·필드· 권한 설정이 적용되는 단위다. QA가 프로젝트를 직접 만들 일은 많지 않지만, 프로젝트가 어떻게 설정돼 있느냐가 우리 일의 상당 부분을 결정한다. 결함에 어떤 필드를 넣을 수 있는지, 어떤 상태로 옮길 수 있는지, 누가 볼 수 있는지가 전부 프로젝트 설정에서 나온다.

프로젝트를 만들 때 정하는 것은 크게 셋이다.

1) 템플릿 — 스크럼이냐 칸반이냐

칸반스크럼
작업 단위흐름(연속적)스프린트(1~4주 반복)
계획 방식우선순위 큐에서 당겨 씀스프린트 시작 시 범위 확정
대표 지표리드 타임, WIP벨로시티, 번다운
QA에게 주는 차이언제든 새 작업이 들어옴 → 회귀 범위가 유동적범위가 고정 → 테스트 계획을 세우기 쉬움
잘 맞는 팀운영·유지보수·서비스 데스크기능 개발 팀

모듈 7(레슨 4)에서 배운 방법론 차이가 도구 설정으로 나타나는 지점이다. QA 입장에서 실질적인 차이는 마지막 줄에 있다 — 칸반 팀에서는 "이번에 무엇을 테스트해야 하는가"가 계속 변한다.

2) 프로젝트 유형 — 팀 관리형이냐 회사 관리형이냐

이 선택이 나중에 가장 많은 영향을 준다.

팀에서 관리(Team-managed)회사에서 관리(Company-managed)
설정 주체팀이 직접Jira 관리자
설정 공유프로젝트마다 독립여러 프로젝트가 스키마를 공유
워크플로 편집제한적자유롭게 편집
권한 체계액세스 레벨 중심(단순)세밀한 권한 스키마
시작 속도빠름느림(관리자 협의 필요)
적합한 규모소규모·단일 팀여러 팀·표준화가 필요한 조직

QA가 알아둬야 할 실무 포인트 두 가지.

  • 회사 관리형에서는 한 프로젝트의 설정 변경이 같은 스키마를 쓰는 다른 프로젝트에 영향을 준다. "결함 필드 하나 추가해주세요"가 간단한 요청이 아닌 이유다.
  • 팀 관리형 → 회사 관리형 전환은 간단한 작업이 아니다. 나중에 전사 표준화가 예상된다면 처음부터 회사 관리형으로 시작하는 편이 낫다.

3) 액세스 수준

수준누가 볼 수 있나무엇을 할 수 있나
비공개(Private)관리자 + 명시적으로 추가된 사람검색·디렉터리에도 노출되지 않음
제한(Limited)로그인한 모든 사용자보기·댓글만 가능(생성·편집 불가)
공개(Open)로그인한 모든 사용자보기·생성·편집 가능

보안 검증이나 취약점 이슈를 다루는 프로젝트라면 비공개가 기본이다. 모듈 23에서 다루는 보안 테스트 결과를 전사 공개 프로젝트에 그대로 올리는 것은 그 자체로 사고다.

업무 항목의 계층 구조

Jira는 작업을 계층으로 관리한다. 기본 계층은 이렇다.

   [상위 플랜에서 추가 가능]
   Initiative / 전략 목표          ← 여러 에픽을 묶는 상위 레벨
        │                            (Premium 이상의 플랜 기능)
   ┌────▼─────────────────────────────────────┐
   │ Epic  (에픽)                              │  큰 기능·프로젝트 단위
   └────┬─────────────────────────────────────┘
   ┌────▼──────────┬──────────────┬───────────┐
   │ Story (스토리) │ Task (작업)   │ Bug (버그) │  표준 레벨
   └────┬──────────┴──────────────┴───────────┘
   ┌────▼─────────────────────────────────────┐
   │ Sub-task (하위 작업)                       │  더 잘게 쪼갠 단위
   └──────────────────────────────────────────┘

각 유형의 성격은 이렇게 구분된다.

  • Epic — 여러 스토리로 쪼개지는 큰 기능 단위. "결제 수단 확대"
  • Story — 사용자 관점에서 정의된 요구사항. "사용자는 카카오페이로 결제할 수 있다". 모듈 2에서 배운 사용자 스토리가 여기에 들어온다
  • Task — 사용자 가치로 표현되지 않는 작업. "결제 모듈 라이브러리 업그레이드"
  • Bug — 결함. QA가 가장 많이 만드는 유형
  • Sub-task — 위 항목들을 더 쪼갠 단위
  • Initiative 같은 에픽 위 계층은 플랜에 따라 제공 여부가 다르다. 기본 계층은 Epic 아래라고 기억하고, 상위 계층이 보인다면 그 조직이 상위 플랜에서 계층을 추가한 것이다

QA는 무엇을 어디에 등록하는가. 실무에서 자주 헷갈리는 지점이라 기준을 정리해둔다.

상황등록 위치
기능이 명세대로 동작하지 않음Bug
명세 자체가 잘못됨·모호함Story에 댓글 + 필요시 별도 Task(문서 수정)
테스트 케이스 작성·회귀 수행 같은 QA 작업Task(스프린트에 넣어 가시화)
결함이 아니지만 개선하면 좋은 것Improvement(있다면) 또는 Task
큰 결함이 여러 화면에 걸쳐 있음Bug 하나 + Sub-task로 화면별 분리

세 번째 줄을 강조하고 싶다. QA 작업을 Jira에 등록하지 않으면 그 일은 조직에서 보이지 않는다. 스프린트 회고에서 "QA가 병목"이라는 말이 나오는데 정작 QA의 작업량은 아무 데도 기록돼 있지 않은 상황이 흔하다. 테스트 설계·환경 구축·회귀 수행을 Task로 올리는 것만으로도 논의의 근거가 생긴다.

업무 항목을 만드는 세 가지 경로

같은 결과를 만드는 세 경로가 있고, 각각 쓰기 좋은 상황이 다르다.

경로위치언제 쓰나
상단 [만들기] 버튼어디서든테스트 중 결함을 발견했을 때 — 맥락 전환 없이 바로
백로그의 [+ 만들기]백로그 화면계획 회의 중 여러 건을 연속으로 넣을 때
보드의 [+ 만들기]칸반·스크럼 보드진행 중인 스프린트에 즉시 넣어야 할 때

목록을 보는 방식도 넷이다 — 목록(List), 보드(Board), 백로그(Backlog), 검색(Issue Search). QA가 가장 많이 쓰게 되는 것은 검색이고, 그 이야기는 다음 레슨에서 JQL로 이어진다.

업무 항목끼리 관계를 걸 수 있다. QA 실무에서 특히 값을 하는 네 가지다.

유형의미QA가 쓰는 상황
차단함(blocks / is blocked by)한쪽이 다른 쪽의 진행을 막음"이 결함 때문에 해당 스토리를 검증할 수 없다"
복제됨(clones)복제본 관계같은 결함을 다른 버전·브랜치에도 등록할 때
중복됨(duplicates)중복이미 등록된 결함을 다시 발견했을 때
관련됨(relates to)느슨한 연관같은 원인일 가능성이 있는 결함들 묶기

'차단함'이 가장 강력한 도구다. "테스트를 못 하고 있습니다"라고 말로 하는 것과, 스토리 화면에 "QA-412에 의해 차단됨"이 표시되는 것은 전달력이 완전히 다르다. 모듈 6(레슨 3)에서 배운 비난 없는 소통 원칙에도 맞는다 — 사람을 지목하지 않고 상태를 드러내는 방식이기 때문이다.

'중복됨'을 쓸 때 주의할 점도 있다. 중복으로 닫기 전에 재현 조건이 정말 같은지 확인해야 한다. 증상만 같고 원인이 다른 결함을 중복으로 닫으면 하나는 영영 고쳐지지 않는다.

필드 3층 구조 — 결함 리포트 품질을 구조로 강제하기

여기가 이 레슨에서 가장 실무적인 부분이다. 모듈 6(레슨 2)에서 좋은 결함 리포트의 조건을 배웠다 — 재현 절차, 실제 결과와 기대 결과, 증거. 그런데 아무리 교육해도 사람은 빈칸을 비워둔다. 이걸 구조로 강제할 수 있다.

Jira의 필드 설정은 세 층으로 되어 있다.

① 사용자 지정 필드 (Custom Field)
   "재현 단계", "발견 환경", "브라우저", "빌드 번호" 같은
   필드를 만든다. 텍스트·선택목록·날짜·사용자 선택 등 유형 선택
                    ↓
② 필드 구성 (Field Configuration)
   각 필드의 동작을 정의한다 —
   필수인가? 숨김인가? 기본값은? 설명 문구는?
                    ↓
③ 필드 구성 구성표 (Field Configuration Scheme)
   어떤 업무 유형에 어떤 구성을 적용할지 연결한다 —
   Bug → 재현 단계 필수 / Task → 예상 소요 시간 필수

이 3층을 이해하면 QA가 할 수 있는 제안이 달라진다.

"결함 리포트에 재현 절차를 꼭 써주세요"(→ 지켜지지 않음)

↓

"Bug 유형에 '재현 단계' 필드를 필수로 걸고, 설명 문구에 '1. 2. 3. 번호로 작성' 예시를 넣어주세요"(→ 구조가 강제함)

필수 필드를 늘리는 것에는 대가가 있다. 등록이 번거로워지면 사람들이 결함을 아예 등록하지 않거나, 필수 칸에 "-"를 채워 넣는다. 그래서 실무 기준은 이렇다 — 필수는 3~5개를 넘기지 않는다. 나머지는 설명 문구와 템플릿으로 유도한다.

프로젝트 수준에서 설정하는 경로(프로젝트 설정 → 업무 유형 → 유형 선택· 편집)와 글로벌 수준(설정 → 이슈 → 필드)의 차이도 알아두면 좋다. 팀 관리형은 대체로 프로젝트 안에서, 회사 관리형은 글로벌 스키마에서 결정된다. 그래서 회사 관리형 프로젝트에서 필드 하나 바꾸는 요청은 관리자를 거쳐야 하고, 다른 프로젝트에 영향이 없는지 확인이 필요하다.

일괄 편집 — 손으로 100번 클릭하지 않기

릴리즈 후 "이번 버전에서 해결된 결함 47건에 픽스 버전을 붙여주세요" 같은 요청이 온다. 하나씩 열어서 고치면 한 시간이 걸린다.

일괄 편집(Bulk Edit) 은 검색 결과에서 더보기(···) → 일괄 편집으로 들어간다. 대상 선택 → 수정할 필드 값 입력 → 확인 순서다.

QA가 실제로 쓰게 되는 경우들이다.

  • 릴리즈 후 픽스 버전·레이블 일괄 부여
  • 담당자 퇴사·조직 개편에 따른 담당자 이관
  • 종료된 스프린트에 남은 항목의 재배치
  • 오래된 결함의 일괄 상태 정리(주의해서)

주의 두 가지. 일괄 편집은 되돌리기가 어렵다. 실행 전에 검색 조건이 정확한지 반드시 확인하고, 건수가 예상과 다르면 멈춘다. 그리고 알림이 대량 발송될 수 있으므로, 큰 건은 알림 옵션을 확인하고 실행한다.

실무에서 왜 필요한가

QA는 Jira를 가장 많이, 가장 오래 쓰는 직군 중 하나다. 하루의 상당 시간이 결함 등록·검색·상태 갱신에서 흘러간다. 그래서 이 도구를 화면 기준으로 익히는 것과 구조 기준으로 익히는 것의 차이가 몇 년치 생산성으로 누적된다.

특히 필드 3층 구조를 이해하는 QA는 조직에서 위치가 달라진다. 결함 리포트 품질 문제를 교육으로 풀려는 사람과 구조로 푸는 사람 의 차이다. 전자는 매번 같은 요청을 반복하고, 후자는 한 번 설계해두고 문제를 없앤다. 후자의 제안은 프로젝트 관리자·Jira 관리자와 대화가 되는 언어로 나온다.

프로젝트 유형과 액세스 수준 지식도 실제로 쓰인다. "이 결함을 협력사와 공유해도 되나요", "왜 나는 이 프로젝트가 안 보이나요" 같은 질문에 답할 수 있는 사람이 팀에 한 명은 있어야 하는데, 그 사람이 QA인 경우가 많다.

실습 과제

과제 1 — 우리 프로젝트 구조 진단하기 (15분)

지금 쓰고 있는 Jira 프로젝트(없다면 Atlassian 무료 클라우드 인스턴스를 만들어도 좋다)에서 다음을 확인해 적는다.

항목확인 결과
템플릿(스크럼/칸반)
프로젝트 유형(팀 관리/회사 관리)
액세스 수준
사용 중인 업무 유형 목록
Bug 유형의 필수 필드
프로젝트 키

'Bug 유형의 필수 필드' 칸을 채운 뒤, 모듈 6 레슨 2의 좋은 결함 리포트 조건과 대조한다. 빠져 있는 것이 무엇인가?

해설 보기

대부분의 조직에서 필수 필드는 요약(Summary) 하나뿐이다. 재현 절차, 발견 환경, 빌드 번호는 설명란에 자유 서술로 들어가거나 아예 빠진다.

그런데 여기서 곧바로 "전부 필수로 만들자"는 결론으로 가면 안 된다. 본문에서 말한 대가가 있다. 실무적으로 좋은 순서는 이렇다 — (1) 먼저 설명(Description) 필드에 템플릿 기본값 을 넣어 빈칸 채우기 형태로 유도하고, (2) 그래도 계속 비는 항목 한두 개만 필수로 승격한다.

프로젝트 유형이 '회사에서 관리'라면 이 변경이 다른 프로젝트에 영향을 줄 수 있다는 점도 확인해야 한다. 그 확인 없이 관리자에게 요청하면 대개 거절당한다.

과제 2 — 결함 등록 템플릿 설계하기 (20분)

Bug 유형에 적용할 필드 구성을 설계한다. 아래 표를 채우되, 필수는 최대 4개 로 제한한다.

필드 이름유형(텍스트/선택/날짜/사용자)필수 여부기본값·설명 문구

설계 후 스스로 검증한다 — 이 필드들만 채워진 결함 리포트를 받았을 때, 개발자가 추가 질문 없이 재현할 수 있는가?

과제 3 — 연결 유형 실습 (12분)

아래 상황들에 대해 어떤 링크 유형을 쓸지, 그리고 어느 방향으로 걸지 (A가 B를 차단하는지, B가 A를 차단하는지) 적는다.

  1. 로그인 API가 500을 반환해서 마이페이지 관련 스토리 3개를 전부 검증할 수 없다
  2. 안드로이드에서 발견한 결함이 iOS에서도 동일하게 재현된다
  3. 지난주에 등록한 결함과 증상이 같지만 재현 경로가 다르다
  4. 결제 실패 결함과 장바구니 금액 오류가 같은 계산 로직에서 온 것 같다
해설 보기
  1. 차단함. 결함이 스토리 3개를 차단한다(결함 → blocks → 스토리). 방향을 반대로 걸면 "스토리가 결함을 막고 있다"는 이상한 의미가 된다.
  2. 상황에 따라 갈린다. 플랫폼별로 별도 수정이 필요하면 복제됨 으로 두 건을 유지하고, 공통 서버 로직 문제라면 한 건으로 두고 설명에 두 플랫폼을 모두 적는 편이 낫다. 건수를 늘리는 것이 목적이 아니다.
  3. 성급하게 중복으로 닫지 않는다. 재현 경로가 다르면 원인이 다를 수 있다. 일단 관련됨 으로 걸고, 원인이 같다고 확인된 뒤에 중복 처리한다.
  4. 관련됨. 아직 가설이므로 강한 관계를 걸 근거가 없다. 원인이 확정되면 상위 결함 하나에 하위 작업으로 묶는 것도 방법이다.

과제 4 — 일괄 편집 시뮬레이션 (10분)

"이번 릴리즈에서 수정된 결함 전체에 픽스 버전 v2.4.0을 부여하라"는 요청을 받았다고 가정한다.

  1. 대상을 찾기 위한 조건을 말로 적는다(다음 레슨에서 이걸 JQL로 쓴다)
  2. 일괄 편집 실행 전에 확인해야 할 것 3가지를 적는다
  3. 잘못 실행했을 때 되돌리는 방법이 있는지 알아본다

자가 체크리스트

  • Jira의 '업무 항목'과 예전 '이슈'가 같은 것이며, JQL·API는 여전히 issue를 쓴다는 것을 안다
  • 스크럼 템플릿과 칸반 템플릿이 QA의 테스트 계획에 어떤 차이를 만드는지 설명할 수 있다
  • 팀 관리형과 회사 관리형 프로젝트의 차이를 설정 공유·권한·전환 비용 관점에서 말할 수 있다
  • 액세스 수준 세 가지를 구분하고, 보안 관련 프로젝트에 무엇이 적절한지 판단할 수 있다
  • 업무 항목의 기본 계층(Epic → Story/Task/Bug → Sub-task)을 그릴 수 있다
  • 결함·명세 오류·QA 작업을 각각 어떤 유형으로 등록할지 판단할 수 있다
  • QA 작업을 Jira에 등록하지 않으면 조직에서 보이지 않는다는 점을 설명할 수 있다
  • 링크 유형 네 가지의 의미와, '차단함'이 왜 강력한지 말할 수 있다
  • 필드 3층 구조(사용자 지정 필드 → 필드 구성 → 필드 구성 구성표)를 설명할 수 있다
  • 결함 리포트 품질 문제를 교육이 아니라 필드 설계로 푸는 방법을 제안할 수 있다
  • 필수 필드를 늘릴 때의 대가와, 실무적 상한(3~5개)을 설명할 수 있다
  • 일괄 편집을 실행하기 전에 확인해야 할 것들을 말할 수 있다

흔한 실수

  • 버튼 위치로 도구를 익힌다. UI는 바뀐다(이슈 → 업무 항목이 그 증거다). 구조를 익히면 화면이 바뀌어도 찾아갈 수 있다.
  • QA 작업을 Jira에 등록하지 않는다. 기록되지 않은 일은 조직에서 없는 일이다. 회고에서 근거로 쓸 수 없다.
  • 결함 리포트 품질을 교육으로만 풀려 한다. 반복 요청보다 필드 설계 한 번이 오래 간다.
  • 필수 필드를 과하게 늘린다. 등록 자체를 피하게 만들거나 "-"로 채워진 칸을 만든다. 3~5개를 상한으로 잡는다.
  • 중복 링크를 성급하게 건다. 증상만 같고 원인이 다르면 하나가 영영 묻힌다. 재현 조건을 대조한 뒤에 닫는다.
  • 차단 관계를 말로만 알린다. 링크로 걸면 담당자 화면에 표시되고 스프린트 회의에서 자동으로 논의된다.
  • 회사 관리형 프로젝트의 설정을 독립적이라 생각한다. 스키마를 공유하는 다른 프로젝트에 영향이 간다. 요청 전에 영향 범위를 확인한다.
  • 일괄 편집을 검증 없이 실행한다. 되돌리기가 어렵고 알림이 대량 발송된다. 건수가 예상과 다르면 멈춘다.

참고 자료

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

UI — 사용자 인터페이스
사람이 직접 보고 누르는 부분 — 화면, 버튼, 입력창.
JQL — 지라 질의 언어
결함 관리 도구에서 "이런 조건인 건만 보여 달라"고 적는 말.
REST — 레스트
창구를 만드는 가장 흔한 방식. 주소 하나가 자원 하나를 가리키고, 동작은 정해진 몇 가지 말로 구분한다.
API — 응용 프로그램 인터페이스
프로그램끼리 주고받는 창구. 사람이 화면 버튼을 누르는 대신, 프로그램이 정해진 주소로 요청을 보내 답을 받는다.
URL — 인터넷 주소
웹에서 무언가의 위치를 가리키는 주소 한 줄.
QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.

용어집 전체 보기