내일배움캠프 1일차 TIL : Git 협업

김정환·2024년 9월 9일
0

키워드

  • Git 개념
  • Git 실제 사용 실습

Git 특강

git의 개념과 github를 다루는 방법에 대한 특강이 진행되었다.
정리 1 : https://velog.io/@jhk0701/Git-%ED%8A%B9%EA%B0%95-1
정리 2 : https://velog.io/@jhk0701/Git-%ED%8A%B9%EA%B0%95-1-2

팀프로젝트 정리 및 역할 분배

이번 미니 프로젝트의 핵심은 여럿이서 프로젝트를 작성하고 이를 git과 github로 버전관리해보는 것이다.
그러니 간략하게 필수 기능을 정리하고 바로 실습에 들어갔다.

프로젝트 깃허브 링크
https://github.com/jhk0701/project-CardFlip

main 브런치에 빈 프로젝트를 만들고, dev 브런치로 복사했다.
그리고 모든 팀원들은 dev 브런치로 복사하여 개별 feature 브런치들에서 작업을 진행했다.

Merge

각자 작업을 마치고 19시부터 merge를 시작했다.

서로 독립적인 기능들 효과음, 타이머들을 먼저 merge했다.
예상대로 둘은 겹치는 부분이 없어서 충돌이 일어나지 않았다.

충돌이 예상되는 부분은 카드 애니메이션 작업과 카드 랜덤 배치 작업이었다.
우선 비교적 안전할 것이라 생각한 카드 프리팹과 애니메이션을 먼저 dev에 합쳤다.
근데 생각해보니까 이러면 안됐다. 그리고 그걸 작성하는 지금 깨달았지.

애초에 충돌이 예상되는 거면 저둘을 먼저 merge해서 충돌을 해결해야하지 않았나 싶다.
도중에 발생한 문제는 서로 동일한 스크립트의 작업이 있었다.
Card 스크립트는 둘이 동시에 작성하는 스크립트였는데 이 부분에서 충돌이 일어났고
둘중 하나를 선택하는 게 아니라 둘의 내용을 합쳐야했다.

도중에 일어난 문제의 코드를 보면서 필요한 내용들을 합쳤다.
다행이 내용들이 겹치진 않고 각자 다른 함수들을 추가했다.

또 다른 문제는 특정 프리팹이 merge 과정에서 제거되었다.
추정하기로는 어떤 프리팹과 meta data 상의 id가 겹쳐서 이를 대체한 것으로 보인다.

해결 방법은 특정 프리팹을 별도의 패키지로 export하고 브런치들은 merge한 후
이 패키지를 import 해주었다.

다행히 프리팹과 연관 스크립트들이 복구되었다.

merge 가 완료되었고 dev에 push해서 각자 자신들의 작업물이 잘 반영되어 있는지 확인하는 시간을 가졌다. 그리고 완료되었다면 오늘 작성한 feature 브런치들은 삭제하도록 했다.

내일은 다시 dev 브런치에서 새로운 작업들을 시작해볼 것이다.


오늘 작업한 브런치들과 merge 결과다.
다행히 merge가 마무리되어서 dev 브런치로 귀결되었다.

dev도 main 브런치에 pull해주면서 마무리했다.
https://github.com/jhk0701/project-CardFlip/pull/1

문제점

오늘 작업을 해보면서 겪은 문제점은 크게 3가지였다.

  1. Merge 순서
    충돌이 예상되는 브런치들 처리 방법인데 이건 정답이 없는 것 같다.
    다만, 리스크를 최대한 줄이는 방향이 무엇인지 생각해보고 움직이는게 좋을 것 같다.
  2. 스크립트 내용의 충돌 처리
    이 문제는 merge 시에 둘중 하나만 선택하는 게 아니라 스크립트를 직접 수정할 필요가 있었다.
    데스크탑 앱에서 파일을 열 프로그램을 한번 찾아봐야겠다.
  3. 특정 프리팹의 교체
    이 문제는 어떻게 해결하는지 좀 더 확인할 필요가 있다.
    rebase라는 기능이 있다고 하는데, 무슨 기능인지 그리고 이 함수를 데스크탑앱에서 어떻게 실행하는지 확인해봐야겠다.

#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL

profile
만성피로 개발자

0개의 댓글