오늘 배운 것
1. Git-flow Wordflow
지금까지는 개인 프로젝트와 공부를 병행하면서 짬나는 시간에 팀프로젝트를 진행했지만, 정규 수업이 종료된 오늘부터는 본격적인 팀프로젝트 시작이다. 팀 프로젝트를 시작하면서 협업시 Git workflow를 어떻게 관리하면 좋은지 학습하는 시간을 가졌다. Git workflow란, Git을 이용한 협업시 브랜치를 어떻게 사용할지에 대한 규칙을 뜻한다. Git workflow도 리액트 컴포넌트 디자인 패턴과 마찬가지로 정해진 표준이 있는 것은 아니다. 회사나 팀별로 합의된 방식을 이용하면 된다. 오늘은 그 중 현재 가장 많이 사용되고 있는 Workflow 중 하나인 Git-flow를 예시로 배웠다.
Git-flow의 경우 각각의 브랜치의 역할이 명확하며, 버전 관리가 쉽다. 라이브 서버인 master에 merge하기 전에 여러 단계를 거치기 때문에 안정성이 높다. Git-flow는 크게 다섯가지의 브랜치로 구성되어있다.
master(main)
- 배포용 브랜치. 사용자들이 실제로 사용하는 코드는 master 브랜치에 있다.
develop
- 개발용 브랜치. 다음 버전의 기능을 추가하기 위한 브랜치로, 개발 작업의 실질적인 메인 스트림이다.
feature
- 기능 구현시 실제로 작업을 진행하는 브랜치. 각각의 기능 혹은 Issue별로 feature 브랜치를 만들어서 작업한다. develop에서 땡겨온 뒤, 작업을 마치면 develop에 병합한다. feature 브랜치의 이름을 짓는 방식은 팀의 룰을 따르면 된다. (feature-boardWrite처럼 기능 단위로 짓기도 하고, feature-#11처럼 Issut number 단위로 짓기도 한다.)
release
- develop 브랜치에서 작업이 끝난 버전을 확인하기 위한 브랜치. QA를 위한 브랜치로, release 내에서는 버그 픽스만 이루어진다. release에서 확인이 끝나면 master에 병합하여 라이브 서버에 반영한다. master에 반영하는 동시에 develop 브랜치에도 병합하여 개발 작업의 기준이 되는 코드가 최신화 될 수 있도록 한다.
hotfixies
- 당장 수정해야하는 긴급 버그가 발생한 경우 사용하는 브랜치. master에서 꺼내 바로 사용하며, 버그 픽스만 진행한 뒤 develop과 master 브랜치에 병합한다.
브랜치 관련 명령어
git branch
// 현재 레포지토리의 브랜치 확인
git checkout -b feature-#1
// feature-#1 브랜치를 만들고 해당 브랜치로 이동
git checkout feature-#1
// feature-#1 해당 브랜치명으로 이동 (이미 존재하는 경우에만 해당)
git merge feature-#1
// feature-#1 브랜치를 현재 위치에 병합
이 과정에서 최상위가 되는 팀 레포지토리를 upstream이라고 한다.
내가 작업하는 레포지토리를 origin / 팀 레포를 upstream이라고 이름 짓는 것이 일반적이다.
(물론 이것도 정해진 표준은 아니다. 팀 내의 룰을 따르자.)
번외
이미 github repository와 연결되어있는 폴더에 또 다른 github repository를 연결하는 방법
git remote add upstream [upstream 깃헙주소]
위와 같은 명령어를 입력하면, 이미 origin과 연결되어있는 폴더에 upstream이라는 remote를 추가할 수 있다.
2. 팀프로젝트 기획 회의
2주동안 부지런히 움직여서 와이어프레임과 플로우차트의 얼개를 만들었다. 플로우차트를 바탕으로 백엔드도 ERD를 작성했고, 오늘 저녁에 지금까지의 진행상황을 공유하는 전체 팀 회의를 진행했다. 5명의 팀원 중 4인이 확진이라는 안좋은 상황임에도 불구하고(ㅠㅠ) 리모트로나마 회의할 수 있는게 얼마나 다행인지.
기획 작업은 절대 한 번에 끝나지 않는다는 것을 배웠다. 와이어프레임을 꼼꼼하게 짰다고 생각했는데도 회의를 할 때마다 놓친 부분들이 눈에 보인다. 그동안 피곤해도 부지런히 진행한 것이 잘 한 선택이었구나 느꼈다.
협업이니만큼 같은 이야기를 해도 다섯명의 머릿속에 그려지는 이미지가 다르다. 그 이미지를 통일시키기 위해서 많은 대화와 협의, 그리고 구체적인 그림들이 필요하다. 아직은 시작하는 단계라 이 프로젝트를 잘 마무리 할 수 있을지 막연하게 느껴지지만 차근차근 한 단계씩 밟아나가다보면 무엇이든 만들어져있겠지? 시야를 넓게 가지되 그것에 압도당하지는 말아야지.
앞으로 할 것
- 목업 제작 플랜 세우기
- SCSS 재활(..)하기. 팀원들에게 가르쳐줄 수는 있을 정도로.
- 마이페이지 와이어프레임 정돈 및 주석 달기
- SSR/SSG 배포 이해 안됐던 부분 다시 보기
'Journal > Today I Learned' 카테고리의 다른 글
TIL - 2022.07.20 수요일 (0) | 2022.07.21 |
---|---|
TIL - 2022.03.14 월요일 (0) | 2022.03.14 |
TIL - 2022.03.08 화요일 (0) | 2022.03.08 |
TIL - 2022.03.03 목요일 (0) | 2022.03.03 |
TIL - 2022.02.23 수요일 (0) | 2022.02.23 |