상세 컨텐츠

본문 제목

git은 왜 쓰는 걸까??

노베이스도 이해하는 공학이야기

by Tabris4547 2023. 7. 29. 17:36

본문

728x90

프로그래밍을 좀 치는 사람들은

git을 한번쯤은 다 써보셨을 겁니다.

그런데 이런 생각 안해보셨어요?

왜 굳이 git을 쓰지??

저는 처음에 이런 생각을 했어요.

"그냥 구글드라이브나 네이버 클라우드에 올려서

공유하면 안되나??"

처음에 git쓸 때, git관련 명령어 익히고 쓰는게

너무 귀찮고 복잡하고 명령어 치면 에러 뭉탱이가 뜨고

명령어 알아보려고 검색도 해보고....

이런 git을 대체 왜 쓸까요?

이걸 이해하기 위해 먼저 버전관리시스템을 이해하다보면

자연스럽게 git을 왜 쓰는지 알게 될 겁니다.

 

버전관리 시스템?

흔한 작업물 이름을 보면

최종

진짜 최종

진짜 진짜 최종

진짜 진짜 진짜 최종

리얼 최종!

이렇게 작업물이 버전업하면서 수정해 나갑니다.

그런데, 이름을 변경하면서 고치다가 이런 생각이 듭니다

"생각해보니...초기 최종본이 더 좋은 거 같은데?"

하지만 지금은 '리얼 최종'인 상황.

급하게 되돌리기를 눌러보지만...

앙대!!!!

왜!! 왜!! 안 돌아가는 거야!!!

결국 급한데로 기억을 되짚어서 복구하는 나...

 

만약에 자동으로 컴퓨터에 자동으로 내 파일의 버전을 저장해준다면 어떨까?

그렇게 등장하게 된 것이 버전관리시스템입니다.

 

 

버전관리 시스템의 종류(version Control System)

 

1. 로컬버전 관리 시스템

가장 처음에 등장한 버전관리시스템은

로컬 버전 관리 시스템입니다.

말 그대로 로컬, 즉 여러분이 사용하는 컴퓨터에

각각의 버전을 관리하고 저장하는 시스템입니다.

위의 그림을 보면

version2를 기준으로 버전3과 버전6이 나뉘는 걸 볼 수 있습니다.

버전2에서 버전3과 버전6이 나뉘졌기 때문에

혹시나 버전 9까지 작업한 후에

버전2로 다시 되돌아가 다른 엔딩을 만들 수도 있습니다.

이 방법만으로도 여러분들의 파일을 버전별로 관리할 수 있지만

'로컬'에만 저장한다는 단점이 있습니다.

여러분들의 작업물을 다른 사람이 함께 봐야한다면?

혹은 여러분이 다른 사람의 작업물의 버전을 쭉 살펴보면서 작업진행을 봐야한다면?

 

2. 중앙 집중식 버전 관리 시스템

그래서 서버에 저장하는 방식을 택한 것이

바로 중앙집중식 버전 관리시스템입니다.

모든 클라이언트들이 하나의 DB만 보기 때문에 동기화 이슈도 없고

이제는 여러 사람들이 서버에 접속해서 버전을 관리할 수 있습니다.

하지만 '서버'를 사용하기 때문에

서버 과부하의 부담, 오프라인 환경에서 작업이 힘들다,

서버가 망가지면 복구하기 힘들다는 등의 단점이 존재합니다.

 

3.분산식 버전 관리 시스템

중앙관리식의 단점을 개선한 방식이

분산식 서버 관리 시스템입니다.

혹시나 서버와 연결이 안되는 상황에서도

클라이언트에 버전관리하는 걸 기록할 수 있고

서버가 터지더라도 다른 사람의 저장소로 백업이 가능합니다.

하지만 여러가지 분산이 되어있기 때문에

틈틈히 동기화를 시켜줘야합니다.

 

 

git의 등장!

컴퓨터공학자들한테

신적인 존재로 불리는 

리누스 토르발즈입니다.

이 사람의 주요 업적으로 리눅스가 있지만

한가지 더 큰 업적이 있죠.

바로 git입니다.

git은 위에서 언급한 분산형 버전 관리시스템입니다.

소문으로는 직접 이 시스템을 2주만에 만들었다고 하는데...

(외계인일지도...??)

여튼 이 분 덕분에 우리는 git이라는 최고의 프로그램을 쓰게 되었습니다.

개인 프로젝트를 올려서 포트폴리오 관리를 할 수 있고

공동 프로젝트 git을 만들어서 협업할 수도 있습니다.

아마 git을 처음 쓸 땐 

"귀찮아!!!!!!!! 그냥 클라우드 쓸래!!!"라고 하소연하실 수 있지만

명령어를 익히고 사용법을 익혀두면

"SW작업하는데 git을 안쓰고 협업한다고???"

라는 생각이 들 정도로 잘 만든 프로그램입니다.

git에 대해서 복잡하게 들어갈 부분들이 많지만

가장 간단하게 어떻게 파일을 관리하는지 살펴보겠습니다.

우선 여러분이 작업하는

"Working Directory"에 파일이 있습니다.

아직 이 파일들은 git에는 올라오지 않고

여러분들의 저장소에만 있습니다.

이제 add명령어를 통해 파일을 추가하면

Staged상태가 되면서 commit될 상태가 됩니다.

이후에 git commit -m "버전명" 명령어를 통해

버전을 입력하면

"이 버전은 이렇게 수정되었습니다"라는 스탭샷이 만들어집니다.

이후에 여러분들이 push를 하면

git hub 저장소에 버전 업데이트된 게 업로드가 됩니다.

그럼 이후에 다른 사람이 작업할 때

"혹시 바뀐 게 있나??"하고 pull로 업데이트된 것과 동기화를 실시하고

commit을 보면서 각 버전에 어떤 수정사항이 있었는지 볼 수 있습니다.

 

 

git은 처음 쓸 때는 이거 왜 쓰는지

의문이 들었던 부분들이 많았는데

협업 목적과 버전관리를 해주는

최고의 프로그램이었습니다.

728x90

관련글 더보기

댓글 영역