2019-11-27
master : 배포 브랜치. 버전을 태그로 관리
develop : 개발용 브랜치
서포팅 브랜치
자신들의 개발 철학을 설명하며 github이 소개.
사람들이 헤메지 않게 해줌
강조점
master는 언제 배포해도 문제가 없어야 한다
설명
github flow는 너무 간단하다. (git flow는 너무 복잡)
자신들의 flow를 소개할 때, 모범사례들을 같이 소개했었다.
만약 배포가능 시간이 정해져있는 회사라면, github flow로는 작업하던 개발자가 merge조차 할 수 없게 된다.
=> production 브랜치를 만들어놓고, 배포 나갈걸 merge해주면 배포가 이루어진다.
master → pre-production → production 순서로 단계를 밟는 merge만 가능. 따라서 배포도 마찬가지.
여기서 pre-production은 staging환경과 같은 말. staging에 merge가 되어야 하고, staging에서 다시 브랜치를 따서 production에 merge해야 한다.
배포 시각 기록을 하고싶다면 배포 스크립트에 tag를 생성하게 해주면 된다
단기간 일정 + 장기 일정
rebase로 정돈된 히스토리 유지
따로 release브랜치 생성하지 않음. 개발일정 브랜치를 master에 머지해 배포함
배포하면
rebase로 기존 브랜치를 이동시키는데, 컨플릭이 심하면 새 브랜치를 만들고 cherrypick함
복잡하다는 단점이 있지만, 히스토리 정돈을 통해 디버깅이 용이해짐.
정적 분석과 유닛 테스트가 인상적.
QA 기간도 개발 플로우의 일부.
유닛테스트 + SonarQube 정적분석 테스트 이용중
젠킨스 이용 - Github PR builder plugin
SonarQube가 코드리뷰를 해준다. (IDE에서 해주는거랑 비슷한데 이건 PR올릴때의 테스트하니까 통과못하면 merge불가)
기계적인 테스트 , 코드리뷰는 자동으로 하고
사람은 좀더 비즈니스 로직에 집중해 리뷰한다.