일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 단계별문제풀이
- python3
- 프로그래머스
- 글또
- Level1
- 이진탐색
- ODQA
- Level2_PStage
- 개인회고
- 백트랙킹
- dp
- Level2
- mrc
- 이코테
- 구현
- 다시보기
- dfs
- 최단경로
- 부스트캠프_AITech_3기
- 기술면접
- 그리디
- 파이썬 3
- U_stage
- 백준
- 정렬
- 주간회고
- 알고리즘_스터디
- 그래프이론
- 부스트캠프_AITech3기
- 알고리즘스터디
- Today
- Total
국문과 유목민
[JIRA] 3.Jira를 어떻게 활용하나? 본문
들어가기 전에
해당 글은 기술을 처음 접하는 사람들의 이해를 돕기 위해 작성했습니다. IT 기술들은 종종 자신들의 멋짐(?)을 강조하기 위해 조금은 어려운 단어들을 쓰고, 말이 길어지는 경우가 있습니다. 처음 기술을 접하는 저에게는 장황한 말이 이해의 장애물이었습니다.
그래서 핵심적인 정보인 '왜 사용하는지'와 '어떻게 사용하는지'에 대해 집중적으로 얘기해주는 글이 있었으면 했습니다. 이번에 좋은 기회가 있어 제가 사용해 봤던, 그리고 좋았던 기술들에 대해서 최대한 간략하고, 필요한 정보만 담아서 글을 작성해보고자 합니다.
📜 JIRA 견문록
Jira를 활용하면 어떤 것이 좋은가?
앞선 포스팅에서 Jira를 활용하면 다음과 같은 기능을 활용해 프로젝트 일정 관리 및 히스토리 파악이 가능하다고 얘기했다.
- 이슈 추적: 에픽(Epik), 스토리(Story), 버그(Bug), 작업(Task) [밑에서 설명] 등 다양한 이슈 트래킹 가능
- 프로젝트 관리: 팀의 업무를 체계적으로 관리하고, 진행상황 파악 용이
- 애자일(Agile) 지원: 스크럼, 칸반보드 등을 통해 애자일 방식으로 작업을 관리할 수 있음
- 통합성: *Bitbucket, Github등 다양한 도구와 연동해 팀 간 협업을 원활하게 진행
* Bitbucket: Jira를 제공하는 Atlassian에서 같이 제공하는 Git 기반 버전 관리 서비스로, Github와 같은 기능을 수행
해당 포스팅에서는 실제 위의 기능들이 무엇인지 살펴보고, 앞서 구축한 프로젝트 환경에서 기능들을 간단한 예시와 함께 살펴보고자 한다.
1) 이슈 추적
Jira는 다음과 같은 5개 유형의 이슈가 기본적으로 제공하며, 각 이슈에 대한 간단한 설명은 다음과 같다. Jira는 다음과 같은 이슈들을 통해서 프로젝트 크기를 관리한다.
- 에픽(Epik): 여러 개의 스토리나 작업을 포함하는 대규모 이슈
- 스토리(Story): 사용자가 원하는 기능이나 요구사항을 서술하는 이슈 유형으로, 사용자 관점에서 특정 기능을 설명
- 버그(Bug): 소프트웨어나 시스템에서 발생한 오류나 문제를 추적하는 이슈 유형 (잘 활용하지는 않음)
- 작업(Task): 일반적인 작업을 정의하는 이슈로, 특정한 기능 개발 외에 필요한 작업
- 하위 작업 (Sub-Task): 하나의 이슈 안에 포함되는 작은 작업 단위로, 스토리나 작업을 더 작은 단계로 나누어 관리할 때 서브태스크를 사용
각 이슈 유형은 프로젝트 성격에 따라 새롭게 추가하거나, 커스터마이징 할 수 있다.
에시를 들어보면, 간단한 머신러닝 프로젝트를 진행한다고 하면, 다음과 같이 프로젝트를 구성할 수 있다.
- Epic: 머신러닝 프로젝트에서 반드시 진행해야 하는 큰 토픽들 (데이터 전처리, 모델 실험 등)
- Story or Task: Epic 하위에서 진행해야 하는 작업들 (데이터 수집, 데이터 전처리 방법 리서치 등)
- Sub-Task: Story나 Task 하위에 정의되는 작업들 (원천 데이터 다운로드, 오픈소스 데이터 리서치 등)
2) 프로젝트 관리
Jira는 위와 같은 이슈들을 정의해서 각 이슈별로 시작일(start date)과 마감 기한(due date)을 정할 수 있다. 이를 통해 팀의 업무를 체계적으로 관리하고, 진행상황 파악을 용이하게 할 수 있다. 또한, 이슈를 연결(link)해서 이슈 간 의존성도 파악할 수 있다.
2-1) 의존성 설정 방법
3) 애자일(Agile)
Jira는 스크럼, 칸반보드와 같은 프로젝트 관리 도구를 제공하며, 이를 통해 애자일 방식으로 작업을 관리할 수 있다. Agile과 관련된 개념에 대해 더 알고 싶다면 다음 글을 참고해보자.
4) 통합성
Bitbucket, Github등 도구와 연동해 팀 간 협업을 원활하게 진행할 수 있다는 것이다. 프로젝트를 진행하면서 작업에 따른 코드 수정사항을 같이 확인할 수 있게 해준다. 코드 수정이 어떤 작업과 연결되어 있는지 자동으로 통합해주기 때문에 실험 추적 등이 더 수월하다. 이를 사용하기 위해서는 Marketplace에서 github을 연결해줘야 한다.
다른 다양한 서비스도 활용이 가능하지만, 접근성이 좋은 github을 통해 예시 진행
4-1) github 연결
4-2) Jira 이슈와 Github Branch & Commit 연결
Jira 이슈와 github branch 및 Commit 기록을 유지하려면, Jira 이슈의 id 값을 branch와 commit 메시지에 입력을 해줘야 한다. 다음 예시에서 전처리 프로세스 리서치라는 이슈는 CG-7이라는 id를 가진다.
- 이때, branch나 commit 이름에 해당 id가 있으면, Jira에서 자동으로 해당 기록을 가져와 연결한다.
정리
여기까지 Jira에 대해서 3부작으로 빠르고 간단하게 Jira의 핵심적인 기능에 대해서 살펴봤다. Jira가 무엇이고, 왜 기업에서 활용하는 지와 어떻게 만들고 사용하는지를 위주로 살펴봤다. Jira의 가장 기본적인 것만 다뤘기에 심화적인 내용을 원하는 분들에게는 부족할 수 있다. 왜냐하면 Jira는 위에서 설명한 이슈 추적, 프로젝트 관리, 애자일, 통합성뿐만 아니라 더 다양한 기능을 제공하기 때문이다. 이러한 분들은 Jira의 공식 Document를 참고하면 더 세세한 정보를 얻을 수 있을 것이다.
Jira 자체가 가지는 가치는 프로젝트 관리와 기록 측면에서 큰 장점이 있다. 그리고 그만큼 Jira가 많은 기업에서 활용하고 있기 때문에, IT업계에 신입을 준비하는 분들은 이러한 툴을 이해하고, 프로젝트에 적용시켜 본다면 추후 취업에서도 강점이 될 수 있지 않을까 생각이 든다. 그리고 사실 그렇지 않아도, 이렇게 프로젝트를 관리하는 버릇을 잡아놓는다면 큰 자산이 될 수 있다고 생각한다.
참고 자료
- https://www.atlassian.com/agile/project-management/epics-stories-themes
- https://www.atlassian.com/ko/agile
- https://www.atlassian.com/ko/software/jira/guides/getting-started/introduction#what-is-jira-software
'기술 견문록 > 협업 툴' 카테고리의 다른 글
[JIRA] 2.Jira 초기 세팅 (0) | 2024.09.07 |
---|---|
[JIRA] 1.Jira란 무엇인가? (0) | 2024.09.07 |