Post

버전 관리 이해하기

#버전 관리

빈번한 업데이트를 체계적으로 관리하려면 소스 코드에 언제, 어떤 변화가 있었는지 기록하고 추적하는 버전 관리가 필요합니다.

한 프로젝트에서 여러 개발자가 동시에 많은 기능을 추가하고 코들 변경합니다. 그러다 보면 소스 코드 파일을 둘 이상이 수정하여 의도하지 않게 코드가 덮어써지는 충돌이 발생하기도 합니다. 이러한 복잡한 상황을 체계적으로 관리하려면 버전 관리 시스템이 필요합니다.

■ 버전 관리 시스템

버전 관리 시스템을 이용하면 각 개발자가 원하는 시점에 버전을 지정하고 동료에게 공유할 수 있으며, 특정 버전으로 자유롭게 이동할 수 있습니다.

■ 분산형 버전 관리 시스템

분산형 버전 관리 시스템에서 원격 저장소(서버)는 개발자의 소스 코드와 버전 이력을 동기화하는 역할을 합니다. 즉, 개발자는 소스 코드뿐만 아니라 모든 버전의 이력을 얻을 수 있습니다. 이러한 환경에서는 원격 저장소가 동작하지 않거나 원격 저장소의 소스 코드에 접근할 수 없는 문제가 생겨도 각 개발자의 소스 코드와 버전 이력을 활용해 최신 버전을 복구할 수 있습니다.

분산형 버전 관리 시스템의 장점

  • 원하는 버전 상태로 자유롭게 움직일 수 있다.
  • 작업물의 변경 이력을 관리할 수 있다.
  • 버전에 따라 수정 내용을 비교할 수 있다.
  • 누가 문제를 일으켰는지 추적이 가능하다.
  • 파일을 잃어버리거나 잘못 고쳤을 경우에도 쉽게 복구가 가능하다.
  • 예상하지 못한 문제가 발생 시 빠르게 대처 가능하다.

■ GIT

깃은 가장 많이 사용되는 분산형 버전 관리 시스템입니다.

깃을 사용하면 좋은점

  1. 이력 기록 및 추적
    누가, 언제 어떤 파일을 어떻게 수정했는지 변경 이록을 기록합니다. 상세 이력이 기록되기 때문에 프로젝트에서 발생하는 문제를 해결하는 데 도움이 됩니다.
  2. 원격 저장소 및 공유
    소스 코드뿐만 아니라 모든 변경을 분산 저장하기 때문에 원격 저장소에 문제가 생겨도 지역 저장소를 이용해 복원할 수 있습니다.
  3. 변경 이력 병합
    각 개발자가 다른 기능을 개발하더라도 동일한 소스 코드 파일을 변경하는 일이 빈번합니다. 깃은 소스 코드 파일에 대한 여러 변경 이력을 통합하는 기능을 제공합니다.
  4. 호스팅 서비스
    깃은 깃허브의 호스팅 서비스를 제공합니다.

  5. 공개 및 비공개 저장소
    깃은 공개 저장소, 비공개 저장소를 지원합니다. 공개 저장소에 소스 코드를 업로드하면 누구에게나 공개되고, 비공개 저장소에 업로드하면 제한된 인원에게만 공개됩니다.

  6. 고급 기능
    github actob, github deployment api를 이용하면 빌드 및 자동화를 구성할 수도 있고, 프로젝트 보드를 이용해 협업 프로젝트를 관리할 수 있습니다.

출처

  • 책 제목: 박미정의 깃&깃허브 입문, 저자:박미정
  • [버전관리를 해야하는 이유 및 여러가지 시스템](https://velog.io/@dev_2dong/%EB%B2%84%EC%A0%84%EA%B4%80%EB%A6%AC%EB%A5%BC-%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EB%B0%8F-%EC%97%AC%EB%9F%AC%EA%B0%80%EC%A7%80-%EC%8B%9C%EC%8A%A4%ED%85%9C)
This post is licensed under CC BY 4.0 by the author.