github

초보자를 위한 GitHub: GitHub 필수 기능 마스터를 위한 로드맵 (새 탭에서 열림)

GitHub는 코드 저장소를 넘어, 버전 관리와 협업을 배우고 오픈소스에 참여하기 위한 개발자의 기반이다. 이 글은 Git과 GitHub의 기본 개념부터 계정 보안, 저장소 생성, Markdown, 브랜치와 풀 리퀘스트를 활용한 협업 흐름까지 초보자가 익혀야 할 내용을 단계적으로 설명한다. 핵심은 변경 사항을 Git으로 관리하고, GitHub에서 브랜치와 풀 리퀘스트를 통해 안전하게 공유·검토·통합하는 것이다.

버전 관리와 Git의 기본 개념

  • 버전 관리는 파일의 변경 내용을 시간순으로 기록해 무엇이 언제, 왜 바뀌었는지 확인하고 이전 상태로 되돌릴 수 있게 한다.
  • Git은 가장 널리 사용되는 버전 관리 시스템이다.
  • Git의 작업 영역은 다음 세 가지로 나뉜다.
    • Working directory: 실제 파일을 수정하는 공간
    • Staging area: 다음 커밋에 포함할 변경 사항을 검토하고 준비하는 공간
    • Local repository: 커밋된 변경 이력이 저장되는 공간
  • 기본 흐름은 git status로 상태를 확인하고, git add로 변경 사항을 스테이징한 뒤, git commit으로 기록을 저장하는 방식이다.
  • “코드를 push한다”는 말은 로컬에 만든 커밋을 GitHub의 원격 저장소에 업로드한다는 뜻이다.

GitHub 계정 보안과 프로필 관리

  • GitHub 계정은 개발자 정체성과 포트폴리오 역할을 하므로 보안을 강화해야 한다.
  • Settings → Password and authentication에서 2단계 인증(2FA)을 활성화하면 비밀번호가 유출돼도 추가 인증 없이는 계정에 접근하기 어렵다.
  • 2FA 복구 코드는 기기를 잃어버렸을 때 계정에 다시 로그인할 수 있는 중요한 수단이므로 비밀번호 관리자에 안전하게 보관해야 한다.
  • 사용자 이름과 동일한 이름의 공개 저장소를 만들고 README를 추가하면, 해당 README가 GitHub 프로필에 표시된다.
  • 프로필 README에는 기술, 프로젝트, 관심 분야 등을 작성해 개발자 포트폴리오로 활용할 수 있다.

자주 사용하는 Git 명령어

  • git config --global user.name "...": 커밋에 기록할 사용자 이름 설정
  • git init: 현재 폴더를 Git 저장소로 초기화
  • git clone <url>: 원격 저장소를 로컬로 복제
  • git status: 변경 사항과 스테이징 상태 확인
  • git add .: 모든 변경 사항을 스테이징
  • git commit -m "message": 스테이징된 변경 사항을 커밋
  • git switch -c <branch>: 새 브랜치를 만들고 해당 브랜치로 이동
  • git push: 로컬 커밋을 GitHub에 업로드
  • git pull: GitHub의 최신 변경 사항을 내려받고 병합
  • git merge <branch>: 다른 브랜치의 변경 사항을 현재 브랜치에 통합

첫 번째 GitHub 저장소 만들기

  • 저장소(repository)는 프로젝트 파일과 변경 이력을 관리하고 여러 사람이 함께 작업하는 프로젝트의 중심 공간이다.
  • GitHub 대시보드에서 New를 선택한 뒤 저장소 이름과 공개·비공개 여부를 지정해 만들 수 있다.
  • README를 함께 생성하면 방문자가 프로젝트를 처음 이해하는 안내문 역할을 한다.
  • 필요에 따라 다음 항목도 추가할 수 있다.
    • .gitignore: 운영체제 파일, 의존성 폴더, 임시 빌드 결과물처럼 추적할 필요가 없는 파일을 Git에서 제외
    • 라이선스: 다른 사람이 코드를 어떤 조건으로 사용·수정·배포할 수 있는지 명시
  • .gitignore를 사용하면 저장소에 실제 소스 코드와 중요한 파일만 남겨 프로젝트를 깔끔하게 유지할 수 있다.

Markdown으로 문서 작성하기

  • Markdown은 일반 텍스트에 간단한 기호를 추가해 제목, 목록, 링크, 코드 블록 등을 표현하는 가벼운 문서 형식이다.
  • GitHub의 README, 이슈, 풀 리퀘스트, 댓글 등 대부분의 텍스트 작성 영역에서 사용된다.
  • 일부 HTML 태그와 함께 사용해 문서를 읽기 쉽고 구조적으로 만들 수 있다.
  • 좋은 Markdown 문서는 프로젝트의 목적과 사용 방법을 빠르게 전달해 저장소의 접근성을 높인다.

GitHub Flow를 이용한 협업

  • GitHub Flow는 공유 프로젝트에 변경 사항을 안전하게 반영하기 위한 반복적인 작업 절차다.
  • 일반적인 순서는 다음과 같다.
    1. 저장소를 로컬에 clone
    2. 작업용 브랜치 생성
    3. 코드나 문서 수정
    4. 변경 사항 커밋
    5. GitHub에 push
    6. 풀 리퀘스트 생성
    7. 검토와 승인 후 병합
  • 기능별로 브랜치를 분리하면 기존 코드에 직접 영향을 주지 않고 독립적으로 작업할 수 있다.
  • 풀 리퀘스트를 통해 동료가 변경 내용을 검토하고, 테스트 결과나 새로운 동작을 확인한 뒤 병합할 수 있다.
  • 예를 들어 공유 AI 프롬프트를 수정할 때도 별도 브랜치에서 변경하고, 풀 리퀘스트로 결과를 검토한 후 병합하면 팀 전체가 개선된 프롬프트를 사용할 수 있다.

처음에는 모든 Git 명령어를 외우기보다 status → add → commit → push 흐름과 브랜치·풀 리퀘스트 과정을 반복해 익히는 것이 좋다. 또한 2FA를 설정하고, README와 .gitignore를 갖춘 저장소를 만들어 작은 프로젝트부터 GitHub Flow를 연습하면 협업과 오픈소스 참여로 자연스럽게 확장할 수 있다.