[면접 회고] part. Git

falsovsveritas·2025년 3월 24일

기술면접

목록 보기
2/10
  • Git과 SVN의 차이
  • Git에서 새로운 브랜치를 만드는 명령어

Git vs SVN

Git과 SVN(Subversion)은 대표적인 버전 관리 시스템(VCS)이지만, 여러 가지 중요한 차이점이 있습니다.
Git의 가장 두드러지는 특징은 브랜치 중심 시스템이라는 것.

1. 중앙집중형 vs. 분산형

  • Git: 분산형 버전 관리 시스템(DVCS)
    • 개발자의 로컬 저장소에도 전체 코드 히스토리가 복제됨.
    • 네트워크 없이도 커밋, 브랜치 작업 가능.
  • SVN: 중앙집중형 버전 관리 시스템(CVCS)
    • 중앙 서버가 모든 변경 이력을 저장하며, 개발자는 필요한 버전만 가져옴.
    • 중앙 서버가 없으면 협업이 불가능.

2. 브랜치 관리

  • Git: 브랜치 생성 및 병합이 가볍고 빠름. 로컬에서 쉽게 관리 가능.
  • SVN: 브랜치가 중앙 서버에서 관리되며, 생성과 병합이 느림.

3. 속도 및 성능

  • Git: 대부분의 작업(커밋, 브랜치 생성 등)이 로컬에서 이루어져 속도가 빠름.
  • SVN: 대부분의 작업이 중앙 서버와 통신해야 하므로 속도가 느림.

4. 네트워크 의존성

  • Git: 로컬에서 모든 작업이 가능하며, 푸시(Push)할 때만 네트워크 필요.
  • SVN: 대부분의 작업에서 네트워크 연결이 필요함.

5. 커밋 단위

  • Git: 로컬에서 여러 개의 커밋을 한 번에 푸시 가능.
  • SVN: 커밋하면 바로 중앙 서버에 반영됨.

6. 사용 방식

  • Git: 개발자 각자가 개별적으로 브랜치를 만들고, 병합하여 관리하는 방식이 일반적.
  • SVN: 중앙 서버에서 브랜치를 관리하며, 팀원 간 협업 시 중앙 서버에 바로 반영하는 방식.

7. 메타데이터 저장 방식

  • Git: .git 폴더 하나에 모든 버전 이력을 저장.
  • SVN: 각 디렉터리마다 .svn 폴더가 존재하여 관리.

8. 대용량 파일 관리

  • Git: 대용량 파일 처리에 약함 → Git LFS(Large File Storage) 필요.
  • SVN: 대용량 파일 처리에 상대적으로 강함.

9. 대표적인 사용 사례

  • Git: 오픈소스 프로젝트, 빠른 개발이 필요한 프로젝트(예: 리눅스 커널, GitHub 프로젝트)
  • SVN: 기업 내부의 대형 프로젝트, 문서 관리(예: 게임 개발사, 정부 기관)

10. 명령어 비교

기능Git 명령어SVN 명령어
저장소 복제git clone <url>svn checkout <url>
변경 사항 확인git statussvn status
파일 추가git add <file>svn add <file>
커밋git commit -m "메시지"svn commit -m "메시지"
업데이트git pullsvn update
브랜치 생성git branch <name>svn copy trunk branches/<name>
브랜치 전환git checkout <name>svn switch branches/<name>
로그 보기git logsvn log

결론

  • 빠른 개발과 분산 협업이 필요하면 Git이 유리.
  • 중앙 집중식 관리를 원하면 SVN이 유리.
  • 최근에는 Git이 더욱 대중적으로 사용됨.

0개의 댓글