- JIRA를 도입해보자-협업의 신(新)2024년 10월 21일
- 2료일
- 작성자
- 2024.10.21.:29
이번에 사이드 볼레또를 나의 욕심으로 프로젝트 규모를 더 키워 백엔드 개발자 총 2명 디자이너 4, 프론트는 나혼자..이렇게 팀을 구성하였다. 사실 노션으로 일정관리를 하고 백로그도 관리하여도 된다. 하지만 대부분의 기업에서 협업 툴로 JIRA를 선택하고 있고, 이슈관리, 확장성, 깃과의 연동성, 누가 일하나 감시(?)까지...ㅎ 농담이고 결국 협업을 진행할때 현상관리, 상태관리에 더 용이해 시간을 절약할 수 있을 거 같아 선택하게 되었다.
생각하는 시간과 실행하는 시간을 분리하자
지라를 이해하기 위해서 알아야 하는 개념을 먼저 보자
애자일 & 스크럼
결국 이걸 위해 지라를 사용한다. 프로젝트를 진행하다보면 중간에 요구사항이 바뀔수 있다. 이 요구사항들을 빠르게 대응하기 위해 애자일 방법론을 사용한다. 물론 현재 팀은 7명이고 디자이너가 4이다. 또한 아직 앱에 어떠한 기능이 추가되고 설계될지 확정을 짓지 못했다.
현재 리팩토링작업을 하다 로직이 바뀌어버릴 수 있다. 그렇기에 우선순위도 매번 바뀔 수 있다. 매 스프린트마다 개발 상황을 조정하고 우선순위를 매기려한다.
전체 스크럼은 2주에 한번 하지만 개발자 스크럼은 가능하면 1주에 한번이상 진행을 하려한다.
스프린트
일정한 기간을 주기를 통해 일정을 관리한다. 그 주기를 말한다. 전체 회의를 2주에 한번은 하려고 하기에 스프린트를 2주로 잡았습니다.
간단히 설명하면 이미지와 같다고 생각하면 됩니다. 하나의 큰 에픽안에 스토리도 있을거고 작업도 있을거고 버그도 있을겁니다.
에픽(보라색 번개)
가장 큰 업무. 여러 스프린트를 통해 이루어짐. (1개의 에픽 != 한개의 스프린트)
ex) 물품 주문하기, 친구추가하기 등 유저에게 직관적인 큰 기능으로 설정하기
스토리(에픽안에 들어있는 초록색 북마크 같은거)
최소 단위의 요구사항, 하나의 에픽에 여러개의 스토리 가능
- 스토리는 비즈니스 가치 또는 사용자 가치를 창출하는 작업을 의미한다.
유저에게 가치를 줄 수 있는 기능을 서술 ex) 사용자는 카카오톡을 통해 친구를 초대할 수 있다.
결국 사용자가 수행하는 행동과 목표를 위주로 기술 UX에서는 유저 스토리!!!에 해당한다. (디자이너를 위한 맞춤 설명)
에픽을 만들면 오른쪽에 이런게 뜸.
레이블: 작업에 태그 달기 ex)FE, BE로 구별할 예정.(DE = Designer)
Task
하나의 스토리를 완성하기 위한 구체적인 작업들
- 디자인, 기술검토, 개발(프론트, 백), 문서화 등
버그
에픽을 달성하기 위해 수행하면서 발생한 버그를 추적할 때 사용하는 이슈 유형.
스토리 적용 예시
- 스토리: "온라인 쇼핑몰 사용자로서, 제품 리뷰를 읽고 제품 선택에 도움을 받고 싶다."
- 하위 태스크:
- 데이터베이스 스키마 설계
- 리뷰 데이터 검색 로직 구현
- 하위 태스크:
태스크 적용 예시
- 태스크: "AWS에 새로운 서버 환경 설정하기"
- 하위 태스크:
- EC2 인스턴스 생성
- 보안 그룹 설정
- 데이터베이스 서버 설치 및 구성
- 하위 태스크:
여기까지가 스프린트로 부터 각 작업을 생성하는 흐름
백로그
- 우리팀이 수행해야 할 작업(나중에라도 이거 해야지! 이건 해야해! 하는것들 작성하면됨) 제품에 대한 요구사항!
여기서부터는 개발자만 보면 댐!
깃 연동은 끝 then How to use?
브랜치 이름 앞에 이슈 번호 붙여서 올리면 브랜치가 연결되고, 커밋할때 이슈키를 포함하여 올리면 된다. 이미지가 샘플입니다.
이지하죠? 결국 이슈키만 기억하면 됩니다.
그런데 우리는 개발자다 최대한 효율충이여야 한다. 현재는 지라에서 테스크를 만들고 같은 작업을 깃허브에서 이슈에 이슈키를 등록해주어야한다. 어우 귀차나
+ 더 나아가서 개발자들의 편의를 위해 gitAction도 적용해드리겠습니다 우와오아아짱이다~ 👍 이슈가 생성되면 지라 이슈도 같이 생성되록!
프론트는 햇으니 백에 같은 방법으로 적용하면 됩니다.
깃허브액션에 해당이름의 Yml파일 생성후 저거 복붙
name: Create Jira issue on: issues: types: - opened jobs: create-issue: name: Create Jira issue runs-on: ubuntu-latest steps: - name: Login uses: atlassian/gajira-login@v3 env: JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} - name: Checkout main code uses: actions/checkout@v4 with: ref: main - name: Issue Parser uses: stefanbuck/github-issue-praser@v3 id: issue-parser with: template-path: .github/ISSUE_TEMPLATE/issue_form.yml - name: Log Issue Parser run: | echo '${{ steps.issue-parser.outputs.jsonString }}' - name: Convert markdown to Jira Syntax uses: peter-evans/jira2md@v1 id: md2jira with: input-text: | ### Github Issue Link - ${{ github.event.issue.html_url }} ${{ github.event.issue.body }} mode: md2jira - name: Create Issue id: create uses: atlassian/gajira-create@v3 with: project: BO issuetype: Subtask summary: "${{ github.event.issue.title }}" description: "${{ steps.md2jira.outputs.output-text }}" fields: | { "parent": { "key": "${{ steps.issue-parser.outputs.issueparser_parentKey }}" } } - name: Log created issue run: echo "Jira Issue ${{ steps.issue-parser.outputs.parentKey }}/${{ steps.create.outputs.issue }} was created" - name: Checkout develop code uses: actions/checkout@v4 with: ref: develop - name: Create branch with Ticket number run: | git checkout -b ${{ steps.create.outputs.issue }} git push origin ${{ steps.create.outputs.issue }} - name: Update issue title uses: actions-cool/issues-helper@v3 with: actions: "update-issue" token: ${{ secrets.GITHUB_TOKEN }} title: "${{ steps.create.outputs.issue }} ${{ github.event.issue.title }}"
그 후 시크릿키들을 등록해주어야함. 세팅 > 시크릿앤 변수> 액션에서 생성해주셈. 3개다
토큰은 따로 갠톡으로 알려드리겟습니다. 유저이메일은 그 지라 계정입력하세요! 그 후 그냥 이슈를 파면 깃액션이 자동화해서
자동으로 백로그에 담긴다. 와 짱편해졋다
+ 이슈 템플릿 추가합니다.
이렇게 하면 되지만 3시간삽질함 왜?
디벨롭브랜치에만 있는게 아니라 메인브랜치에도 저 workflow를 설정해줘야햇음 ㅠ
됐다...5시간만에 세팅완료 궁금한건 카카오톡으로..
다음글이전글이전 글이 없습니다.댓글