요약📚
지난 시간에 나온 버전 관리 시스템(VCS)에 이어 실제로 사용되는 분산형 VCS 중 하나인 Git과 Github를 사용하는 이유에 대해 알아보고, Git의 기본적인 사용 방법을 배웠습니다. 마지막으로 Github는 어떤 것인지 간단하게 알아보고 마무리하겠습니다.
📖Git과 Github는 왜 사용하는가?
Git은 분산형 VCS입니다. 그런데 왜 사용하는 걸까요? 지난 시간에 유의미한 수정 즉 `버전`을 관리하기 위함이라고 배웠습니다. Git을 사용하면 로컬 환경(내가 사용하는 컴퓨터)에서 버전을 관리할 수 있습니다. 매번 파일을 복사하고 폴더를 복사해서 이름을 바꾸는 등 무의미한 행동을 줄여주게 됩니다. 또한 Git을 활용하면 버전 관리뿐만 아니라 협업도 할 수 있다고 배웠습니다. 하지만 로컬 환경에서만 진행한다면 협업을 진행할 수 없겠죠? 그렇게 때문에 사용하는 게 Github입니다. Git에 hub라는 단어가 붙었습니다. 여기서 hub는 '중심'이라는 뜻을 가진 단어로 Git의 중심이다라고 생각하셔도 좋습니다. 이해가 어려우시면 여러 대의 컴퓨터나 네트워크를 연결하는 이더넷 허브라는 장치를 상상하시면 좋을 것 같습니다. Github는 Git과 달리 로컬 환경이 아닌 외부 환경으로 원격으로 백업을 해주고, 로컬과 별도로 버전을 관리해 줍니다. 여기서 Git의 또 다른 기능을 알 수 있습니다. 바로 Github와 소통을 할 수 있다는 것입니다.
잠깐!
Github는 로컬과 별도로 버전을 관리하다는 점을 살펴보고 넘어가겠습니다. 로컬에서 수정이 계속 진행되는 상황에서 외부도 같이 변화한다면 협업은 정말 어려울 것입니다. 그렇기에 외부 즉 Github 내에서의 버전은 로컬의 버전과 따로 관리가 됩니다. 로컬에서 Github의 버전에 변화를 주고 싶은 경우에만 변화를 줄 수 있습니다. 자세한 내용은 앞으로 진행되는 수업에서 설명이 될 것으로 예상됩니다.
정리해 보면 Git을 통해 로컬에서 버전 관리를 하고 협업과 원격 백업 등의 작업을 위해 Github와 소통합니다. Github는 요청에 따라 백업 작업과 함께 별도로 버전 관리도 해주기 때문에 사용합니다.
📖Git 설치
Git은 Git의 홈페이지에서 다운로드하여 사용할 수 있습니다. Git은 유료가 아니니 마음 편하게 다운로드 받아 사용하시면 됩니다.
잠깐!
Git 같은 좋은 도구가 왜 무료이냐구요? 개발자들 중 이익이 아닌 발전을 위해 공유해 주는 사람들이 있기 때문입니다. 이런 사람들이 사용되는 단어(?)가 오픈 소스입니다. 말 그대로 열려있는 소스(코드)입니다. 오픈 소스 라이선스(특정 규칙)에 따라 소스 코드를 무료로 공개하고 사용할 수 있도록 하는 것입니다. 자세한 내용은 복잡하니 나중에 찾아보고, 감사함을 느끼고 넘어가겠습니다.
Git을 설치하고 사용하기 위해서는 다양한 방법들이 있습니다. 크게 CLI를 사용하거나 GUI를 사용하는 두 가지 방법이 있습니다.
📄CLI? GUI?
GUI는 들어보셨을 수도 있으니 먼저 설명하겠습니다. Graphical User Interface의 약자로 일반적으로 컴퓨터를 사용하는 사람들이 다 사용하는 것입니다. 엥? 하실 수 있지만 쉽게 말하면 화면에서 마우스 클릭을 통해 이용하는 것들을 GUI라고 할 수 있습니다. 그렇다면 CLI는 뭘까요? Command Line Interface의 약자로 GUI와 반대로 그래픽이 없고 글자를 입력해서 사용하는 것들입니다. 윈도우는 cmd, 맥은 terminal을 통해서 사용할 수 있습니다.
📖Git 실습
간단하게 용어에 대해 설명했으니 실습을 통해서 느껴보도록 하겠습니다. 실습은 VSCode를 통해 진행합니다. 먼저 CLI를 통해 실습을 진행하고 GUI로 복습해 보겠습니다.
📄CLI 실습
VSCode를 실행하면 가장 맨 위 메뉴에서 '터미널' 또는 'terminal'이라는 탭이 보이실 텐데 거기서 새 터미널을 열어주세요.

다음과 같은 창이 나올 겁니다. 윈도우는 cmd로 설정되어 있을 수 있는데 명령어가 살짝 다를 수 있어서 Git Bash를 사용하도록 하겠습니다. 우측 상단에 + 기호 옆∨를 누르면 Git Bash로 터미널을 열 수 있습니다. 시작하기 위해서 폴더를 만들고, txt를 파일을 만들어보겠습니다.
우선 세 가지 bash shell에서 자주 사용되는 명령어를 알아보겠습니다. 알아만 두고 넘어가겠습니다.
🍯tip! 자세한 내용이 궁금하면 'linux 명령어', 'ubuntu 명령어'라고 검색해서 공부해 봅시다.
- ls : 해당 폴더의 파일 목록을 보여줍니다.
- mkdir : 폴더(디렉토리)를 생성합니다.
- cd : 현재 위치를 변경합니다.
진짜 Git을 실습해 봅시다. 어떤 기본적인 명령어들이 있는지 살펴보겠습니다. Git만 설치한다고 끝나는 것이 아닙니다. 우선 아까 만들어둔 폴더를 VSCode에서 열고 터미널도 열어 줍니다. 아까 생성한 txt 파일만 보일 겁니다. 시작은 해당 폴더를 git이 관리하는 폴더다라고 할 수 있도록 작업을 할 필요가 있습니다. `git init` 명령어를 사용하면 폴더가 준비가 됩니다.

명령을 실행시키니까 뭔가가 동작했습니다. 해석해 보면 '기존 폴더 안에 .git 폴더 안에 빈 Git repository가 초기화되었다'라고 쓰여있습니다. 이제 해당 폴더에서 git 명령어를 사용해 버전을 관리하고 Github와 소통할 수 있는 상태가 된 것입니다. 그렇다면 현재 상태가 궁금하죠? `git status` 명령어를 통해 현재 상태를 알 수 있습니다.

뭐라고 뭐라고 하면서 현재의 상태를 알려줍니다. 아까 만든 txt 파일도 보이는데 한글로 파일명을 지으면 저렇게 알 수 없는 숫자로 보이니 실습에서는 되도록 영어를 사용하겠습니다. 아무튼 알 수 없지만 Untracked files 밑에 만든 파일이 보입니다. 오... 뭔가 관리가 되는 것처럼 보이시나요? 하지만 아무것도 바뀐 게 없는 상태입니다. 이제부터 Git이 관리하도록 파일을 등록해 보겠습니다. `git add 파일이름` 명령어를 통해 등록할 수 있습니다.

명령어를 사용했는데 빨간색 에러 없이 동작하기 했습니다. 근데 뭐가 바뀌었는지 알 수 없습니다. 방금 전에 배운 상태 확인 명령어를 통해 상태를 보겠습니다.

아까와 상태가 달라졌습니다. 아까는 그냥 지나갔지만 'comit 하도록 변화가 생겼다'라고 나와 있습니다. 이처럼 git add 명령어를 통해 하나의 버전에 반영할 변경들을 등록할 수 있습니다. 등록하고 나면 저장을 해야겠죠? 그때는 `git commit` 명령어를 사용합니다.

commit 메시지를 작성해 달라고 나오고 검은색 커서만 움직입니다. 메시지를 작성하려면 'c'키를 두 번 누르면 '--insert--' 또는 '--끼워넣기--'라는 문구와 함께 글을 작성할 수 있습니다. 원하는 메시지를 작성하고 'esc'키를 눌러 종료하고 ':wq'를 통해 commit 메시지의 작성을 저장하고 종료합니다.

성공적으로 저장이 되었습니다. 다시 상태를 확인해 보면 아무런 파일도 남아있지 않은 상태가 된 것을 확인할 수 있습니다. 마지막으로 완료한 커밋을 보고 실습을 마무리하겠습니다. `git log` 명령어를 사용합니다.

아까 등록한 커밋이 제대로 기록이 남아있는 것을 확인할 수 있습니다. 해당 작업까지 마무리했다면 로컬에서 할 수 있는 일은 끝났습니다. 다음 시간에 Github에 연결하고 파일을 올릴 수 있는 방법을 배우도록 하겠습니다.
📄git의 기본적인 명령어
- git init : 기본적인 폴더의 상태를 git이 관리할 수 있도록 초기화합니다. '.git' 폴더가 생성됩니다.
- git status : 현재 상태를 나타냅니다.
- git add : 원하는 파일을 트래킹(추적, 관리) 하도록 합니다.
- git commit : add를 통해 등록된 파일을 하나의 버전으로 저장합니다.
- git log : 현재까지 등록된 commit에 대한 기록을 보여줍니다.
CLI로 하시느라 고생 많았습니다. GUI 실습은 간단하게 사진으로 진행하고 넘어가겠습니다. GUI 실습을 진행하기 위해서 VSCode의 'git history - Don Jayamanne'의 extension(확장판)을 설치하셔야 합니다.
🍯tip! 새로운 폴더를 만들 필요 없이 생성된 .git 폴더를 삭제하면 다시 실습해 볼 수 있습니다. .git 폴더는 기본적으로 숨겨진 파일이라 안 보이니 폴더 설정을 통해 보이게 바꾸고 삭제하시기 바랍니다.
📄GUI 실습






설명은 CLI부분에서 진행했기에 GUI에서는 건너뛰고 사진으로 대체했습니다. GUI에서는 CLI에서 진행한 방식과 동일하게 진행할 수 있습니다. CLI와 다른 부분에 대해 설명하자면 파일의 마지막에 보면 처음에는 U가 적혀있다가 add 하고 난 이후에 A로 상태가 바뀐 것을 볼 수 있습니다. U는 등록이 되지 않은 상태이고 A는 저장하기 위해 등록된 상태라고 이해하면 됩니다.
GUI와 CLI는 본인이 편한 것으로 선택하시면 됩니다. 하지만 기능을 이해하고 사용하기 위해 두 가지 모두 경험해 보는 것을 추천합니다.
📖Github
Github는 앞서 말씀드린 것처럼 원격으로 백업도 해주고 버전 관리도 해주는 곳입니다. 현재 많은 사용자들이 있으면 기본적으로는 무료 서비스를 제공하며 유료 서비스 또한 존재합니다. 대부분은 코드를 올려 관리하는 곳이지만 코드뿐만 아니라 여러 다른 파일들도 관리할 수 있습니다. 다음 시간에 로컬에서 진행했던 파일을 Github와 연결해 올려보는 과정을 배워볼 것입니다.
다음 시간에 계속...
출처 & 참고
김송아 강사님의 강의
'개발 > 프로그래머스 데브코스' 카테고리의 다른 글
| 프로그래머스 데브코스 2주차 회고 with. TS 웹 풀스택 (0) | 2024.04.15 |
|---|---|
| 프로그래머스 데브코스 5일차 & 1주차 회고 with. TS 웹 풀스택 (0) | 2024.04.12 |
| 프로그래머스 데브코스 4일차 with. TS 웹 풀스택 (0) | 2024.04.11 |
| 프로그래머스 데브코스 3일차 with. TS 웹 풀스택 (0) | 2024.04.10 |
| 프로그래머스 데브코스 1일차 with. TS 웹 풀스택 (1) | 2024.04.08 |