팀프로젝트 마무리
한주간 팀프로젝트를 마무리하면서 심화 단계에서 실직적으로 처음? 배울만한 협업 기술들을 배우게 된 가득가득한 한주가 된것 같다. 팀원분들중에서 깃허브에 대해서 많은 지식을 공유해주셔서 처음에 이슈를 생성하고 협업을 진행하면서 배우게 된점이 아주 많았다. 프로젝트가 기능적인 요소들에 대해서 많은 생각이 필요한건 마찬가지이지만 내가 작업한 내용들을 상세하게 정리해 가는것도 중요하다고 생각이 든다.
그럼 깃허브 협업에 대해서 알아보자
깃허브
이건 팀 프로젝트를 생성할 수 있는 목록인데 이것으로 팀 프로젝트를 생성해주게 된다면 개인 레포에서 생성한 프로젝트와는 또 다르게 팀원들이 올린 기록들을 자세하게 볼 수가 있다. 자세하게 팀원들이 어떤 부분을 작업을 하였는지에 대해서 살펴볼 수 가 있고 관리적인 측면, 기록적인 측면에서도 활용성이 높게 나타나는것 같다. 개인 레포와 팀 프로젝트의 생성을 하는 부분 자체는 크게 다르지는 않지만 팀 단위로 프로젝트를 만들때 더욱 이점으로 다가오는것 같다.
협업 심화에 대해서는 알아볼것들이 이러하다.
- Commit Rules 설정
- Branch 전략 설정
- PR Rules 설정
- 오거나제이션 생성
- Repository 생성
- Issue 생성과, Branch 생성
- PR과 Issue연동
이렇게 알아보고 가면서 깃허브에 협업에 대해서 이 목차에 대해서 알고 가면 더욱 자세하게 알게 되었다.
그럼 Commit Rules 설정에 대해서 알아보자 이것은 팀원들과의 회의가 필요한 내용인데 이번 팀과 회의하면서 정했던 룰에 대해서 정했던걸 살펴보자
Tag | Name | Description |
[FEAT] : ⚙️ | 새로운 기능을 추가 | |
[FIX] : 🔧 | 잔잔바리 수정 | |
[DESIGN] : 🎨 | CSS 등 사용자 UI 디자인 변경 | |
[!HOTFIX] : 💥 | 급하게 치명적인 버그를 고쳐야하는 경우 | |
[REFACTOR] : ♻️ | 프로덕션 코드 리팩토링 | |
[DOCS] : 📚 | 문서 수정, 필요한 주석 추가 및 변경 | |
[RENAME] : ✏️ | 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 | |
[REMOVE] : ✂️ | 파일을 삭제하는 작업만 수행한 경우 | |
[COMPLETION] : 🎉 | 작업을 완료하고 마지막 커밋을 작성하는 경우 | |
[MERGE] : ✅ | 병합 | |
[CONFLICT] : 💥🚚 | 병합 시 충돌 해결 | |
[DEPLOY] : 🚀 | 배포 관련 커밋 |
이런식으로 여러가지 예시 룰들이 있는데 팀만에 필요한 필수적인 요소들만 가져와서 사용하게 되었다. 이렇게 커밋 룰만 정해도 나중에 어떤 부분을 했는지에 대해서 알아보기가 쉽다. 예를 든다면 [FEAT] : ⚙️ 다이얼로그 추가 이러한 식으로 새로운 기능을 추가했다는 커밋 메시지를 남길 수 가 있는것이다. 그리고 항목들을 살펴보면 내가 했던 작업에 대해서 전반적인 내용을 알아보기 쉽게 알수있다.
Branch 전략
브런치 전략이라는건 배운 내용을 토대로 말을 해보자면 최초에 생성된 main이라는 하나의 브런치에서 개발 브런지인 dev 브런치를 만들어주고 팀원들이 맡은 각자의 브런치를 만들어주는것이다. 예를 들자면 main -> dev -> 이때 내가 맡은 페이지가 마이 페이지라고 예를 든다면 feature/mypage 이런식으로 브런치를 하나 생성해서 나만의 브런치에서 작업을 진행하게 되는것이다. 그리고 작업이 완료가 된 브런치는 중복을 방지하기 위해 병합을 하면서 삭제를 해주는게 좋다. 물론 로컬에서는 원격으로 삭제해주면 로컬은 남아있게 되지만 혹시 모를 리플랙트 오류에 대해서 개발이 완료되어서 병합을 해준다음에는 브런치를 삭제해 주는것이다.
그럼 PR Rule 설정에 대해서 알아보자
PR Rule
이렇게 네모친곳에 대해서 어떤 브런치에 PR을 할지를 정한다 여기는 dev에 내가 작업한 내용을 합쳐주는 역할인데 보면
main <- feature/~~~ 이런식으로 경로를 먼저 설정해준다. 그리고 커밋룰에서 적용한것을 가지고 타이틀에 넣어주고 그 아래에는 작업한 내용들을 넣어주면서 진행하게 된다. 이렇게 리뷰어를 팀으로 설정해주고 라벨을 달아서 상태에 대해 알게 알아볼 수 있게 만들어주면 된다.
캡쳐 내용에 있는것은 close #36 이라는것은 내가 만들어준 이슈를 브런치를 지우면서 브런치와 이슈와 pr을 한꺼번에 연동해 준 결과라고 보면된다.
팀 오거나제이션과 레포를 생성하는 방법에 대해서는 포스팅을 한것이 있으니 그걸 보면 될것 같다.! 이슈를 만드는것과 pr연동에 대해서는 한꺼번에 설명이 된것 같다. 이렇게 하면 캡쳐 화면에서도 보이다 싶이 내가 브런치를 병합을 한것을 close 해줌으로써 todo 에서 done으로 넘어가는 이슈에 대해서 알아보게 되었고
이렇게 작업을 한 내역들이 이슈들을 통해서 완료가 되었다는걸 한눈에 확인이 가능하다. 보면 done이라고 되어있는곳을 보면 이슈하나를 만들때 브런치 하나를 생성해준다고 생각을 하면 되고 팀원들과 많은 브런치화 병합을 진행했다는 사실을 알 수 있게 된다.
마무리하며
팀 프로젝트를 진행하며서 더욱 협업에 대한 지식이 필요하였고 지식적인 요구사항도 더욱 많아지는 단계이지만 팀원들과 소통을하고 내가 어려워했던 부분에 대해서 소통을 하면서 해보니까 확실히 빠르게 실력이 향상이 되어가는것 같다. 내가 모르는 부분도 혼자서 끙끙 하고 있지 않고 빠르게 팀원들에게 알려서 해결법을 같이 찾는것 이게 중요한것 같다. 그래야 빠른 진행과 해결책이 될수가 있다. 무조건 옆에 있는 동료와 팀을 귀찮게 해서라도 빠르게 해결책을 얻어야한다고 생각이 들었다.
이제 절반 정도 이런 개발자의 길을 걸어가고 있다. 이제 남은 프로젝트가 2개인데 내일부터는 새로운 팀원들과 함께 하겠고 이후 마지막 프로젝트는 마지막 최종 프로젝트로써 약 한달여간 작업을 하면서 그만큼의 퀄리티까지 기대를 해야할것 같다. 이번주에 새로 배우게 되는건 데이터 베이스에 대해서 배우게 될것같다. 뒤쳐지지 않게 열심히 임해야겠다..