Skip to content

Latest commit

 

History

History
106 lines (73 loc) · 6.9 KB

File metadata and controls

106 lines (73 loc) · 6.9 KB

1장. Git과 GitHub의 차이, 왜 배워야 하나요?

이 장을 다 읽으시면

  • Git과 GitHub가 각각 무엇인지, 어떻게 다른지 설명하실 수 있습니다.
  • "버전 관리"라는 개념이 왜 필요한지 이해하시게 됩니다.
  • 대학생이 GitHub를 쓰면 얻는 구체적인 이득을 떠올리실 수 있습니다.
  • 앞으로 자주 나올 용어(repository, commit, branch, PR)를 미리 감 잡으실 수 있습니다.

1.1 그냥 USB에 백업하면 안 되나요?

보고서를 쓸 때를 떠올려 봅시다. 많은 분들이 이런 방식으로 파일을 관리해 보셨을 겁니다.

보고서.docx
보고서_최종.docx
보고서_최종_진짜최종.docx
보고서_최종_교수님피드백반영.docx
보고서_최종_교수님피드백반영_v2.docx

혼자 쓰는 문서도 이렇게 엉키는데, 코드는 파일이 수십 개, 수백 개입니다. 게다가 여러 사람이 동시에 같은 파일을 고친다면 어떻게 될까요?

이 문제를 해결하기 위해 등장한 것이 버전 관리 시스템(Version Control System, VCS) 입니다. Git은 그중 가장 널리 쓰이는 도구입니다.

버전 관리 시스템이 해 주는 일은 대략 이렇습니다.

  • 파일이 언제, 누가, 왜, 어떻게 바뀌었는지 기록합니다.
  • 원할 때 과거 어느 시점으로든 되돌릴 수 있습니다.
  • 여러 사람의 수정 내역을 충돌 없이 합칠 수 있습니다.
  • "새로운 기능을 실험해 보고 싶다"는 시도를 본 파일에 영향을 주지 않고 해 볼 수 있습니다.

1.2 Git과 GitHub는 같은 게 아닌가요?

이 둘을 같은 말로 쓰는 분들이 많지만, 역할이 완전히 다릅니다.

구분 Git GitHub
정체 프로그램(도구) 웹 서비스(플랫폼)
어디에 있나요? 내 컴퓨터에 설치 인터넷(github.com)에 있음
무슨 일을 하나요? 파일의 변경 이력을 기록·관리 Git 저장소를 온라인에 보관하고 공유
꼭 같이 써야 하나요? 아니요, Git만으로도 씁니다. Git을 쓰는 사람들이 서로 협업하려고 씁니다.
비슷한 서비스는? (Git 자체는 Mercurial 같은 대안이 있음) GitLab, Bitbucket 등

쉽게 말하면 이렇게 정리할 수 있습니다.

Git 은 내 컴퓨터에서 돌아가는 도구, GitHub 는 그 도구가 만든 결과물을 온라인에 올려 두고 함께 쓰는 공간입니다.

카카오톡에 비유하면, Git은 "메시지를 주고받는 기술"이고 GitHub는 "카카오톡이라는 특정 서비스"에 가깝습니다. 다만 GitHub는 단순한 저장 공간을 넘어, 코드 리뷰·이슈 관리·협업 기능까지 제공하기 때문에 개발자들이 모이는 사실상의 표준이 되었습니다.

1.3 대학생이 GitHub를 써야 하는 이유

학기 중에 한 번쯤 겪게 되는 상황을 떠올려 보세요.

  • 과제 백업: 노트북을 잃어버리거나 갑자기 고장 났을 때, 제출 전날 밤의 코드가 사라진다면? → 깃허브에 올려 두셨다면 다른 컴퓨터에서 그대로 이어서 작업하실 수 있습니다.
  • 팀 프로젝트: 카카오톡으로 final_v3.zip 을 주고받다가, 누구 버전이 최신인지 몰라 밤새 합치는 상황. → 깃허브를 쓰시면 각자 작업한 내용을 체계적으로 합칠 수 있습니다.
  • 포트폴리오: 취업이나 대학원 지원 시, "무엇을 만들어 봤는가"를 보여 줄 수 있는 가장 강력한 근거. → 깃허브 프로필 자체가 이력서 역할을 합니다.
  • 공부 기록: 알고리즘 풀이, 수업 필기, 사이드 프로젝트를 모아 두면 나만의 지식 창고가 됩니다.
  • 오픈소스 기여: 전 세계 개발자들이 만드는 프로젝트에 참여해 볼 수 있습니다. 이력서에 쓸 수 있는 경험이 됩니다.

💡 신입생이 많이 오해하시는 점: GitHub는 컴퓨터 공학 전공자 전용이 아닙니다. 리포트, 발표 슬라이드, LaTeX 논문 초고, 데이터 분석 노트북(Jupyter) 등 텍스트 기반의 모든 파일을 관리할 수 있습니다.

1.4 앞으로 자주 만날 용어 미리보기

지금은 외우실 필요가 전혀 없습니다. "아, 이런 단어가 있구나" 정도로만 훑어보시면 됩니다.

  • 저장소 (Repository, repo): 프로젝트 하나를 담는 폴더. Git이 변경 이력을 추적하는 단위입니다.
  • 커밋 (Commit): "이 시점의 상태를 저장한다"는 일종의 스냅샷. 메시지(변경 이유)가 함께 붙습니다.
  • 브랜치 (Branch): 본 줄기에서 갈라져 나온 작업용 가지. 실험이나 새 기능 개발은 보통 별도 브랜치에서 합니다.
  • 머지 (Merge): 갈라진 브랜치를 다시 합치는 작업.
  • 푸시 (Push): 내 컴퓨터(로컬)의 커밋을 GitHub(원격)에 업로드.
  • 풀 (Pull): 원격에 있는 최신 변경 사항을 내 컴퓨터로 내려받기.
  • 클론 (Clone): 원격 저장소를 내 컴퓨터로 처음 복제해 오는 작업.
  • Pull Request (PR): "제가 만든 브랜치를 본 줄기에 합쳐 주세요" 하고 동료에게 요청하는 GitHub의 기능.
  • 이슈 (Issue): 해야 할 일, 버그, 제안 사항을 기록·추적하는 게시판.

이 용어들은 뒤 장에서 하나씩 실제로 써 보면서 자연스럽게 익히시게 됩니다.

1.5 이 장에서 기억하실 한 줄

Git은 내 컴퓨터에서 파일 이력을 관리하는 도구, GitHub는 그 이력을 온라인에서 함께 나누는 플랫폼입니다.

두 단어를 헷갈리지 않는 것만으로도, 앞으로의 학습이 훨씬 편해집니다.


자주 겪는 어려움

  • "Git을 설치했는데 GitHub 계정이랑 자동으로 연결되나요?" 아니요. Git 설치와 GitHub 가입은 별개입니다. 2장에서 둘을 연결하는 SSH 키 설정을 안내합니다.
  • "GitHub에 올리면 내 코드가 다 공개되나요?" 저장소를 만들 때 Private(비공개) 로 설정하시면 본인과 초대한 사람만 볼 수 있습니다. 공개 여부는 언제든 바꿀 수 있습니다.
  • "Git 안 쓰고 그냥 압축해서 메일로 보내면 안 되나요?" 혼자 쓰신다면 당장은 가능합니다. 하지만 두 명 이상이 같은 파일을 수정하는 순간 누가 어느 부분을 고쳤는지 추적이 불가능해집니다. 그 지옥을 피하려고 Git을 씁니다.

다음 단계

이제 "왜 쓰는가"가 어느 정도 정리되셨다면, 실제로 도구를 설치할 차례입니다.

👉 다음 장: 2장. 계정·Git·VS Code·SSH 키 설정하기

관련 키워드로 더 궁금해지셨다면, version control, distributed VCS, Linus Torvalds (Git을 만든 분) 등을 찾아보시면 재미있습니다.