[패스트캠퍼스 Upstage AI Lab 2기 기자단] #3 Git

156·2024년 2월 6일
post-thumbnail

어느덧 기자단 세 번째 글이다. 이번에는 EDA 프로젝트 직후에 배웠던 Git에 관해 글을 써보려고 한다. 나는 Git 배우는 게 엄청 재밌었다. 왜 재밌었는지는 아래에서..

🎉 Git?

Git은 왜 배울까? 아마 이 글을 보는 대다수의 사람들은 그 이유를 어렴풋이라도 알고 있을 것이다. 단순하게 요약하자면 [효율적인 협업 툴]이라 말할 수 있는데, 그 이점은 내가 생각했던 것만큼 대단했다.

  • 소스코드 주고받기 없이 동시작업으로 인한 생산성 증가
  • commit 단위로 관리, 배포하고 원하는 시점으로 checkout 가능
  • 새로운 기능은 Branch로 개발하고 성공적으로 완료되면 Merge로 합칠 수 있음

발표자료.pptx
발표자료-최종.pptx
발표자료-진짜최종.pptx
발표자료-진짜최종-최종.pptx
(-진짜최종 버전부터 문제가 있었음)
발표자료-최종.pptx부터 다시 수정
(다른 사람들은 수정 완료까지 대기)

위와 같은 수순을

ver1 -> ver2 -> ver3 -> ver4
(ver2부터 문제가 있었음)
ver2 불러와서 ver2-2 Branch에서 수정
(다른 사람은 ver4 -> ver5 -> ver6 -> ver7)
ver7과 Merge -> ver8

이렇게 효율적으로 밟을 수 있게 한다..!

나는 이런 Git을 배우는 것이 몹시도 흥미로웠는데.. 그 이유는 Git이 필요한 협업 환경의 프로젝트를 친구와 진행 중이었기 때문. 프로젝트 진행 과정 중 계속해서 친구와의 코드 공유에 어려움이 있었고, "아마 Git을 쓰면 해결 될텐데"라고 생각만 하던 참이었다. 프로젝트 인원은 딱 2명뿐인데다가 당장에 기능 구현을 하는 것에 더 중점을 두어서 오히려 Git을 배우는 것이 시간적으로 비효율적인 상황이라 보류하고 있었다.
이런 상황에 Git 과정에 진입하게 되었고, 실제로 내 협업 프로젝트에 생산성있게 사용할 수 있다고 생각하면서 배우니 무척이나 재밌었다. (오, 이런 기능이라면 이렇게 할 수 있겠군. 라면서)

✨ Git!

(학습 후 실제 내 프로젝트에서 사용 중인 Git)

Git을 배운다는 건 대부분의 시간을 Git Bash에서 명령어를 치는 것에 할애한다는 의미일 것이다. 이건 나중에 알게 된 얘기지만 피어세션이나 다른 후기글들을 보니, 많이들 Git이 어려웠다고 했다. 그런데 이 Git 명령어들, Linux와 상당히 닮아있다! 리눅스 명령어에 대한 경험 덕분에 프롬프트에서 명령어를 치는 것에 어려움이 있지 않았다. 그리고 앞서 말한 Git에 대한 흥미 덕분에 학습 효율이 극대화 되었다는 점도 한몫하는 것 같다.

최우영 강사님께서 Git 강의를 진행해주셨다. 말씀도 나긋 자상하셔서 듣기 편하고 무엇보다 강의 내용이 알차서 매우 만족했던 강의였음.

강의 내용 중에서 가장 많은 도움이 되었던 자료인데, 머릿속으로만 생각하면 구체화하기 어려운 부분들을 직관적으로 이해할 수 있도록 해주었다. 처음 Git을 배우면 git add했다가, git commit했다가, git push를 하는 것에 헷갈릴 수 있고, 이 때문에 다른 수강생 분들이 어려워 했던 것 같다.
배우다가 "내가 지금 어디 부분을 다루는 거지?"하고 길을 헤멘다면 위 사진을 보고 천천히 이해해보자. 나는 캡쳐해두었다가 20번도 넘게 꺼내보았던 것 같다.

명령어들을 배우고 나면, 강사님이 과제를 내주셨다. 이런 실습 과정이 있는 것이 매우 좋았다. 배웠던 내용들을 내 skill로 체화하는 과정이 되었다.

그리고 마지막 Final Project는 2시간 동안 팀 단위로 진행하게 되었다.

🐛 엉망진창 Final Project: 오히려 좋아

여기서 팀장을 뽑고, 그 팀장은 직접 repo를 만들고, 팀원들을 초대하고, compare를 수행하게 된다.
나는 꽤 자신있었어서 직접 팀장에 자원했다. 그러나 내가 맡은 팀은 무한 삽질의 굴레로 들어서게 되는데..

내가 맡은 팀은 여러 문제들에 직면하게 되었다. 먼저 4명이 한 팀인 프로젝트에서 다른 한 분이 불참하셨고.. 업무를 어떻게 나눠야 할지 맨땅에 헤딩이었고..(구체적으로 어디어디는 누구! 라고 정하기 난감한 문제였다) repo를 만드는 과정에서 문제가 생겨 중간에 갈아엎고 다시 만들었다.
나는 팀원들 지휘하랴, 팀장 업무 수행하랴, 빈 자리 한 명의 코드도 작성하랴 매우매우 험난했던 2시간 이었다.

하지만 덕분에, 그러나 오히려. 더 값진 경험을 겪었다고 확신했다.
먼저 팀장인 내가 팀원 초대, repo 생성, 그리고 compare를 수행하며 겪은 경험, 그리고 팀원들과 상황을 공유하고 강사님 피드백을 통해 다시 repo 생성했던 경험. 팀원분들의 branch 생성 - pull - merge 작업에서 생기는 issue들을 함께 원인 분석하고, 해결했던 경험들이 Git을 이해하는 것에 좋은 거름이 되어주었다.

엉망진창 폭풍처럼 휘몰아쳤던 2시간을 끝내고 팀장으로서의 사과와 감사의 말을 전했는데, 다들 '오히려 좋아'의 마음으로 오히려 더 많이 배웠다고 하셨다. 모두 감사하다..!

파이널 프로젝트가 끝난 후 모인 마지막 시간.
사진 속 내 댓글처럼 직접 프로젝트를 진행해보니 repo, forked, clone 구조를 명확하게 이해하게 되었다. 역시 프로젝트가 주는 경험이 가장 값지다.

이번 2시간의 팀 프로젝트는 Upstage AI Lab에서 진행하는 7번의 프로젝트에 카운팅 되지도 않는 미니 프로젝트였지만, 역시나 많은 것을 배울 수 있었다.

다음 프로젝트에선 또 어떤 경험이 있을까. 기대하며 그럼 뿅-

이번 글에 사용한 이모지 의미

0개의 댓글