Git Branch 전략
- Git은 Branch를 통해 다양한 전략수립이 가능하며 Agile방법론과 병행이 유리
- master : 운영 배보 환경
- develop : 개발 환경
- release branch : 버전별 관리
- feature branch : 기능별 분리 관리
- hotfixes : 버그픽스에 활용
DevOps : 개발과 운영을 합침
- SI : 기간내 프로젝트 개발
- SM : 서비스 운영 담당자 -> 서비스가 문제가 없도록 잘 도와주는 역할
연속성이 없어서 SI/SM 통합을 함
develop
- Git Flow를 이용한 모든 브랜치 생성
- 개별 정책을 이용한 일부 브랜치 활용
release
- develop에서 가져오고 양쪽다 merge를 한다
Hot fix
- main에서 가져와서 동일하게 hitfit를 만듦
feature
develop에서 가져와서 만들고 merge
자동 배포 전략
git flow init
- git Flow를 이용한 전략 수립
- 브랜치가 많아져서 권장하지는 않음
ex)
feature 브랜치 생성(develop에 merge후 삭제됨)
git flow feature start feature_branch
수정 완료 후
git flow feature finish feature_branch
실습
- 개발환경 GIT전략 적용
-> branch 적용하기
workflow 사용 시
- release는 main, develop에 merge
- feature는 develop에 merge
- hotfix는 main에서 생성
- release와 feature는 develop에서 생성
핵심
- 기능분해가 중요함
- 계획성 있는 배포 전략이 필요함
- 파트장 승인을 통한 Merge 수행
- 이 시점에 코드리뷰를 통해 검증 수행
배포전략수립
Rolling updata
- 사용중인 인스턴스에 점진적으로 교체
Git의 활용
Git전략과 프로젝트의 연계
- 배포 태킹 전략 수립
) commit시 해당 규칙 정리
) 요구사항 번호 수립 #231
) 기능, 비기능 헤더 수립
) 개발 서버와 운영서버 분리
) prod 전략 -> 운영서버 연계
) develop 브랜치 -> 개발서버 연계
) 수동 배포 - crontab 또는 Git clone 활용
) 자동 배포 - Jenkins 운영 계획 수립
코드 리뷰
- merge 수행 시 코드 리뷰
- 코드 collision 발생 시 모두 함께 해결
- 코드 표준화
) 주석 처리 규칙
) 메소드 명명 규칙 지정
) 파라미터 규칙 지정
) 인터페이스 규칙 : 아직 개발 중인 경우 약속 수립
- 코드 리뷰 레벨
) 동료 검토
) 코드 리뷰 : 비공식적인 리뷰 수행
) 인스펙션
)) 공식적인 리뷰 수행
)) 작성자가 아닌 다른 사람이 읽는다.
)) 작성자가 아닌 다른 사람이 기록
)) 모데라토(중재자)의 의견을 따른다
) 규칙위반사례 찾기, 재사용성 찾기, 협의하기