(2020.07.07)프로젝트 초기 설정 논의(1) - woowacourse-teams/2020-devbie GitHub Wiki

작성자 : 보스독

Git Flow vs Github Flow

  • 발표자 : 유안
  • Git Flow 보다는 Github Flow를 사용하는게 어떨까
  • 브랜치 종류가 복잡한 Git Flow에 비해 Github Flow는 master 외 브랜치는 자유롭게 이용함
  • 주로 이슈 및 PR기능을 사용
  • PR이 Merge될 때 해당 이슈와 브랜치를 close한다.
  • IntelliJ에서 저장소를 연결하면 Open Task를 사용해서 이슈를 찾고, 해당 이슈를 기반으로 브랜치를 새로 만들 수 있음.
  • 이슈 템플릿을 활용하면, 이슈를 작성할 때 반복되는 작업을 줄일 수 있다.
  • 이슈 → 프로젝트, 프로젝트 → 이슈 두 방법 모두 가능하지만, 이슈 → 프로젝트 등록으로 가는게 깔끔함.

Coding Convention

  • 발표자 : 보스독
  • 프론트엔드 코딩 컨벤션
    • 프론트 프레임워크 vue.js로 결정
    • ESLint와 Prettier사용
      • ESLint는 vue에서 공식적으로 권장하는 eslint-plugin-vue를 사용
      • Prettier는 ESLint와 통합으로 사용하기 위해서 eslint-plugin-prettier를 사용
      • IntelliJ의 ESLint 설정에서 Run eslint --fix on save를 체크하면 저장시 자동으로 체크하도록 함.
  • 백엔드 코딩 컨벤션

Github Issue / PR

  • 발표자 : 소니
  • 스프린트 주기는 마일스톤으로 관리
  • 마일스톤 안에는 에픽들이 등록됨 → 에픽을 사용하려면 젠 허브(zen hub)를 설치해야 함.
  • 이슈
    • 미리 작성해 둔 템플릿에 맞게 작성 → feature, bugfix
    • 역할에 맞는 라벨 달고 담당자를 assign한다.
    • 에픽 안에서 관련 기능별 이슈들의 진행사항을 체크한다.
    • 이슈 등록할 때, 얼마나 걸릴지 Estimate을 설정하는 기능 활용하자.
  • 젠 허브 (zen hub)
    • 크롬 익스텐션 설치, 에픽을 사용하기 위해서 필요하다.
    • 칸반에서 에픽의 진도 현황을 볼 수 있다.
  • 스프린트 주기는 1주에 한번을 목표로 한다.
  • 이슈와 PR은 최대한 작은 기능 단위로 나눈다. 큰 이슈일 경우 상의하여 작게 분할하기로 한다.
  • PR은 하나의 이슈에 매칭되도록 하고 PR이 닫힐 때 이슈도 함께 닫히도록 한다.
    • fixes #이슈번호 or resolve #이슈번호

Gradle + SpringBoot + Travis CI + Coveralls

  • 발표자 : 코일
  • 참고링크 by 조졸두
  • Travis는 PR을 자체 서버에서 검증 한 후 build가 안되면 Merge가 안되게 함.
  • 빌드를 못하게 제약을 거는 것은 Jacoco 프로그램을 통해서 함. (Jacoco는 자바코드의 테스트 커버리지를 체크하는 도구)
  • 테스트는 gradle 기반으로 테스트한다.

Github + Slack 연동 완료 ⭕️

초기설정 논의 현황

  • ✅코딩 컨벤션 : ESLint, Naver-code-convention
  • .gitignore : application.properties etc..
  • spring boot starter : dependencies
  • Travis Ci + Jacoco : Coverage Limit
  • Frontend + Backend Port Integration
  • Git flow VS Github flow
  • Maria DB 계정 설정 (처음엔 h2로 작업)