여러분은 소스 코드를 어떻게 관리하시나요? 지금이야 Git을 주로 활용하겠지만, 개발을 배운지 얼마 안되었을 때는 소스 코드 파일을 직접 들고다니셨을겁니다. USB에 담거나, 클라우드에 넣어 다니거나 등… 가장 직관적인 방법이긴한데… 이렇게 통째로 들고다니면 문제점들이 있어요.
- 버전 별로 코드를 관리하기 힘들다. (굳이 하려면 모든 버전의 소스코드를 보관해야 함.)
- 내가 언제 어떤 부분을 수정했는지 알기 어려움.
- 협업할 때 매우 곤란
이런 문제점들을 Git을 해결해줍니다. 이게 우리가 Git을 사용해야하는 이유입니다.
코드 형상 관리를 대신 해준다.
Git 그거 협업 할 때만 사용하는거 아닌가? 아니에요. Git은 코드 형상 관리 시스템이에요. 애초에 이걸 목적으로 만들어진 시스템이에요. 그래서 혼자 개발할 때도 유용하게 사용할 수 있습니다. 몇 가지 장점을 더 꼽자면…
- 버전 별로 (commit단위로) 코드를 관리할 수 있다.
- 예전 버전으로 코드를 복구할 수 있다.
- 원격 저장소까지 활용하면 어떤 Device에서든 코드에 접근할 수 있다.
협업에 유리하다.
원격 저장소를 활용해서 협업할 때 편리하게 사용할 수 있습니다. 소스 파일들을 직접 파일 시스템에서 관리했을 때는 할 수 없었던 다양한 기능들을 사용할 수 있어요.
- 원격 저장소를 통해 코드를 쉽게 공유할 수 있다.
- 특정 부분을 누가 언제 수정했는지도 볼 수 있다. (blame)
- 서로 같은 곳을 수정했더라도 라인 추가 삭제 수준의 변화라면 알아서 충돌을 해결해준다.
- 브랜치, 태그, 이슈 등을 활용해서 프로젝트를 더 체계적으로 관리할 수 있다.
더 나아가 CI/CD 및 자동화 파이프라인 기능들을 제공한다.
Github는 Github Actions가 최근에 생겼습니다. 이걸 통해서 push하면 자동으로 테스트/빌드/배포해주는 시스템을 구축할 수 있어요. CI/CD외에도 활용 방법은 다양하죠. Gitlab에도 비슷한 것을 제공합니다.