Tools

주니어 개발자의 필수도구 Git

BBiRaRiRo 2020. 12. 6. 13:29

이번 글에는 개발자로써 선택의 여지가 거의 없다고 할 수 있는 Git에 대해 다뤄보려 한다.

나 또한 Git 을 사용한 지 얼마 되지 않았는데 왜 이전에는 사용하지 않았는지

그리고 왜 이제는 사용하고 있는지 작성하려 한다.

 

1. Git 을 사용해보지 않는 이유

1.1 "Git 을 사용하라고 듣기는 많이 듣는데.."

학생 시절 개발 공부를 하면서 듣지 않을 수가 없는 말이 "Git 을 꼭 사용해" 였던 것 같다.

생각해보면 학교에서는 Git이라는 존재와 사용하는 것을 알려주지는 않았었는데 주변 사람들에게서 듣거나

기초 개발 관련 서적을 보다 보면 항상 Git을 사용하는 방법을 간단하게나마 대부분 포함되어 있었다.

하지만 학생 시절 눈앞에 있는 것만을 공부하느라 딱히 다른 것을 시도 해보려 하지 않았던 것 같다.

 

 

1.2 "왜 Git을 사용하라 하는 걸까"

사람들이 Git을 사용해야하는 이유들을 보면 코드를 관리하기 쉽게 해준다 라거나

다른 사람에게 공유하기 쉽게 해준다 하던가 하는데 아무것도 모르는 사람에게 Git에 장점을 알기 쉽게 설명해 주다 보니 아무것도 모르는 사람에게는 "그게 뭐가 좋은 건데?"라는 생각을 들게 했던 거 같다.

역시 모든 것 직접 사용해보고 경험해보지 않으면 알 수 없는 것 같다.

1.3 "알아야 하는 게 너무 많아"

Git을 사용하려 했을 때 GitBash의 많은 명령어들과 무섭게 생긴 CLI 가 나를 반겨주는 걸 보면

괜히 안 하게 되었던 것 같다.

그냥 바로 개발을 하고 저장하고 끝내면 되는데

Git와 연결도 하고 저장할 때도 Git에다가 커밋 메시지 작성도 하고 마지도 하고..

귀찮다고도 생각하고 너무 어렵다고 생각했던 것 같다.

하지만 사용해보면 딱히 사용하는 기능도 몇 가지 없고 조금씩 필요한 기능은 그때마다 찾아서 사용하면 되니

많은 걸 알아야 된다는 생각이 잘못되었던 것 같다.

 

2. Git을 사용하게 된 이유

2.1 Git의 장점

Git 을 사용하는 것으로 크게 얻을 수 있는 것은 매우 많다.

Git에는 섬세한 작업들을 할 수 있지만 그것은 직접 경험한 사람만이 알 수 있으니

간단히 알 수 있게 보면

만약 2명이 같이 개발을 진행한다고 하였을 때

이 두 사람은 어떻게 코드를 공유하고 같이 개발할 수 있을까

간단하게 생각해보면 서로 작업할 부분을 약속하고 나서

한 명이 다른 한 명에게 자신이 만든 코드를 USB로 보내주던지 메일로 보내주든지 해서

합쳐달라고 해야 할 것이다. 학생 시절에 그렇게 했다..

Git으로 개발하게 되면 한 명이 다른 한 명에게 코드를 전달하여 합쳐달라고 할 필요가 없다.

서버에 프로젝트를 올려두고

두 명의 사람이 각자의 개발이 끝나면 그 부분을 서버에 올려두면 알아서 합쳐지는 일일 것이다.

2.2 내가 Git 을 사용하게 된 이유

내가 안드로이드 앱을 만들었을 때는 게 속되는 버그를 수정하느라 새로운 기능을 작업하는 게 쉬운 일이 아니었다.

만약 앱을 서비스하고 있는 상황에서 새로운 기능을 만들고 있는 와중에 버그가 발생하였다면

어떻게 해야 할까?

당연히 새로운 기능 개발은 중단을 하고 버그를 고쳐 빠르게 업데이트할 수밖에 없다.

그런데 만약 새로운 기능과 버그 부분의 로직이 겹쳐있어서 새로운 기능 부분을 제거해야 하는 경우는 어떻게 할까.

아날로그적인 방법으로 기능 코드를 어딘가에 적어놓고 버그를 고친 후 업데이트하고

다시 기능 코드를 원래대로 돌리지 않았을까

아니면 기능을 만들 때는 프로젝트를 복사해두거나..

아...

 

이게 한두 번이면 괜찮은데 이게 반복되어 지쳐서 Git을 사용하게 되었다.

Git은 이러한 행동을 매우 유연하게 처리할 수 있게 해준다.

위와 같은 경우에 Git을 사용하였다면

현제 서비스 중인 앱의 상태에서 브랜치 라고 하는

똑같은 상태의 모습을 가지고 와서 이곳에서 새로운 기능을 개발한다.

그 후 버그가 발생하였다면 서비스 중인 상태로 이동하여 그곳에서 버그를 수정하고 업데이트한 후

다시 새로운 기능을 개발하던 브랜치로 돌아와서 마저 개발한 후 완성이 되었다면

브랜치를 서비스 중인 상태와 결합(Merge) 하여 하나로 합치게 된다.

이 모습이 내가 위와 같은 예를 처리했던 Git의 모습이다.

하단의 파란색 점이 서비스 중인 앱이고

이곳에서 빨간색으로 브랜치를 만들어서 새로운 기능을 개발 중이었다.

근데 버그가 발생하여 다시 파란색 점에서 초록색의 브랜치를 만들어서 버그를 수정하여

초록색을 파란색과 결합시켜 앱을 업데이트하고 계속해서 빨간색은 새로운 기능을 개발하였다.

 

 

하지만 아무리 누군가가 말해도 직접 사용해보지않으면 그냥 그렇구나 하고 넘어가게된다.

 

 

3. CLI , GUI

 

아무리 좋다고 해도 어렵게 생각하면 결국 사용하지 않게 된다.

Git을 사용할 때 꼭 CLI로 사용해야 하는 것은 아니다

3.1 소스 트리

 

https://blog.naver.com/vps32/222019514461

 

SourceTree(소스트리) 설치 하기

다운로드 링크https://www.sourcetreeapp.com/​설치bitbucket 로 설치다음아이디와 이메일아니요​​소스...

blog.naver.com

소스 트리는 Git에서 자주 사용되는 명령들을 모두 GUI로 구현되어 있기 때문에

어렵게 명령어를 사용하지 않아도 쉽게 사용할 수 있다.

 

나도 Git에 뭔가 알수없는 거부감때문에 사용하지못하고있었는데

소스트리를 통해 쉽게 사용하면서 Git의 장점을 사용하게되다보니 

이제는 Git 없이는 살수없는 몸이 되었다.

Git에서 사용되는 용어만 조금 알아보면 쉽게 사용할 수 있으니

어려워서 사용하기 어려운 사람들은 이러한 도구로 먼저 접해보자.

 

 

3.2 CLI

GUI에서 조금 익숙하게 사용하게 되면 Git Bash를 사용하여 하는 것을 추천한다.

여기서는 많은 명령어들과 옵션들을 제공하기 때문에 GUI에서는 쉽게 사용할 수 없는 기능을 들을 사용할 수 있으니

어차피 결국은 CLI로 하는 것이 바람직하다.

하지만 Git을 안 쓰는 것보다는 GUI로라도 사용하는 것이 매우 매우 좋다.