ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 버전관리도구 🔎
    🗃️ Git 2025. 7. 30. 17:18

    버전 관리 도구에 대한 이해와 Git을 설치하는 방법을 설명하고 Git 탄생 배경, Git을 사용하는 이유에 대해서 다시 학습을 하고자 합니다.

    🔍 버전 관리란? (Version Control System)

    버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.

     

    🤔 왜 버전관리를 해야하지..?

    • 무언가 잘못되었다면 되돌릴 수 있다. (복구)
    • 시간에 따라 수정 내용을 비교해 볼 수 있다.
    • 누가 문제를 일으켰는지도 추적하고 누가 언제 만들어낸 이슈인지 확인할 수 있다.
    • 작업 내용을 병합할 수 있다.

     

    🖥️ 로컬 버전 관리

    디렉토리로 파일을 복사하면서 버전을 관리

    보고서.doc  
    최종_보고서.doc 
    진짜_최종_보고서.doc
    진짜_진짜_최종_보고서.doc
    

     

    ⚠️ 문제

    • 디렉토리를 실수로 삭제
    • 실수로 파일을 수정

    💡 이런 로컬 파일들을 관리하기 위해서 RCS 라는 파일 기반 버전 관리 시스템 이 등장

     

    🖥️ RCS (Revision Control System)

     

     

    파일의 변경된 부분 에 대해서 저장

    • 파일 단위의 버전관리
    • 각 파일의 변경 내역을 순차적으로 추적하는 것이 목적

     

     

    ⚠️ 문제

    • 외부의 사람들이 사용할 수 없다.
    • 로컬 컴퓨터에 문제가 생겼을 경우 작업 내용에 문제가 생길 수 있다.

     

    🖥️ CVCS - 중앙집중식 버전관리 (Centralized Version Control System)

     

     

    중앙 서버에서 모든 버전 기록을 관리 하는 방식

    • 네트워크 연결을 통해서 진행

     

    특징

    • 로컬의 VCS와 달리 CVCS는 모두 누가 무엇을 하고 있는지 알 수 있다.
    • 모든 사람들의 로컬 데이터베이스를 관리하는 것보다 VCS 하나를 관리하기가 훨씬 쉽다.
    • 모든 히스토리를 한곳에서 관리

     

    ⚠️ 문제

    • 중앙 서버에 문제가 발생하면?? ⇒ 그동안 다른 사람들과 협업, 파일 백업등의 방법을 할 방법이 없다.
    • 중앙 데이터베이스에 문제가 생기면 모든 히스토리가 없어질 수 있다.

     

    🖥️ DVCS - 분산 버전 관리 시스템 (Distributed Version Control System)

     

     

    중앙 서버 없이도 버전관리를 할 수 있는 방식

    • RCS (로컬 버전 관리)의 장점 + CVCS (중앙 집중 버전 관리) 장점
    • 버전 정보를 로컬에 전체 복사해서 작업할 수 있는 시스템

     

    특징

    • 원격 저장소 자체를 로컬저장소로 가져온다.
    • 로컬에서 원격저장소로 올리거나 원격저장소의 파일을 로컬로 가져올 때 네트워크 통신
    • 로컬에서 버전관리를 할 때는 네트워크 통신을 필요로 하지 않는다.
    • 대표적인 DVCS - Git


    🚀 Git 

    • 2005년, 리누스 토르발즈(Linus Torvalds, 리눅스 창시자)가 개발
    • 기존에 사용하던 상용 버전관리 시스템(BitKeeper)에서 분쟁이 생기면서 대체 도구로 Git 개발
    • Git은 다음 목표를 세워서 요구사항을 충족하고자 함
      • 속도 빠름
      • 분산 방식
      • 강력한 무결성 검증 (SHA-1 → SHA-256로 이행 중)
      • 분기 및 병합이 쉽고 강력함

     

    댓글

Designed by Tistory.