////
Search

우선 Git과 Github이란?

이 글은 우선 NodeJS와 Git이 노트북에 깔려있다는 전제하에 진행되므로 설치 이후 읽어주세요
먼저 짧게 요약해본다면
git
버전 관리 시스템
github
git으로 관리하는 프로젝트들을 올려두는 사이트
그럼 이제 둘에 대해 좀 더 풀어서 얘기해보겠습니다

Git

Version이라고 생각하면, ver1, ver2, ver3처럼 업데이트 된 “버전”을 생각하고 되실 겁니다.
맞습니다. git은 “버전”을 관리하도록 도와주는 프로그램입니다.

왜 개발자들이 주로 사용하나요?

버전 관리는 굳이 git을 통해서만 이뤄질 이유가 없습니다
우리가 대학교 팀플을 수행할때, PPT자료를 나눠서 만든다고 예를 들어보면
메일을 통해서 순차적으로 진행될때, 다음 수행자에게 자료를 ver몇 ← 이렇게 전송해주면서 최종 버전에 ver최종 ← 이렇게 하면, 이것도 버전 관리의 일종이라고 할 수 있습니다.
근데 우리가 프로젝트를 시작한다고 했을때, 팀마다 6~7명씩 붙어서 작업을 수행하는데 이전 사람 업무 기다려주면서 수행을 할까요?
그것도 간단한 업무도 아니고, 몇 시간씩 잡아먹는 코드 짜는 업무인데 말이죠
git은 이렇게 직렬적으로 수행되는 업무방식에서 벗어나, 병렬적으로 코드를 작성해가면서 버전을 관리할 수 있도록 도와주는 프로그램입니다.
물론 지금부터 그럼 합치거나 내용을 분리하거나 뭐 구체적인 작동 방식이 궁금해질텐데, 그냥 추상적인 개념만 인지해주세요

Github

이 사이트를 이용하면, Git을 통해 관리하는 프로젝트들을 블로그처럼 올려둘 수 있습니다
프로젝트는, 폴더 하나, 파일 하나가 될 수 있습니다
좀 더 컴퓨터공학과스럽게 설명하자면, 깃허브는 “클라우드 서비스 & 웹사이트”라고 요약해서 말하고 싶습니다.
제가 위에서 깃을 통해서 버전을 관리하기 편해진다고 말을 했는데요, 아무래도 CLI(Command Line Interface)이다보니, 해당 명령어들을 많이 접해본 개발자들만이 명령들을 수월하게 실행하고, 코드 내용을 파악하겠죠. 하지만 깃허브는, 말하자면 Windows의 휴지통에 마우스로 드래그해서 파일을 넣어서 삭제하는 것처럼, 버전 관리를 좀 더 UI 친화적으로 만든 겁니다.
그치만 깃허브로 파일을 올리겠다라는 건, 무식한 행동에 가깝습니다. 휴지통에 파일 드래그 하는 것처럼 CLI보다 편리하다는 느낌은 아닙니다. 깃을 통해 명령어들로 파일을 업로드하고, 커밋을 생성하고 그러는 편이 훨씬 빠르다는 사실!
그치만 깃허브를 통해 할 수 있는 것들(Github Actions, Fork, Star, Github Repository를 생성할때 필요한 SSH 인증키라던지…토큰이라던지)이 많으니, 깃허브를 무시해서도 안되는 것이다.