Intro
최근부터 팀 프로젝트를 할 일이 점점 생기고 있다. 그런데 만났던 사람들 중 대부분이 프로젝트를 처음하거나 체계적으로 한 경험이 없었다.
곧 나와 프로젝트를 함께 할 팀원들을 위해, 혹은 팀 프로젝트를 처음 하는 사람들에게 도움이 되고자 나의 협업 방법을 풀어나가고자 한다. 비록 나도 아직 완벽하다고 할 순 없지만, 이 글을 참고해서 본인의 프로젝트에 맞게 수정 및 보완하면 좋을 것 같다.
대상
해당 글은 프로젝트를 처음 해보거나, 체계적으로 해본 경험이 없는 누구나 당장 협업에 참여할 수 있도록 작성하였다!
참고로 초심자 대상으로 작성한거라 작은 프로젝트 기준으로, 필요 없어도 될 것 같은 것은 생략했다.
다 알려고 하면 너무 복잡하고.. 막막해서 시작도 못할 수 있기 때문이다! (일단 시작하는게 중요하다!)
git 용어를 아예 모르는 사람은 조금이라도 공부하고 보는게 좋다.
git알못을 위해 추천하는 영상 : 슬GIT로운 코딩생활, 생활코딩 Git
가장 처음으로 할 것, 규칙 정하기!
협업에서 가장 중요한 것은 규칙이다. 규칙 없이 각자의 스타일대로 작업하면 다양한 문제들이 발생할 것이다. 그러니 프로젝트 시작 전 귀찮더라도 꼭 정하자. 안그러면 나중에 귀찮은 일들이 정말 많이 발생할 것이다...
내가 사용하는 규칙은 다음과 같다.
1. Git 규칙
1) Branch (git flow)
git branch는 다음과 보통 다음과 같이 있다 - main, develop, feature, (release, hotfixes)
괄호를 친 이유는, 작은 규모의 프로젝트에서는 해당 브랜치를 쓸 일이 없어서다. 나도 아직 저 정도 규모의 프로젝트를 한 경험이 없어서 그냥 넘어가겠지만, 본인의 프로젝트에 필요할 것 같으면 찾아서 사용해보자.
각 브랜치의 역할을 말하자면 다음과 같다.
- main: 배포본
- develop : 배포본 이전본, 총 통합 브랜치 역할
- feature/기능명 : 기능
ex) feature/login, feature/main
간단히 개발 흐름을 말하자면 다음과 같다.
- 개인이 맡은 기능(feature) 브랜치에서 작업하고,
- 해당 기능이 완성 됐으면 develop 브랜치에 올린다.
- develop에 모든 기능들이 모이고 문제 없이 정상적으로 작동하면
- main 브랜치(배포본)에 올린다.
다음 그림은 유명한 git flow 도식도다. master 브랜치를 시작으로, 필요한 브랜치를 나누고 있다.
나는 main, develop, feature 브랜치만 사용을 전제로 작성했으니 해당 부분 흐름만 쓱 보면 이해하는데 도움이 될 것이다.
아래 그림에서는 main이 master로 되어있다. 둘 다 같은 표현으로, 현재는 이름을 main으로 쓰는 추세이다.
2) Commit 컨벤션
현재 나는 주로 다음과 같은 컨벤션을 사용하고 있다.
- feat : 새로운 기능 추가
- fix : 기능 수정
- style : 스타일 관련
- refactor : 코드 리펙토링
커밋 컨벤션은 타입부터 작성 방식까지 되게 다양하다. 나도 아직 경험이 많지 않아서 위와 같이 간단하게만 사용했다.
더 자세한 방식을 알고 싶다면 해당 글을 참고하면 좋을 것 같다!
2. 디렉토리 구조
코드 파일 디렉토리 구조는 분야별로, 프레임워크별로 다 다르다. 나는 웹 프론트엔드, 그 중 React 프레임워크를 사용하므로 이를 예시로 들겠다.
이런식으로 정하는구나 참고만하고, 절대적인 법칙은 없으니 각자의 상황에 맞게 구글링해서 정하면 될 것같다.
my-app
├── node_modules
├── public
├── src
├─ components
├─ assets
├─ pages
├─ styles
├─ App.js
└─ index.js
├── .gitignore
├── package.json
└── README.md
3. 그 외...
그 외에도 코드 컨벤션(변수명, 함수선언방식) 등이 있다.
웹 프론트엔드 경우는 prettier, eslint 파일을 설정하는 과정도 거치면 개발 효율성이 매우 올라갈 것이다.
'Git' 카테고리의 다른 글
팀 프로젝트를 위한 매뉴얼(3) - 협업 필수 기능 Pull Requests (0) | 2023.06.04 |
---|---|
팀 프로젝트를 위한 매뉴얼(2) - 프로젝트 세팅하기 (1) | 2023.05.21 |
.gitignore | git 추적 제외할 파일 지정하기, 패턴 형식 (0) | 2023.01.25 |
git add | 파일을 staging area에 올려 commit 할 수 있는 상태로 만드는 방법, staging area에서 제거하는 방법 (0) | 2023.01.25 |
git status | 파일 추적 상태 확인하기, 간단하게 확인하는 법 (0) | 2023.01.25 |