본문 바로가기
카테고리 없음

[완벽 가이드] GitHub 초보자도 쉽게 배우는 기초부터 실전까지 - 개발자 필수 협업 툴

2025. 3. 20.
반응형

개발자라면 반드시 알아야 할 GitHub 사용법에 대해 알아보겠습니다. 프로그래밍에 입문했거나 협업 프로젝트를 시작하려는 분들이라면 이 글이 큰 도움이 될 거예요. Git과 GitHub는 현업에서 필수적으로 사용되는 도구이며, 포트폴리오 관리에도 매우 유용합니다.

GitHub이란? 개발자의 SNS이자 포트폴리오

GitHub는 단순한 코드 저장소가 아닙니다. 개발자들의 SNS이자 포트폴리오라고 불릴 만큼 개발 생태계에서 중요한 위치를 차지하고 있습니다. 전 세계 8,300만 명 이상의 개발자들이 사용하며, 오픈 소스 프로젝트의 중심지이기도 합니다.

GitHub의 핵심은 Git이라는 분산 버전 관리 시스템입니다. Git을 통해 코드의 변경 사항을 추적하고, 여러 개발자가 동시에 작업할 수 있으며, 언제든지 이전 버전으로 되돌릴 수 있습니다.

🔍 Git vs GitHub의 차이점: Git은 버전 관리 시스템이고, GitHub는 이 Git을 호스팅하는 클라우드 서비스입니다. 쉽게 말하면, Git은 도구이고 GitHub는 이 도구를 활용하는 플랫폼이라고 생각하면 됩니다.

GitHub를 통해 할 수 있는 일들은 다음과 같습니다:

  • 코드 저장 및 버전 관리
  • 다른 개발자들과 협업
  • 오픈 소스 프로젝트 기여
  • 개인 포트폴리오 관리
  • 웹사이트 호스팅
  • 자동화된 배포 파이프라인 구축

🤔 GitHub 없이 개발자로 성장할 수 있을까요? 물론 가능하지만, 왜 대부분의 기업이 채용 시 GitHub 프로필을 확인할까요?

GitHub 시작하기: 계정 생성부터 기본 설정까지

계정 생성 및 프로필 설정

GitHub 여정의 첫 걸음은 계정 생성입니다. GitHub 공식 사이트에 접속해 회원가입을 진행합니다.

계정 생성 시 고려할 사항:

  • 사용자명(Username): GitHub URL에 표시되므로 전문적이고 기억하기 쉬운 이름 선택
  • 이메일: 전문적인 이메일 주소 사용 권장
  • 비밀번호: 강력한 비밀번호 설정

계정 생성 후에는 프로필을 완성하세요. 특별히 README.md 파일을 이용해 자신만의 프로필 페이지를 꾸밀 수 있습니다. 자신의 사용자명과 동일한 저장소를 만들고 README.md 파일을 작성하면 프로필 페이지에 표시됩니다.

💡 프로 팁: GitHub 프로필 README는 마크다운 문법을 지원하므로, 자신의 기술 스택, 진행 중인 프로젝트, 연락처 등을 창의적으로 표현할 수 있습니다. 이력서의 디지털 버전이라고 생각하세요!

Git 설치하기

GitHub를 제대로 활용하려면 로컬 환경에 Git을 설치해야 합니다. 운영체제별 설치 방법은 다음과 같습니다:

Windows:

1. https://git-scm.com/download/win 접속
2. 다운로드 및 실행
3. 기본 설정으로 설치 진행

macOS:

# 터미널에서 다음 명령어 실행
$ brew install git

# Homebrew가 없다면 다음을 먼저 실행
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Linux (Ubuntu/Debian):

$ sudo apt-get update
$ sudo apt-get install git

설치 후에는 GitHub 계정과 연동하기 위한 기본 설정을 해줍니다:

$ git config --global user.name "GitHub 사용자명"
$ git config --global user.email "GitHub 이메일"

이제 GitHub와 로컬 환경을 연결할 준비가 되었습니다. 하지만 잠깐! GitHub에 코드를 안전하게 푸시하려면 SSH 키 설정이 필요합니다. 이에 대한 자세한 방법은 GitHub 공식 문서를 참고하세요.

GitHub 기본 개념 마스터하기

Repository(저장소) 개념과 생성 방법

레포지토리(저장소)는 프로젝트의 모든 파일과 각 파일의 변경 이력이 저장되는 공간입니다. GitHub에서 가장 기본이 되는 단위라고 할 수 있습니다.

저장소 생성 방법:

  1. GitHub 로그인 후 오른쪽 상단의 '+' 아이콘 클릭
  2. 'New repository' 선택
  3. 저장소 이름, 설명, 공개/비공개 여부 등 설정
  4. 'README file 초기화' 옵션 선택 (권장)
  5. 'Create repository' 버튼 클릭

💡 저장소 이름 선택 팁: 프로젝트 성격을 잘 나타내는 이름을 선택하되, 짧고 기억하기 쉬운 이름이 좋습니다. 단어 사이는 하이픈(-) 또는 언더스코어(_)로 구분합니다. 예: 'movie-recommendation-app'

Commit(커밋) 이해하기

커밋은 코드의 변경사항을 저장하는 단위입니다. 파일 생성, 수정, 삭제 등의 변경 사항을 기록하고, 각 커밋은 고유한 ID(해시값)를 가집니다.

좋은 커밋 메시지를 작성하는 것은 매우 중요합니다. 다음 형식을 참고하세요:

feat: 검색 기능 추가

- 키워드 기반 검색 기능 구현
- 검색 결과 정렬 기능 추가
- 페이지네이션 적용

커밋 메시지 작성 규칙:

  • 제목과 본문을 빈 줄로 구분
  • 제목은 50자 이내, 명령형 현재시제 사용
  • 본문은 어떻게 보다 무엇을, 왜 변경했는지 설명

⚠️ 주의: 너무 많은 변경사항을 한 번에 커밋하면 추적이 어려워집니다. 논리적으로 분리 가능한 작은 단위로 커밋하는 습관을 들이세요.

Branch(브랜치)와 Merge(병합) 개념

브랜치는 독립적인 작업 공간을 의미합니다. 기본 브랜치(보통 'main' 또는 'master')에서 새로운 브랜치를 만들어 작업한 후, 변경 사항을 다시 기본 브랜치에 병합하는 방식으로 개발이 진행됩니다.

브랜치 작업 흐름:

  1. 브랜치 생성: git branch feature-login
  2. 브랜치 전환: git checkout feature-login
  3. 작업 및 커밋: 코드 변경 후 커밋
  4. 기본 브랜치로 전환: git checkout main
  5. 브랜치 병합: git merge feature-login

🤔 브랜치를 사용하지 않고 직접 main에 커밋하면 안 될까요? 소규모 개인 프로젝트라면 가능하지만, 이런 습관이 협업 시 어떤 문제를 일으킬까요?

필수 Git 명령어 배우기

git init과 git clone

git init: 새로운 Git 저장소를 초기화합니다.

$ mkdir my-project
$ cd my-project
$ git init

git clone: 기존 저장소를 복제합니다.

$ git clone https://github.com/사용자명/저장소명.git

GitHub에서 코드를 가져오거나 새 프로젝트를 시작할 때 가장 먼저 사용하는 명령어입니다. 클론은 저장소의 모든 파일과 히스토리를 가져오는 반면, 단순히 다운로드하면 최신 버전의 파일만 받게 됩니다.

git add와 git commit

git add: 변경 사항을 스테이징 영역에 추가합니다.

$ git add 파일명    # 특정 파일만 추가
$ git add .        # 모든 변경 파일 추가

git commit: 스테이징된 변경 사항을 저장소에 기록합니다.

$ git commit -m "커밋 메시지"

파일을 수정한 후에는 이 두 명령어를 순서대로 실행하여 변경 사항을 기록합니다. add는 커밋할 파일을 선택하는 과정이고, commit은 실제로 변경 사항을 저장하는 과정입니다.

💡 시간 절약 팁: git commit -am "메시지" 명령어를 사용하면 추적 중인 파일에 대해 add와 commit을 한 번에 실행할 수 있습니다. 단, 새로 생성된 파일에는 적용되지 않습니다.

git push와 git pull

git push: 로컬 변경 사항을 원격 저장소(GitHub)에 업로드합니다.

$ git push origin main  # main 브랜치를 원격 저장소에 푸시

git pull: 원격 저장소의 변경 사항을 로컬로 가져와 병합합니다.

$ git pull origin main  # main 브랜치의 변경 사항을 가져와 병합

협업 시 항상 작업 전에 pull, 작업 후에 push하는 습관을 들이는 것이 중요합니다. 이렇게 하면 충돌(conflict)을 최소화할 수 있습니다.

⚠️ 충돌 해결하기: 동일한 파일의 같은 부분을 여러 사람이 수정하면 충돌이 발생합니다. Git은 충돌 부분을 표시해주므로, 수동으로 코드를 수정한 후 다시 add, commit, push 과정을 거쳐야 합니다.

GitHub로 협업하기

Pull Request(PR) 이해하기

Pull Request는 코드 변경 사항을 검토하고 토론한 후 기본 브랜치에 병합하는 GitHub의 핵심 협업 기능입니다.

PR 생성 및 관리 단계:

  1. 브랜치에서 작업 완료 후 GitHub에 push
  2. GitHub 저장소 페이지에서 'Pull Requests' 탭 클릭
  3. 'New pull request' 버튼 클릭
  4. 대상 브랜치(base)와 소스 브랜치(compare) 선택
  5. 제목과 설명 작성 후 'Create pull request' 클릭
  6. 팀원들의 코드 리뷰 및 토론
  7. 승인 후 'Merge pull request' 클릭

PR은 코드 품질 향상과 지식 공유의 좋은 기회입니다. 리뷰어는 코드 문제점을 지적하고, 작성자는 피드백을 반영하며 성장할 수 있습니다.

💡 효과적인 PR 작성법: PR 설명에는 변경 사항의 목적, 주요 변경 내용, 테스트 방법 등을 명확히 기술하세요. 스크린샷이나 GIF를 추가하면 이해를 돕는 데 큰 도움이 됩니다.

Issues와 Projects 활용하기

Issues: 버그 보고, 기능 요청, 작업 할당 등을 관리하는 도구입니다. 각 이슈는 고유 번호를 가지며, 라벨, 마일스톤, 담당자 등을 지정할 수 있습니다.

Projects: 칸반 보드 형태로 작업을 시각화하고 관리하는 도구입니다. 'To Do', 'In Progress', 'Done' 등의 컬럼으로 작업 상태를 한눈에 파악할 수 있습니다.

효율적인 협업을 위해서는 이슈를 먼저 생성하고, 이슈 번호를 커밋 메시지나 PR에 연결하는 습관이 중요합니다. 예: "fix: 로그인 버튼 오류 수정 (#42)"

🤔 프로젝트를 진행하면서 이슈와 PR을 꼼꼼히 관리하는 것이 번거롭게 느껴질 수 있지만, 프로젝트가 커질수록 이런 관리 체계가 왜 중요해질까요?

GitHub의 유용한 추가 기능들

GitHub Pages로 웹사이트 호스팅하기

GitHub Pages는 GitHub 저장소의 내용을 무료로 웹사이트로 호스팅해주는 서비스입니다. 개인 포트폴리오, 프로젝트 문서, 정적 웹사이트 등을 쉽게 배포할 수 있습니다.

GitHub Pages 활성화 방법:

  1. 저장소 설정(Settings) 탭으로 이동
  2. 좌측 사이드바에서 'Pages' 선택
  3. 소스 브랜치 선택 (보통 main 또는 gh-pages)
  4. 저장 후 제공되는 URL로 접속

URL 형식은 https://사용자명.github.io/저장소명으로 제공됩니다. 사용자명과 동일한 저장소(예: username/username.github.io)를 만들면 https://사용자명.github.io 형태의 더 짧은 URL을 사용할 수 있습니다.

💡 활용 아이디어: 이력서, 개인 블로그, 프로젝트 데모, API 문서 등을 GitHub Pages로 호스팅해보세요. Jekyll, Hugo 등의 정적 사이트 생성기와 함께 사용하면 더욱 강력합니다.

GitHub Actions로 CI/CD 구축하기

GitHub Actions는 코드 저장소 내에서 소프트웨어 개발 워크플로우를 자동화할 수 있는 CI/CD(지속적 통합/지속적 배포) 플랫폼입니다.

다음과 같은 작업을 자동화할 수 있습니다:

  • 코드 테스트 및 빌드
  • 코드 품질 검사
  • 웹사이트 자동 배포
  • 이슈 및 PR 관리 자동화

GitHub Actions는 .github/workflows 디렉토리에 YAML 파일로 설정합니다. 다음은 간단한 예시입니다:

name: Deploy Website

on:
  push:
    branches: [ main ]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      
      - name: Install Dependencies
        run: npm install
        
      - name: Build
        run: npm run build
        
      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@4.1.4
        with:
          branch: gh-pages
          folder: build

⚠️ 초보자라면: GitHub Actions는 다소 고급 기능이므로, 기본 Git 및 GitHub 사용에 익숙해진 후 도전하는 것이 좋습니다. 하지만 미리 알아두면 프로젝트 자동화의 가능성을 열어둘 수 있습니다.

초보자를 위한 GitHub 활용 팁

GitHub를 처음 사용하는 분들을 위한 유용한 팁들을 소개합니다.

1. .gitignore 파일 활용하기

.gitignore 파일은 Git이 추적하지 않아야 할 파일들을 지정하는 파일입니다. 개인 설정 파일, 빌드 결과물, 의존성 패키지 등을 여기에 등록하여 저장소를 깔끔하게 유지할 수 있습니다.

# Node.js 프로젝트 예시
node_modules/
.env
dist/
.DS_Store
*.log

gitignore.io 사이트에서는 프로젝트 유형별로 적합한 .gitignore 파일을 자동 생성해줍니다.

2. GitHub CLI 활용하기

GitHub CLI(Command Line Interface)는 터미널에서 GitHub의 다양한 기능을 사용할 수 있게 해주는 도구입니다.

# 설치 (macOS)
$ brew install gh

# 로그인
$ gh auth login

# 이슈 생성
$ gh issue create --title "버그 수정" --body "로그인 페이지 버그 수정이 필요합니다."

3. README.md 파일 잘 작성하기

README.md는 프로젝트의 얼굴이라고 할 수 있습니다. 다음 내용을 포함하는 것이 좋습니다:

  • 프로젝트 제목 및 간단한 설명
  • 설치 및 실행 방법
  • 주요 기능 소개
  • 사용된 기술 스택
  • 기여 방법
  • 라이선스 정보

💡 마크다운 배우기: README.md 파일은 마크다운(Markdown) 문법으로 작성됩니다. 마크다운 기본 문법을 익혀두면 더 멋진 문서를 작성할 수 있습니다.

4. GitHub Stars와 Watch 활용하기

관심 있는 프로젝트는 Star를 눌러 북마크하고, 중요한 프로젝트는 Watch를 설정하여 업데이트 알림을 받아보세요. GitHub는 개발자의 학습 플랫폼이기도 합니다!

🤔 자신만의 GitHub 포트폴리오를 만든다면, 어떤 프로젝트들을 올려볼 수 있을까요? 토이 프로젝트도 충분히 가치 있다는 사실을 기억하세요!

마무리: GitHub 마스터를 향한 여정

지금까지 GitHub의 기본 개념부터 실용적인 활용법까지 살펴보았습니다. GitHub는 처음에는 다소 복잡하게 느껴질 수 있지만, 꾸준한 사용과 연습을 통해 자연스럽게 익힐 수 있습니다.

GitHub 여정의 다음 단계로 도전해볼 만한 것들:

  • 오픈 소스 프로젝트에 기여하기
  • GitHub Gist로 코드 조각 공유하기
  • GitHub Discussions로 커뮤니티 만들기
  • GitHub Sponsors를 통한 후원 받기
  • GitHub Copilot 활용하기

무엇보다 실제 프로젝트에 GitHub를 적용해보는 것이 가장 효과적인 학습 방법입니다. 혼자서 연습해도 좋지만, 다른 개발자들과 함께 협업하면서 더 많은 것을 배울 수 있습니다.

💡 마지막 팁: 실수를 두려워하지 마세요! Git은 언제든 이전 상태로 되돌릴 수 있습니다. git refloggit reset 명령어를 알아두면 대부분의 실수를 복구할 수 있습니다.

GitHub는 단순한 코드 저장소를 넘어 개발자의 정체성을 보여주는 공간이 되었습니다. 여러분의 커리어에 큰 도움이 될 GitHub, 지금 바로 시작해보세요!

이 글이 GitHub를 처음 시작하는 여러분에게 도움이 되었기를 바랍니다. 😊

반응형

댓글