대학원에서도 분명 코딩!!이라는 것을 공부했지만, 공부할 때는 Git을 쓸 필요도 없었고, 가르쳐주는 사람도 없었기에 Git이란 단어를 들어본 적은 있어도, 실제로 사용할 이유나 생각조차 없었다.
대부분의 코딩 공부는 혼자 해왔기에 버전 관리 도구의 필요성을 깊게 느끼지 못했던 것 같고, 카카오톡이나 메일로 코드를 보내주던 굉장히...이상하게 일을 하던 시절이었다고 생각이 되었다.
이번 수업을 통해 Git을 배우면서, 비로소 이 도구가 얼마나 중요한지 깨닫게 되었다.
특히 협업의 관점에서 보면, 단순한 코드 저장을 넘어서 여러 사람과 소스 코드를 효율적으로 관리하고 문제 발생 시 빠르게 대응할 수 있는 구조가 정말 놀랍다고 느꼈다.
Git이 그저 프로그래머만을 위한 것이 아니라, 효율적이고 체계적인 프로젝트 관리에 필수적인 도구라는 것을 이번에야 실감하게 되었고, 지금까지 코드관리라고 했던 것이 많이 부끄럽게 생각이 되었다.
Git의 필요성과 편리함!
Git은 코드의 변경 사항을 기록하고 관리하는 버전 관리 도구라고 했다.
이전에 나에게 Git이란...코드를 보러 들어가고 복사붙여넣기만 하는 일종의 페이지였다.
그저 블로그로 생각했고 엄청나게 복잡해 보였지만, 배워보니 프로젝트 내 코드를 체계적으로 관리하고 필요할 때 쉽게 이전 버전으로 돌아갈 수 있다니...! 정말 신세계였다... 이런걸 왜 아무도 안 가르쳐줬지...?
특히, 협업의 측면에서 Git은 더욱 중요한 도구임을 깨달았다.
여러 사람이 동시에 작업할 때도 각자의 수정 사항을 안전하게 병합하고, 충돌이 발생해도 빠르게 해결할 수 있는 점이 Git의 강력한 장점 중 하나였다.
이런 편리함 덕분에, 코드를 보다 체계적으로 관리하고 작업 흐름을 간소화하는 경험을 할 수 있었다고 하는데, 아직 큰 경험은 못해봤지만, 협업이라는 것 만으로도 심장이 두근거렸다. 이전에 코드는 나혼자 만들고 나혼자 트러블나면 이게 뭐야..하고 있었는데, 이렇게 협업을 경험할 수 있을 줄은 몰랐다.
Git은 이런거다!
Git은 위에서도 언급했지만, 코드의 변경 내역을 추적하고, 필요할 때마다 이전 버전으로 쉽게 되돌아갈 수 있게 해주는 분산 버전 관리 시스템이라고 한다!
GitHub와 같은 원격 저장소와 결합하면, 팀원들과 동시에 작업하면서도 각자 작업 내용을 충돌 없이 관리할 수 있다고 했고, 첫 수업에서는 실습과 더불어 add, commit, push 같은 기본 명령어를 수행하면서 Git의 기본 구조와 흐름을 이해하는 데 집중했다.
또한, 수업에서 Shell과 Vim 명령어를 처음으로 익혔는데, 이는 Git 명령어와 조합하여 효율적으로 파일을 관리하고 편집하는 데 큰 도움이 된다고 한다....
정말 좀 신기한 경험으로 처음 켜보는 창이었다.
특히, Shell의 cd, mkdir, touch 같은 명령어와 Vim의 기본 조작법을 익혀가며 Git을 사용하는 데 필요한 환경을 갖출 수 있었다.
Git이 처음인 나이기에! 간단하게 Git에 대해서 정리하자면, Git의 기본 명령어들은 add, commit, push 세 단계로 나뉘어 있고, 각각 코드의 변경 사항을 스테이징 영역에 추가하고, 커밋으로 기록하며, 원격 저장소로 푸시하는 작업을 의미한다.
이러한 과정은 명령어 자체는 단순해 보이지만, 그 배경에 깔린 버전 관리의 개념을 이해하는 것이 핵심이라고 한다. 특히, 다양한 브랜치를 활용해 동시에 여러 작업을 진행할 수 있고, 필요한 순간에만 합쳐서 최종 버전에 반영하는 방식은 팀 프로젝트에서 매우 유용하게 사용할 수 있음을 깨달았다. 하지만 아직 이는 너무나도 나에게 어려운.....
그리고 좀 신기했던 건 Git Hub만있는 게 아니라고 한다! 가장 대중적인 것은 GitHub이지만, 수업에서는 Git Flow, GitHub Flow, GitLab Flow와 같이 다양하게 있다고 했다. Git Flow는 안정적인 배포와 명확한 단계 구분이 필요한 경우에 적합하고, GitHub Flow는 간단하면서도 빠른 배포에 유리한 전략으로 주로 GitHub에서 많이 사용되며, GitLab Flow는 배포와 이슈 관리를 용이하게 하여 CI/CD 환경에서 효과적으로 사용할 수 있다고 하였다. 하지만 아직 GitHub도 어려운 나에겐...또 다른 것을 쓰기엔 먼 이야기 인 것 같다.
협업을 위해서는 혼자 쓰는 Git과는 조금 달랐다!
팀별 실습..분명 추운데 더웠던...!
이번 Git 실습에서는 팀장과 팀원 역할을 나누고, Issue templates와 Milestones를 설정하여 각 작업의 명확한 목표와 기간을 관리하는 법을 배웠다. 특히 git push -u origin <branch> 명령어를 통해 개인 브랜치를 원격 저장소에 푸시하고, Pull Request를 요청하여 팀원들과 작업을 공유하고 검토받는 과정을 경험했다. 협업을 위한 Git의 흐름을 실제로 체험하며 코드 관리와 소통의 중요성을 깊이 이해할 수 있었다...! 새로운 경험이라 오 신기해..를 연발하면서!
팀원으로서 프로젝트에 참여하게 되었는데, 처음에는 커밋과 가져오는 과정을 완벽히 이해하지 못해 큰 실수를 저질렀다. 덕분에 실습 시간 내내 예상보다 오래 걸리게 되었고, 팀원들에게 미안한 마음과 동시에 이 실수가 앞으로의 학습에 있어 큰 교훈이 될 것임을 느꼈다. 긴장한 탓에 추워진 날씨임에도 너무나도 더웠고, 식은땀이 나기도 했다.
처음이자 초보자로서 프로젝트에 참여하면서 Git을 통한 협업의 복잡함과 그에 따른 책임감을 강하게 느꼈다. 실수도 많았지만, 이러한 과정 속에서 매 순간 배울 것이 많았다. 팀원들 덕분에 실수를 바로잡고 이해를 더할 수 있었으며, Git을 통해 협업 환경에서 어떻게 체계적으로 작업하고 소통해야 하는지를 조금씩 알아가고 있다.
조금 더 개발자 다워지면서!
이번 Git 수업과 실습은 그동안 혼자서 작업하던 코딩 환경을 벗어나 팀과 협업하며 코드 관리의 필수적인 기술을 배우고, 스스로의 실력을 점검할 수 있는 소중한 경험이었다.
Git을 사용하기 전까지는 프로젝트 관리와 협업이 이토록 체계적일 수 있다는 것을 크게 체감하지 못했지만, 이 수업을 통해 코드의 변경 사항을 기록하고 다양한 버전의 코드를 안전하게 관리하는 Git의 강력함을 실감했다.
팀 프로젝트에서 역할을 나누고 Issue templates와 Milestones를 설정해 각 작업의 목표와 기간을 설정하며 팀의 진행 상태를 가시적으로 관리하는 법을 배웠는데, 단순한 개인 작업과 달리, 프로젝트의 구조와 일정, 목표가 어떻게 명확히 관리되고 조율되는지 경험하게 해주었다. 팀원으로서의 역할을 맡으며 프로젝트 내의 작은 역할이라도 책임감을 갖고 수행해야 한다는 것을 배웠다.
그간 혼자 일을 하고 혼자 코딩을 하던 나는 느낄 수 없었던 것이라 조금 더 크게 다가왔다...!
실습 중에 commit과 pull 과정에서 여러 번 실수를 하기도 했고, 처음 사용하는 Git 환경에서 예상치 못한 오류를 만날 때마다 시간이 지체되면서 긴장감이 커지기도 했다. 팀원들에게 피해를 줄까 걱정되는 순간도 많았지만, 이러한 경험들이 저에게는 큰 교훈이 되었다. Git의 기본 명령어와 협업에서의 흐름을 반복 학습하면서 팀원들의 도움을 받아 실수를 점차 바로잡아 갈 수 있었고, 이를 통해 Git과 GitHub가 제공하는 협업 툴의 가치와 실무에서의 역할을 확실히 이해하게 되었다.
앞으로는 Git을 더 능숙하게 다룰 수 있도록 학습을 계속하며, 실무에서 요구되는 프로젝트 관리와 협업 역량을 쌓고자 노력해야겠다. 계속되는 팀플이 있을 것인데, 꼭 1인분은 해야지라는 생각을 하고 있었다. 이번 실습에서의 실수는 향후의 성장에 필요한 경험이었고, 저의 초보적인 실력에도 불구하고 배울 것이 무척 많았다.
이제는 Git을 통해 더 큰 프로젝트와 복잡한 협업 환경에서 자신감을 가지고 참여할 수 있을 것 같다. Git을 배우고 익히는 과정을 통해 코드 관리뿐 아니라 소통과 책임감의 중요성을 깊이 깨달으며, 앞으로의 성장에 대한 의지 또한 더 단단해졌으며,
남들에겐 매우 간단한 도구이지만 나에겐 처음인 Git이라는 도구를 써보면서! 이제 좀 더 개발자 다워졌다고 생각이 되었다.
'Upstage AI LAB 부트캠프 5기 > 성장 기록' 카테고리의 다른 글
추천 시스템 프로젝트, 첫 ML프로젝트 도전 (4) | 2024.12.11 |
---|---|
처음 나선 경진대회, 도전과 성취의 여정 (3) | 2024.11.15 |
코딩 테스트의 첫걸음: 컴퓨터 공학을 처음 배우며 (3) | 2024.10.22 |
익숙하지만 새롭게: 통계학 복습 후기 (6) | 2024.10.12 |
AI Engineer가 되기 위한 첫 여정의 시작 (10) | 2024.09.25 |