Git Workflow

세 명의 팀원이 개발하는 분야는 IoT, APP, WEB으로 모두 달랐기 때문에 각각의 Repository를 사용하였으나, 각 분야가 긴밀히 연결되어야 했기 때문에 서로의 개발 상황을 면밀히 주시하고 맞춰야 했다. 이에 Git Workflow 개발 방식을 활용하였다.

아래와 같이 구현해야 하는 기능별로 이슈를 만들고 브랜치 단위로 개발을 진행하여 Pull Request를 보내어 메인 브랜치에 머지하는 방식으로 진행하였다.

Issue, Pull Requests로 작업한 현황
branch 단위 작업과 Pull Request

이슈

이슈 만들기

우선 분야별로 필요한 기능들 정리 (다음에 개발해야 할 것들도!)

백엔드 예시

  • 용사 정보를 저장하는 Soldier Domain 모델 정의

  • 저장된 용사 정보와 라즈베리파이가 요청한 정보와 검증 기능

  • QR 코드 생성 후 안드로이드 앱 전송 기능

  • 등등.....

이슈 열기

위에서 정리한 목록으로 이슈를 만든다 (기능당 하나씩)

  • 제목은 간결하고 핵심 내용만 ( [이슈 목적] 이슈 제목 )

  • 본문은 자세하고 기술적인 요구 사항을 명시

  • Assignees는 책임자를 지정

  • Labels는 이슈의 목적을 지정

만약 Issue에서 다른 사람의 의견을 물어보고 싶으면 @github_id로 태그 할 수 있다.

만들어진 이슈는 아래처럼 #숫자와 같이 이슈 번호를 부여받는다.

이슈 관리 예시

아래처럼 여러 가지의 라벨을 붙여 관리할 수 있다.

브랜치

브랜치 만들기

위에 이슈를 기반으로 아래의 컨벤션에 따라 브랜치를 만든다.

브랜치 이름 예시

  • 기능(ENH) : feature/issue-n

  • 리팩터링(CLN) : cleanup/issue-n

  • 오류수정(BUG) : bug/issue-n

  • 테스트(TEST) : test/issue-n

기능 구현 관련 1번 이슈라면 브랜치 이름은 feature/issue-1 이라고 명명하면 된다.

커밋

커밋 메시지 작성

ENH: (Enhancement) 개선하거나 신기능 추가
BUG: 버그 수정
DOC: (Documentation) 문서화 관련된 작업
TST: (Test) 새로운 유닛테스트를 추가하거나 기존 테스트를 수정
BLD: (Build) 빌드 프로세스 관련 코드 혹은 스크립트를 수정
PERF: (Performance) 계산 속도의 개선과 관련된 작업
CLN: (Cleanup) 코드를 정리하거나 리팩토링한 작업

커밋 메시지 작성 예시

제일 아래에 Resolves #10을 적은 이유는 #10번의 이슈를 해결했다는 의미고 이렇게 작성할 경우 아래 커밋을 푸시 후 머지하면 자동으로 이슈가 닫힌다.

ENH : 라즈베리 파이에서 웹서버로 용사 정보를 전송하는 기능 구현

* 전송시 데이터는 post 형식에 용사 정보가 담긴 json을 담아 전송
* 용사 정보는 군번, 이름, 휴대폰 기종, 고유번호로 이루어짐

Resolves #10 
CLN : 웹서버에서 앱으로 QR코드를 전송하는 메서드 중복 수정

* 같은 기능을 하는 메서드가 여러개 있어 하나로 통합

Resolves #10 

Last updated

Was this helpful?