Project/project-board

[Project] 깃허브 이슈 정리 및 브랜치 전략

수수한개발자 2022. 7. 7.
728x90

git : https://github.com/jisu3316/project-board 

깃 허브 이슈 정리

이번 프로젝트 형상관리는 깃 허브에서 하고 있다.

깃 브렌치 전략 중에서도 github-flow 전략을 통해 개발을 하기로 정하였습니다.

그리고 처음부터 끝까지 혼자 생각하고 개발을 해야 되니 어떻게 개발을 해야 될까 생각하다가 정처기 시험을 공부할 때 소프트웨어 개발 방법론이 생각나서 그중에서도 애자일 개발 방법론의 칸반을 채택하게 되었다.

왜냐하면 github-flow와도 잘 어울리고 연습하는 것도 좋을 것 같았습니다. 이에 대해서는 이 글 마지막에 추가된 링크를 통해 알아보시면 좋을 것 같습니다.

그리고 이런 칸반을 쉽게 적용 할 수 있고 기록할 수 있는 게 무엇이 있을까?라는 생각으로 찾던 중에 깃허브에서  만들어 놓은 것은 프로젝트 칸이 있어서 사용하기로 하였습니다.

깃 허브의 Projects

위 그림과 같이 Project칸이 있습니다..생전 처음 보는데 들어가면 칸반 보드로 잘 사용할 수 있게 되어있다.

이런 식으로 할일(요구사항)을 Backlog에 쌓아놓고 Hotfix 또한 바로 프로젝트 backlog에 쌓습니다.

Ready에 다음 할 일 In progress 의 진행 중 In review는 현재 기능 개발을 하고 풀 리퀘스트 상태, Done은 이제 리뷰가 끝나면 최종 main브렌치에 머지가 된 상태이다. 

 

순서는 Backlog -> Ready -> In progress -> In review -> Done 이다.

Backlog의 일단 쌓고 Ready에서 이슈 등록을 해준 후 In progress로 옮긴 후 진행하면 된다.

issues 등록 페이지

이런 식으로 이슈 등록을 하게 되면 밑의 그림처럼

Issues 페이지 사진

현재 오픈된 이슈와 닫힌 이슈를 볼 수 있다. 이렇게  현재 무엇을 하고 있고 무엇을 한 상태인지 쉽게 확인, 관리가 가능하다.

 

브랜치 전략

이제 브랜치 관리를 하겠습니다.

여기서 깃 크라켄이라는 GUI를 사용하였습니다.

깃허브 플로우를 사용을 하기로 하였는데, 깃 플로우도 그렇고 일반적인 git bash로 사용하기에는 너무 귀찮은 작업들이 많고 명령어 치는 것도 많아서 이런 걸 다 제공해주는 깃 크라켄이라는 것을 알게 되어서 사용하게 되었습니다.

애초에 깃 크라켄은 깃 플로우 전략을 지원하고 있습니다.

위와 같이 있는데 저는 깃허브 플로우를 사용하기로 하였기 때문에 여기서 트릭을 줘야 합니다.

일단 깃 플로우의 구조는 devlop에서 브랜치들이 뻗어나가 완료하면 디벨롭 브렌치에 머지되고,

이 디벨롭이 마스터하테 머지되어서 개발이 완료된 상태라면 메인. 디벨롭이 배포 가능한 브렌치가 됩니다.

(feature branch의 깃 플로우 전략은 feature branch 가 디벨롭에게 가는 구조이다. 피처가 마스터로 바로 가지 않습니다.)

그래서 의미 없는 이름의 dummy 브랜치를 생성하고 main을 디벨롭에 넣고 마스터를 dummy로 넣는다.

깃허브 저장소에는 main브랜치만이 존재하므로 dummy로 개발을 한 후 main 브랜치에 푸시 후 풀 리퀘스트하면 된다. (마스터를 쓰지 않고 디벨롭만 쓰는데 디벨롭이 메인이 된다.)

 

이후 feature 브랜치를 feature/#1 이런 식으로 이슈 번호와 같게 생성 후 풀 리퀘스트하면 이슈완 연동이 되어서 그 이슈에 커밋 메시지와 현재 이슈 진행 상태 등 아래 사진과 같이 알 수 있데 된다.

그 후에 풀 리퀘스트가 메인 브랜치에 머지되면 단위 업무 종료 식으로 진행합니다.

 

 

reference

728x90

'Project > project-board' 카테고리의 다른 글

[Project] DTO 설계  (0) 2022.07.14
[Project] QueryDSL 적용  (0) 2022.07.11
[Project] API 설계  (0) 2022.07.11
[Project] 도메인 설계 및 DB 접근 로직  (0) 2022.07.09
[Project] 프로젝트 명세서  (0) 2022.07.06

댓글