애자일 툴은 Jira가 아닌 linear를 도입하였으며 git을 곁들인 프로젝트 작업 Flow 전략을 아래와 같이 수립하게 되었다.
문득, git + 애자일 프로세스(Ticket 기반)를 동시에 설명하는 방법론에 관련한 글을 자주 접해보지 않았던 것 같아 글로 남기면 좋겠다고 생각했다.
git-flow
채택 근거 : FE의 인원은 2명이기 때문에 trunk based로 운영할까 생각도 했다. 하지만, 6주 기간동안 진행되는 프로젝트이기 때문에 예상치 못한 문제점이 많이 발생할 수 있다. 따라서 branch를 세분화해서 운영하는 git-flow를 채택.
빠르게 결과물을 내고, branch 관리에 사용되는 cost가 부담되는 프로젝트라면 trunk-based에 추가 branch를 만드는 것도 아주 좋은 전략이다.
git checkout -b feature/{작업자 이름}/{티켓}
git checkout feature/pengooseDev/TicketBoard
FE 인원이 2명이라는 강점을 반드시 살릴 것.
문제점가 발생하면 빠르게 토론하고 의사결정을 내린다.
사용할 기술이나 문제점을 해결할 전략의 Cost가 적절한지 토론한다.
FE의 기술만으로 해결하기에 Cost가 높거나 한계가 있는 경우 BE에서 해결할 수 있는 방안을 준비해 BE에게 제시 및 상의
한다. (무작정 해줘 X)
문서(Ticket, issue)로 존재하지 않는 Commit은 생성하지 않는다.
본인의 origin feature/{작업자 이름}/{Ticket 이름} ⇒ upstream의 develop
Ticket의 state를 변경
한다. (In Progress ⇒ Complete)작업한 branch는 삭제
한다.ESLint와 Prettier을 도입하였다.
Airbnb방식을 도입하였으며, conflict를 최소화할 수 있는 전략 중 하나이다.
사실 conflict 문제가 아니더라도 코드 컨벤션을 맞춰야 불필요한 code 변경이 발생하지 않는다.
좋은 커밋은 무엇인가? 나의 생각은 아래와 같다.
- 커밋 로그만 확인하더라도 무슨 작업을 어떻게 진행했는지 흐름을 확인할 수 있어야 한다.
- 커밋 로그와 커밋 내용이 일치해야 한다.
위의 목표를 달성하기 위해, husky를 이용해 Commit Convention을 설정했다.
이전까지 자주 실수하던 부분 중 하나가, 하나의 Commit에 여러 내용이 들어가있었다는 것이다.
이러한 실수를 신경쓰다보니 git add .을 하는 경우가 거의 없어졌다.
문제는 이전에 작성했던 코드들의 내역이 기억나지 않는 경우가 가끔 있다는 것이다.
이때, github desktop으로 코드의 변경사항을 확인하고, 기능명세서 단위의 commit을 생성하는 방식을 도입하여 문제점을 해결하게 되었다.
위 두 사항을 인지하고 Ticket기반 commit을 하다보면 커밋로그가 깔끔하고 효용성이 높아진다는 느낌을 받게 되었다.
NodeJS의 version은 18.12.0으로 통일하였다.
팀원들 간의 NodeJS version이 다를 경우, 패키지 매니저가 설치하는 의존성 모듈들의 버젼이 달라 오류가 발생할 수 있기 때문이다.