GitHub Foundations #2 Domain 1: Git과 GitHub 입문 — 버전 관리와 제품 구조

6 분 소요

Domain 1은 시험 전체의 바탕입니다. 여기서 다지는 두 가지 구분, 곧 Git과 GitHub의 경계계정·플랜의 구조가 이후 모든 도메인의 전제가 됩니다. Git 명령 자체는 이 블로그의 Git 기초 #1부터 이어지는 시리즈에서 손으로 익히는 것이 정석이므로, 이번 글은 시험이 묻는 포인트만 추려 정리합니다.

시험이 묻는 Git — 요점만 다시 #

버전 관리 시스템은 파일의 변경 이력을 기록하고, 과거 시점으로 돌아가고, 여러 사람의 수정을 안전하게 합치는 도구입니다. 시험은 Git에 대해 깊은 내부 구조보다 다음 수준의 이해를 확인합니다.

  • Git은 분산 버전 관리 시스템입니다. 저장소 전체(히스토리 포함)가 각자의 컴퓨터에 존재하고, 네트워크 없이 커밋과 조회가 가능합니다.
  • 커밋은 변경분이 아니라 그 시점 프로젝트 전체의 스냅샷입니다.
  • 파일은 working directory, staging area, repository 세 영역을 거쳐 기록됩니다.

기본 명령은 역할을 한 줄로 답할 수 있으면 충분합니다.

명령역할
git init현재 디렉터리를 저장소로 초기화
git clone원격 저장소를 히스토리째 복제
git status세 영역의 현재 상태 요약
git add다음 커밋에 담을 변경을 staging area에 올림
git commitstaging area의 내용으로 스냅샷 기록
git branch / git switch브랜치 목록 확인 / 브랜치 전환
git merge다른 브랜치의 변경을 현재 브랜치에 합침
git push / git pull원격으로 올리기 / 원격에서 받아 합치기

이 표가 낯설다면 Git 기초 시리즈를 먼저 마치고 돌아오는 것을 권합니다. Domain 1의 Git 문항은 그 시리즈의 범위와 거의 겹칩니다.

Git과 GitHub는 다른 것입니다 #

Domain 1에서 가장 자주 출제되는 구분입니다. 둘을 섞어 쓰는 습관이 있다면 시험 전에 경계를 분명히 해 두어야 합니다.

  • Git — 내 컴퓨터에서 실행되는 버전 관리 도구입니다. 오픈소스이며 특정 회사의 서비스가 아닙니다. 커밋, 브랜치, 머지는 전부 Git의 영역입니다.
  • GitHub — Git 저장소를 올려 두는 클라우드 호스팅 플랫폼이자, 그 위에 협업 기능(Issue, Pull Request, 리뷰, Actions)을 얹은 서비스입니다.

그래서 “GitHub 없이 Git을 쓸 수 있는가?“라는 질문의 답은 “가능하다"입니다. 반대로 GitHub의 Pull Request는 Git 명령이 아니라 플랫폼 기능이므로, git pull-request 같은 명령은 존재하지 않습니다. 같은 층위의 대안 플랫폼으로 GitLab과 Bitbucket이 있다는 사실도 알아 두면 좋습니다.

계정 구조 — 개인, Organization, Enterprise #

GitHub의 계정은 세 층으로 구성됩니다.

  • 개인 계정 (personal account) — 사람 한 명의 계정입니다. 개인 소유의 저장소를 만들고, 다른 저장소에 협업자(collaborator)로 초대받습니다.
  • Organization — 사람이 아니라 여러 명이 공유하는 소유 주체입니다. 저장소를 조직 명의로 소유하고, 구성원을 팀(team)으로 묶어 저장소별 권한을 팀 단위로 부여합니다. 회사와 오픈소스 프로젝트가 쓰는 형태입니다.
  • Enterprise 계정 — 여러 Organization을 묶어 정책(인증 방식, 정책 강제, 청구)을 한 곳에서 관리하는 최상위 단위입니다.

시험에서는 “여러 팀이 저장소 권한을 공유해야 한다"는 시나리오에 Organization을, “여러 Organization의 정책을 통합 관리한다"는 시나리오에 Enterprise를 고르는 형태로 출제됩니다.

플랜 — Free, Team, Enterprise #

기능 경계를 묻는 문항이 자주 나오는 영역입니다. 큰 그림은 다음과 같습니다.

플랜핵심
Free공개·비공개 저장소 무제한, 기본 협업 기능, Actions와 Codespaces의 무료 사용량 제공
TeamFree의 전부 + 비공개 저장소에서의 보호 브랜치, code owners 같은 고급 협업 기능, 더 큰 사용량
EnterpriseTeam의 전부 + SAML SSO 같은 기업 인증, internal 저장소, 감사 로그 강화, GitHub Advanced Security 애드온

자주 출제되는 경계는 두 가지입니다.

  • 보호 브랜치(branch protection)는 공개 저장소라면 Free에서도 쓸 수 있지만, 비공개 저장소에서는 Team 이상이 필요합니다. “Free 플랜의 private 저장소에서 안 되는 것"을 고르는 문항의 단골입니다.
  • internal 저장소 가시성과 SAML SSO는 Enterprise 전용입니다. 조직 규모 시나리오가 나오면 Enterprise를 떠올리면 됩니다.
노트
시험 포인트 두 가지를 짚어 둡니다. 첫째, 문항이 Git 명령을 묻는지 GitHub 기능을 묻는지부터 구분하기 바랍니다. “브랜치를 만드는 명령"은 Git의 영역이고, “PR에 리뷰어를 지정하는 기능"은 GitHub의 영역입니다. 둘째, 플랜 경계 문항은 “그 기능이 어느 플랜부터 가능한가"를 묻는 형태가 많으므로, 위 표의 두 경계(비공개 보호 브랜치 = Team, internal·SSO = Enterprise)를 정확히 기억해 두면 대부분 풀립니다.

GitHub Flavored Markdown — 플랫폼 전체의 문서 언어 #

Domain 1에는 마크다운 기초도 포함됩니다. README, Issue, PR 설명, 코멘트까지 GitHub의 모든 텍스트 입력이 GitHub Flavored Markdown(GFM) 으로 렌더링되기 때문입니다. 시험은 문법을 보고 결과를 고르거나 반대로 고르는 수준으로 출제됩니다.

자주 출제되는 GFM 문법
# 헤딩 1        ## 헤딩 2
**굵게**        *기울임*
- 순서 없는 목록
1. 순서 있는 목록
[링크 텍스트](https://example.com)
![이미지 대체 텍스트](image.png)
`인라인 코드`
- [ ] 태스크 리스트 (체크박스)

표준 마크다운에 GitHub가 얹은 확장이 따로 출제 포인트가 됩니다.

  • 태스크 리스트- [ ]- [x]로 체크박스를 만들고, Issue와 PR에서는 화면에서 바로 토글할 수 있습니다.
  • 멘션@사용자명을 쓰면 해당 사용자에게 알림이 갑니다. 팀 멘션(@조직/팀명)도 됩니다.
  • 참조#123처럼 번호를 쓰면 그 Issue나 PR로 링크가 걸립니다. 커밋 해시를 붙여도 같은 방식으로 링크됩니다.
  • 코드 펜스의 언어 지정 — 백틱 세 개 뒤에 언어 이름을 쓰면 구문 강조가 적용됩니다.

GitHub에 접근하는 네 가지 방법 #

같은 GitHub를 쓰는 통로가 여러 개라는 점도 Domain 1의 범위입니다.

  • 웹 브라우저 — 기본 통로입니다. 협업 기능(Issue, PR, 리뷰)의 대부분이 웹에서 이뤄집니다.
  • GitHub Desktop — 공식 GUI 클라이언트입니다. 터미널 없이 커밋과 push를 처리할 수 있어 비개발 직군에게 유용합니다.
  • gh CLI — 공식 커맨드라인 도구입니다. gh pr create, gh issue list처럼 GitHub의 플랫폼 기능을 터미널에서 조작합니다. Git 명령을 대체하는 것이 아니라 보완한다는 점이 출제 포인트입니다.
  • GitHub Mobile — 알림 확인, 리뷰 승인, Issue 답변 같은 이동 중 작업용 공식 앱입니다.

에디터 통합(VS Code의 GitHub 확장 등)까지 포함해, “터미널이 없어도 GitHub를 쓸 수 있는가?“라는 물음에 그렇다고 답할 수 있으면 이 절은 충분합니다.

마무리 #

이번 글의 핵심은 세 가지입니다.

  • Git은 로컬에서 동작하는 분산 버전 관리 도구이고, GitHub는 그 저장소를 호스팅하며 협업 기능을 얹은 플랫폼입니다. 이 경계가 Domain 1의 중심입니다.
  • 계정은 개인, Organization, Enterprise 세 층이며, 공유 소유와 팀 권한이 필요하면 Organization입니다.
  • 플랜 문항은 경계 두 개, 곧 비공개 저장소의 보호 브랜치는 Team부터, internal 저장소와 SSO는 Enterprise부터를 기억하면 대부분 해결됩니다.
  • GFM은 플랫폼 전체의 문서 언어이며, 태스크 리스트, 멘션, #번호 참조 같은 GitHub 확장이 출제 포인트입니다.

다음 글인 “GitHub Foundations #3 Domain 2: 저장소 다루기 — 브랜치·태그·릴리스·gist"에서는 저장소 단위의 기능을 정리합니다. fork와 clone과 템플릿 저장소의 차이처럼 Domain 2의 단골 구분이 이어집니다.

X