본문 바로가기

[100일의 IT 초보 탈출] #31 코드의 타임머신: 버전 관리 시스템과 Git 기초 🔄

@Prof.SSong2025. 4. 28. 16:03
728x90

 

안녕하세요!

🌱 오늘은 소프트웨어 개발의 필수 도구인 '버전 관리 시스템'과 'Git'에 대해 알아볼게요!

코드의 변경 사항을 효율적으로 관리하는 방법을 함께 살펴봅시다! 😊

 

💡 버전 관리 시스템이란 무엇인가요?

 

버전 관리 시스템(Version Control System, VCS)은 파일 변경 이력을 관리하는 도구로,

코드의 변화를 추적하고 이전 버전으로 돌아갈 수 있게 해주는 시스템이에요.

 

실생활 예시: 논문 작성

 

버전 관리는 여러 명이 함께 논문을 작성하는 과정과 유사해요

  • 각자 맡은 부분을 작성하고 합치기 (브랜치와 병합)
  • 변경 사항 표시하며 수정하기 (커밋과 변경 추적)
  • 이전 버전 논문 보관하기 (버전 히스토리)
  • 최종본 제출 전 검토하기 (코드 리뷰)

 

🔍 버전 관리 시스템의 종류

 

1. 중앙 집중식 버전 관리 (CVCS)

모든 파일과 히스토리가 중앙 서버에 저장되는 방식이에요.

 

특징

  • 단일 저장소에 모든 버전 정보 보관
  • 항상 서버에 연결되어 있어야 함
  • 서버 장애 시 작업 어려움

 

예시

  • SVN (Subversion)
  • CVS (Concurrent Versions System)
  • Perforce

 

2. 분산형 버전 관리 (DVCS)

 

모든 사용자가 전체 저장소의 복사본을 가지는 방식이에요.

 

특징

  • 로컬에서 대부분의 작업 가능
  • 오프라인 작업 지원
  • 여러 백업 존재로 안전성 높음

 

예시

  • Git
  • Mercurial
  • Bazaar

 

🌲 Git: 가장 인기있는 버전 관리 시스템

 

Git은 리눅스 토발즈가 개발한 분산형 버전 관리 시스템으로, 현재 가장 널리 사용되고 있어요.

Git의 주요 특징

  • 빠른 속도: 로컬 작업과 효율적인 알고리즘
  • 분산 작업: 중앙 서버 없이도 작업 가능
  • 비선형 개발: 브랜치를 통한 병렬 개발 지원
  • 강력한 병합: 충돌 해결 기능 제공
  • 데이터 무결성: 암호화 해시로 데이터 보호

Git의 작동 원리

Git은 파일을 스냅샷 시리즈로 관리하는 시스템이에요.

 

주요 개념

  • 커밋(Commit): 파일의 변경 상태를 저장한 스냅샷
  • 저장소(Repository): 모든 커밋과 브랜치를 포함하는 프로젝트 저장소
  • 작업 디렉토리(Working Directory): 실제 작업 중인 파일들
  • 스테이징 영역(Staging Area): 커밋할 변경사항을 준비하는 공간
  • 브랜치(Branch): 독립적인 작업 흐름
  • HEAD: 현재 작업 중인 브랜치의 선두 커밋

 

Git의 기본 워크플로우

  1. 작업 디렉토리에서 파일 수정
  2. 변경사항을 스테이징 영역에 추가 (git add)
  3. 변경사항을 저장소에 커밋 (git commit)
  4. 원격 저장소와 동기화 (git push, git pull)

 

🔄 Git 기본 명령어

 

저장소 설정

  • 저장소 초기화: git init
  • 원격 저장소 복제: git clone <URL>

 

변경사항 관리

  • 변경사항 확인: git status
  • 스테이징에 추가: git add <파일> 또는 git add .
  • 변경사항 커밋: git commit -m "메시지"
  • 변경 이력 확인: git log

 

브랜치 관리

  • 브랜치 목록 보기: git branch
  • 새 브랜치 생성: git branch <이름>
  • 브랜치 전환: git checkout <이름> 또는 git switch <이름>
  • 브랜치 생성 및 전환: git checkout -b <이름>
  • 브랜치 병합: git merge <이름>

 

원격 저장소 관리

  • 원격 저장소 추가: git remote add origin <URL>
  • 변경사항 업로드: git push origin <브랜치>
  • 변경사항 가져오기: git pull origin <브랜치>
  • 원격 내용 동기화: git fetch

 

🛠️ Git 고급 기능

 

1. 스태시 (Stash)

작업 중인 변경사항을 임시 저장하는 기능이에요.

 

주요 명령어

  • 변경사항 임시 저장: git stash
  • 스태시 목록 확인: git stash list
  • 최근 스태시 적용: git stash apply
  • 스태시 삭제: git stash drop

2. 리베이스 (Rebase)

브랜치의 커밋 이력을 재배열하는 기능이에요.

 

사용법

 
git checkout feature
git rebase master

 

장점

  • 깔끔한 커밋 히스토리 유지
  • 선형적인 프로젝트 이력 생성

 

주의사항

  • 이미 공유된 브랜치에는 사용 자제

 

3. 태그 (Tag)

 

특정 커밋에 이름을 붙여 중요 시점을 표시하는 기능이에요.

 

주요 명령어

  • 태그 생성: git tag v1.0.0
  • 태그 목록 확인: git tag
  • 태그 정보 확인: git show v1.0.0

 

✍️ 오늘의 IT 초보 탈출 한 줄 정리

 

"Git은 코드의 변경 이력을 효율적으로 관리하는 버전 관리 시스템으로,

개발자가 코드의 과거 버전을 추적하고 여러 기능을 병렬로 개발할 수 있게 해주는 강력한 도구예요!"

 

여러분의 IT 초보 탈출을 응원합니다! 🎉

궁금한 점이 있다면 댓글로 남겨주세요~

728x90
목차