💡 Git Project + 칸반보드
칸반보드의 장점
- 진행중인 업무의 시각화
- WIP 제한을 통한 효율적인 작업 처리
- 업무 흐름 관리
- 진행중인 업무 제한
- 팀 정책 설정 (WIP제한, 티켓 생성권한, 소통원칙 등)
Github Repository의 필수 파일
- README.md
- 프로젝트명, 핵심기능 및 소개, 팀원 소개
- .gitignore
- Git의 관리대상에서 벗어남, 개인의 Secret Token이나, 공유가 불필요한 설정파일 등을 파일에 명시
- LICENSE
- Public인 코드에 라이센스를 명확하게 표기해야함
프로젝트 관리에 활용가능한 Github 기능
- Issue
- 프로젝트에 새 기능 제안 & 버그 리포트 등 프로젝트에서의 이슈를 의미하며, 칸반 티켓처럼 사용
- 아이디어 공유 & 피드백 & 태스트 & 버그 관리 용도로 사용
- ex)
- 제목 & 본문 작성
- Assigness : 태스크를 맡을 인원 지정
- Labels : 라벨 지정
- Projects : 프로젝트 지정
- Milestone : Milestone 지정
- Issue Temlate Card (이슈 Form 생성)
- Repo Settings 하단 Features - Issues - Set up Templates
- Milestone
- 이정표 역할, 태스크 카드(Issue)를 그룹화하는데 사용함
- 연결된 카드가 종료되면 Milestone 마다 업데이트된 진행 상황 확인 가능
- 이 기능을 통해 이슈의 추적 & 진행상황을 한눈에 파악 가능
- ex)
- Repo - Issue - Milestione - Create
- title : Milestone의 이름
- Due date : Milestone의 마지막 날
- 계획에 알맞은 개수만큼 Milestone과 Task를 만들어서 관리
- Pull Request
- 내가 작업한 내용을 main branch에 merge 할 수 있는지 확인하는 작업
- PR에서 커밋한 코드에 리뷰를 달 수있는 기능도 포함
- 코드 리뷰 가능
- Project
- 이 기능을 활용하여 칸반 보드 생성 & 칸반으로 업무의 흐름 관리
- 작업 계획 & 트래킹에 적합
- ex)
- Repo - Project - Add Project
- Table & Board 선택 후 Create
- 생성 후, Settings - Project Name 설정
- 좌측 Manage Access 권한 설정 & 팀원 초대
- Issue & PR 연결 (기존 생성된 item 모두 추가)
- 각 이슈의 상태 & 그룹 설정 가능
💡 Git Branch
Branching이란?
새로운 기능 개발 시, 기존 메인 코드를 건드리지 않고 적용할 수 있는 버전 관리 기법
Git Branch
- 브랜치 생성
- git switch -c sub & git checkout -b sub
- 브랜치 스위치
- git switch [branch_name] & git checkout [branch_name]
- 브랜치 병합
- 로컬에서의 merge
- 필요에 따른 여러번의 git commit 후
- git switch main
- git merge sub
- Pull Request를 통한 merge
- sub 브랜치에서 작업 후 push
- merge
- 로컬에서의 merge
- 브랜치 삭제
- git branch -d [branch_name]
- git branch -D [branch_name] (merge 되지 않은 브랜치 삭제)
기타 git 명령어
- 유저 정보 설정
- git config --global user.name
- git config --global user.email
- 초기화
- git init
- 스테이징 & 커밋
- git status
- git add [file]
- git reset [file]
- git diff
- git diff --staged
- git commit -m " "
- 비교 & 검사
- git log branch2..branch1
- branch 2에 없는 branch 1의 모든 커밋 히스토리 표시
- git log --follow [file]
- 해당 파일의 모든 변경사항 커밋 표시
- git diff branch2...branch1
- branch 1에는 있고 branch 2에 없는것의 변경내용 표시
- git log branch2..branch1
- 공유 & 업데이트
- git remote add [alias] [url]
- 특정 repo 별칭 지정해서 추가
- git fetch [alias]
- 해당 별칭의 repo의 모든 브랜치 & 데이터 클론
- git merge [alias]/[branch]
- remote를 현재 작업중인 브랜치와 병합
- git push [alias] [branch]
- 로컬의 커밋을 remote로 전송
- git remote add [alias] [url]
- 임시 저장
- git stash
- 수정 & 스테이지된 사항을 스택에 임시저장 후 현재 작업 내역에서 지움
- git stash list
- 임시 저장 목록 표시
- git stash apply
- 임시저장 -> 현재 작업 복귀
- git stath pop
- 임시저장 -> 현재 작업 복귀 후 스택에서 삭제
- git stash drop
- 스택에 저장된 임시 삭제
- git stash
💡 Git Flow
Git Brancing 전략 중 가장 많이 사용하는 전략이며,
대규모 개발 프로젝트를 제작하여 하나의 소프트웨어 버전을 명확히 나누고
다양한 버전을 배포해야 하는 개발 환경에 적합함
- 개발 현장의 상황에 맞는 Git Flow 선택
- Github Flow, Gitlab Flow 등이 있음
- Git Flow를 단순화한 Coz' Git Flow로 연습 권장
Coz' Git Flow - Coz' Git Flow는 중요 브랜치인 main,dev 브랜치가 있다.
- main Branch
- 언제든 상용화 할 수 있는 브랜치
- 완성된 기능
- 웹에서의 공개적인 통신 가능
- 최소한의 보안 충족
- dev Branch
- 개발중인 브랜치
- 개발에 참여한 모든 인원의 결과를 합쳐서 확인 할 수 있을 정도로 준비가 된 상태여야 함
- 팀원의 코드리뷰를 받고 진행하는것이 정석
- feature Branch
- 보조 브랜치
- 기능 개발, 리팩토링, 문서, 단순 오류 수정 등 다영한 작업 기록을 위한 브랜치
'📄 Document > Project 설계' 카테고리의 다른 글
Hexagonal Architecture 구현 - 1 (Multi-Module, Kotlin) (3) | 2024.09.07 |
---|---|
Agile (0) | 2023.04.30 |
Sequence Diagram (0) | 2023.04.27 |
📄 개발환경 세팅 & 가이드 3 (프로젝트 설계) (0) | 2023.04.09 |
📄 개발환경 세팅 & 가이드 2 (SRS 개념) (0) | 2023.04.09 |