Why Jira?
왜 지라인가?
- Issue Tracking(Project Manager)
- Agile
- Devops
- SRE
Issue Tracking(Project Manager)

- 팀 단위의 Todo list를 정의하기 위한 것
- 이슈가 상태가 있고 관리할 수 있기 떄문에 Tracking을 할 수 있다
- 그래서 Issue Tracking이라 부름
- 그리고 Issue Tracking Tool로서 가장 많이 쓰는게 Jira임
Project Manager

Jira는 Project Management를 도와준다
Agile

- 개인과 상호작용을
- 작동하는 소프트웨어를
- 고객과의 협력을
- 변화에 대응하기를
- 애자일의 오해
- 왼쪽에 있는 말을 안하겠다는게 아님
- 오른쪽을 조금 더 중점에 두는 것이지 왼쪽의 말들 또한 당연히 중요하다.
- 애자일 방법론 → 명세서나 문서가 아니다.

- 애자일하게~의 대표적인 예시인 SCRUM과 KANBAN의 비교
- 우선 보드를 세우고 이슈를 보드에 정리하며 상태를 관리한다는 공통점이 있음
- 차이점은 스크럼은 스프린트가 있음
- 우리팀의 이슈를 백로그에 다 쌓아둔다.
- 2~4주정도 단위로 이번 스프린트에 어떤 이슈를 해결할지 정해서
- 스프린트 기간동안에는 해당 이슈에만 집중하고
- 기간이 끝난 뒤 회고를 하고, 다시 스프린트에 돌입함
- 칸반은 스프린트가 따로 없음
- 전체 이슈들을 상태별로 다 붙여두기만함
- 그럼 어케 할당된 일을 정하고 해결하지 ?
- WIP라는 할당량 비율을 책정하는 그게 있는데 그런걸로 개인에게 일정량 이상의 WIP를 부여하지 않도록 함

- 나 오늘 오는 길에 뭔 일 있었다 이런 스몰토크 좀 나눠주고
- 가안단하게 어제 뭐했고 오늘 뭐할거다를 공유
- 최대한 빨리 공유하고 빨리 흩어지는게 목적임, 잡담 길어지고 회의처럼 상세해지면 안되는거임.

- DevOps가 나온 이유?
- 운영팀은 계속 안된다 뭐하고
- 개발팀은 그거에 왜 안되냐 불만가지고
- 위 그림처럼 운영팀과 개발팀의 계속된 갈등을 해소하고자함

- 그래서 Dev와 Ops를 끊지말고 하나의 연결고리로 해결하자
- DevOps할땐 CI/CD로 배포 자동화하는게 제일 중요하다 생각하는데?
- 원래 기원에 가까운건 개발팀과 운영팀의 갈등을 해결하고자 하나로 합치자! 에 가까움

- 그럼 그 DevOps를 잘 해결하려면?
- 반복적인 작업들을 Tool을 이용해서 자동화하고
- 팀원 모두가 알고있는 하나의 공유된 지표가 필요하다
- 장애나 이슈가 있을 때 혼자만 알지 말고 팀원들과 공유가 필요하다.
- 이런걸 도와주는 Tool이 Jira !

- Jira를 만든 아틀라시안에서 제시한 Devops용 Jira어플 사용추천
SRE

- 한국말로 하면 신뢰성 공학. 신뢰성에 관한 내용임
- DevOps에서 파생된 의문
- 운영팀은 그럼 무슨 일을 하냐?
- 그리고 DevOps를 그럼 어떻게 더 신뢰성 있게 할 수 있을까?
- 그래서 보면 class SRE implemnets DevOps로 되어 있음
- SRE는 DevOps를 더 잘하기 위한 활동이다 라고 생각할 수 있겠다.

How to Jira
Q. 프로젝트 만들기 왜 없냐?

- 허용해주면 프로젝트 무한생성이 돼서 성능 문제가 있어서.. 나중에 팀 별로 프로젝트 하나씩 생성해준다고 함
어떻게 지라를 사용해야하나?
이슈부터 만들어야한다.

- 프로젝트
- 이슈 유형 고르기
- 스토리 : 유저 시나리오같이 사용자와 상호작용 할 것 작성 시에 사용
- 작업 : Task, 사용자는 전혀 모르지만(또는 전혀 느끼지 못하지만) 우리가 해야 될 작업들, 비품 구매, 소프트웨어 개발 이런거.
- 버그 : 말 그대로, 일어난 버그
- 에픽 : Epic, 대 서사, 스토리의 묶음, 스토리를 묶어서 대 서사 하위의 행동들이 잘 이행되고 있는지를 체크
- 에픽 > 스토리 / 작업은 별개로 봐도 되고 에픽 안에 같이 들어가도 무관
- 상태
- ToDo, In Progress, Done
- 근데 상태는 직접 생성하고 관리하면됨.
- 필요한 상태를 추가하고 관리할 수 있다.
- 요약
- 컴포넌트
- UX에 관련된건지, 인프란지 백인지 프론트인지 이런거처럼 카테고라이징 할 수 있는 칸
- 기능별로 카테고라이징하거나, 주제별로 카테고라이징하거나 개인선택
- 연결된 이슈
- 수정 버전
- 보고자는 팀장, 근데 버그같은건 보고자가 가장 먼저 발견한 사람
- 담당자는 말그대로 이 이슈를 담당할 사람
- 레이블은 인스타그램 해쉬태그 같은거
- 특별한 형식이 없음, 그래서 정리를 잘해주고 규칙이 있어야함
- Epic Name 항목은 Epic 상위 항목 설정할때 저 이름으로 상위를 설정
컴포넌트

- 이름은 이름
- 설명은 설명
- 컴포넌트 리드는 말 그대로 리더를 선정
- 기본 담당자를 설정하면 추후 이슈를 만들때 담당자가 자동으로 배정됨
- 담당자란 단어는 Assign으로 많이 이해를 함
- 컴포넌트는 이슈를 만들기 전에 미리 만들어놓고 컴포넌트를 분류하는 것
JQL

- Jira Query문
- 실제 SQL과 거의 유사하다고 생각하면 됨.

- JQL의 종류는 Basic Quey와 Advanced Query가 있음
- Basic Query는 직접 짜지 않고 버튼 클릭으로 조작해줌
- Advanced Query는 직접 이어서 query를 작성함

- sql과 똑같음
- ~(글자)
- LIKE와 같은 기능, ‘글자’가 포함됐냐 안됐냐
- is empty와 is null은 기능상 거의 동일하게 사용해도 됨.

- Jira는 날짜관련 기능을 강력하게 제공함
- 1d, 2d 이렇게 일자별로도 구분하지만
- 주 단위도 제공함
- -7d 대신 -1w를 제공
- 마찬가지로 월 단위 년 단위도 제공함

- 일의 끝, 일의 시작
- 주의 끝(토욜), 주의 시작(일요일)
- 월의 끝 월의 시작
- currentUser ⇒ assign이가 currentuser인거
- 즉 지금 현재 로그인 한 사람이 담당자인거
- 내가 어디어디 담당인지 알아보기에 편함
예시 - 에픽과 그 하위 스토리 & 작업


JQL을 저장해서 활용하는 ..? ⇒ Filter
Filter == JQL문을 저장하는거임
예를들어
- project = DP and assignee = currentUser()라는 쿼리문이 있음
- 이걸 필터로 저장하면?
- 추후 버튼클릭만으로 계속 저 쿼리문을 실행해서 볼 수 있는거임


대시보드(DashBoard)
이슈에 대한통계를 차트로 확인가능

- 필터를 통해서 프로젝트에 대해서 해당 이슈에 대한 통계를 차트로 볼 수 있다는거!
Board
제일 많이 사용하게될껄
기본적으로 스크럼 보드 or 칸반 보드 중 선택해서 생성

- Scrum 보드는 아마 SSAFY에서 플젝만들어줄때 기본으로 만들어줄거임
- 백로그를 관리


- 칸반과 스크럼의 차이는 백로그 관리 과정이 없이 그냥 저렇게 백로그들을 쫘르르르륵 모아놔주는 역할만 함

