데이터 전달
기능을 나누어 개발하는데 어떻게 데이터를 전달할 것인가?
USB💾 E-mail💌 직접🏃♀️? 는 번거로워 보인다.
각자 개발하다보면 코드를 동기화시킬 시점이 필요한데 데이터를 전달할 수 있는 방법이 필요하다!
변경점 검토
상대방이 데이터를 무사히 전달했다고 하자. 그런데 전달받은 데이터를 확인해보니 어떤 데이터가 변경되었고 최신버전인지 도무지 알 수가 없다.😅
코드의 손실
데이터를 받아서 작업을 하고 돌려주기를 여러 번.. 그러던 어느 날, 내가 완성하여 보내준 데이터가 사라졌다❓❗ 이유는.. 팀원 한 명이 내가 보낸 최신 파일로 작업한 것이 아닌 이전 버전으로 작업하다가 덮어써버린 것⚡
변경 이력
"됐었는지 왜 안되지?" "안됐는데 왜 되지?" "이 코드는 뭐지?"
도무지 알 수 없는 일이 벌어지고 있다. 누가 수정했지? 언제 수정된거야?
이처럼 팀 단위로 개발하다보면 다양한 문제가 발생할 수 있다. 이런 일이 매번 벌어진다면 수정을 할 때마다 🤪😂🤔 놀라운 일들을 겪게 될 것이다. 심지어! 개발을 마친 최종본이 사라질 수도 있다!
이러한 난관들을 어떻게 도와줄 수 있을까?
버전 관리와 협업이 팀 프로젝트를 원활히 이끌어 갈 수 있는 열쇠가 된다.
버전 관리를 하며 협업을 할 수 있는 토대를 마련해주고 코드를 안정적으로 유지, 배포될 수 있도록 도와주는 서비스가 필요해! 💬Git?
Git의 작업방식은 저장소가 존재하고 각자 Local 공간에서 작업하고 원격 저장소에 올린다. 다른 팀원들도 가져가서 공유하고 싶으면 저장소에 올린다. 이 과정에서 변경 이력 유지!
작업 환경
기본 흐름
저장소에서 끌어오고 작업하고 반영하며 팀원과 함께할 수 있도록 도와주는 서비스가 Git이다.
Git을 사용하면?
개발 내용(추가/수정/삭제)을 커밋(commit)단위로 쌓아간다. 👉 변경 이력 조회 뿐만 아니라 롤백도 가능
실험적인 코드를 추가해 보고 싶다면?
기존 코드에 영향을 주지 않으면서 기능 개발을 하고 싶다면?
코드의 분기점🔱을 만들어서 병렬 작업 후 병합하자. 👉다중 브랜치 운영
Master Branch는 안정적으로 수행되는 코드 🥰
작업해보고 안정되면 Master Branch에 반영하도록!
버전관리, 협업 등을 위한 코어 시스템인 Git을 바탕으로 웹 인터페이스 및 부가 서비스를 통한 프로젝트 관리를 도와주는 서비스이다.
둘의 차이는 뭐야? - 인터페이스와 일부 기능의 차이
GitHub
- Open Source Project가 많다
- Public Repository에 대해서는 무료, 용량제한 있음
- 서버가 안정적
👉 오픈소스 프로젝트에 추천
GitLab
- Public, Private 상관없이 무료
- 중앙 서버에서 저장소 관리에 용이
👉 Private 프로젝트에 추천
결국 소프트웨어를 개발하는 환경은 나의 Local 환경이다~ Git 시스템과 Local 환경 간의 인터페이스가 필요로 한데 이것이 Git Client.