git vs svn (버전 관리 도구 비교)

AtoZ·2023년 5월 13일
0

git

목록 보기
2/2

🤔 개요

안녕하세요😃
오늘은 버전 관리 도구를 대표하는 git과 svn에 대해서 알아보려고 합니다. 요즘은 svn보다는 git을 더 많이 사용하는데 그 이유에 대해서 비교해 보면서 알아보려고 합니다.

✏️ svn과 git의 공통점

소스를 관리해 준다는 점에서 공통점을 가지고 있습니다. 더 자세히 살펴보겠습니다.

  • 코드의 변경 이력을 추적할 수 있는 점
  • 여러 명의 개발자가 동시에 작업할 수 있는 점
  • 소스 코드의 이전 버전에 쉽게 접근할 수 있는 점
  • 브랜치를 생성하여 병합 작업을 수행할 수 있는 점

✏️ svn과 git의 차이점

이제 이 포스팅을 쓰는 목적인 svn과 git의 차이점에 대해서 알아보겠습니다.

svn과 git은 버전 관리 도구라는 점은 같지만 관리하는 방식의 차이가 있습니다. svn은 델타 방식으로 소스를 관리하고 git은 스냅샷 방식으로 소스를 관리합니다. 이 둘에 대해서 자세히 살펴보겠습니다.

🔍 델타 방식


델타 방식은 이전 버전과 현재 버전 잔의 차이점만을 저장하는 방식입니다. 이러한 방식은 데이터의 용량을 줄일 수 있는 장점은 있지만 특정 시점에서의 파일을 형성하려면 이전에 관리했던 시점을 모두 훑으면서 차이점을 모두 계산해야 한다는 단점이 있습니다.

🔍 스냅샷 방식


스냅샷 방식은 델타 방식과 다르게 데이터의 현재 상태 자체를 하나의 시점으로 저장하는 방식입니다. 이렇게 저장하게 되면 이전 상태와 차이점을 추적할 필요 없이 파일 시스템의 현재 상태를 기록합니다. 이런 형태로 저장하다 보니 델타 방식 보다 저장, 읽기 등의 액션에 드는 리소스가 가볍습니다.

이런 장점이 있지만 단점도 있습니다. 아무래도 차이점만을 저장하던 델타 방식보다 데이터를 많이 사용해야 한다는 단점이 있습니다.

위의처럼 저장하는 방식 이외에도 다른 차이점이 있습니다.

🔍 중앙집중식 버전 관리


svn은 중앙 집중식으로 버전을 관리하는데 이 방식으로 관리하다 보니 소스 관리자는 svn에 의존성이 높습니다.

🔍 분산 버전 관리


git은 분산하여 버전을 관리하는데 이 방식으로 관리하다보니 git 의존성이 낮고 네트워크 오프라인 상황에서도 코드를 관리할 수 있다는 장점이 있습니다.

git과 svn 어느것이 적합할까❓

git은 스냅샷 방식으로 버전 관리하다 보니 변경이 많은 데이터의 경우 매번 스냅샷을 저장해야 하는 부담감이 있습니다. 이 부분은 svn과 비교했을 때 저장 공간이 매우 빠르게 증가할 수 있습니다.

그렇다면 이런 단점이 있는데 왜 git을 많이 사용하는 걸까요??
이 부분은 여러 가지 이유가 있다고 생각합니다.

  1. 용량 부분에서는 근래에 하드웨어의 스펙이 많이 좋아졌기 때문에 스냅샷 방식으로 소스를 관리하더라도 부담감이 적다는 이유가 있을 것 같습니다. 그리고 그 부분을 감수할 만큼 빠른 속도도 한몫할 것 같습니다.

  2. 용량 부분 이외에 장점이 많아서일 것 같습니다. 중앙 집중식 버전 관리인 svn보다 분산 버전 관리 방식인 git이 활용성이 더 높기 때문에 많이 사용하는 것 같습니다.

🫡 마무리

이전 직장에서는 svn을 사용하여 버전 관리를 했었습니다. 확실히 속도의 차이 및 사내 네트워크 불안으로 인한 버전 관리 불편함을 느꼈었습니다. 이런 불편한 경험을 했었어서 git의 장점이 더 와닿는 것 같습니다. 다음 시간에는 git을 활용할 때 자주는 아니지만 알고 있으면 유용한 키워드들을 알아보겠습니다.

profile
코딩으로 글쓰는 작가

0개의 댓글