자료실

서버 운영에 필요한 가격표/드라이버/패치파일 등을 모았습니다.
믿음과 신뢰의 올서버품질과 서비스를 이끌어 나갈 수 있도록
노력하겠습니다.

고객님께 최상의 서비스를 제공해 드리기 위해 언제나 최선을 다하는 올서버가 되겠습니다.

GIT 과 SVN 비교 자료

요약

항목GitSVN(Subversion)
저장소 구조분산형(로컬에 전체 이력)중앙집중형(서버에 이력)
속도커밋/브랜치/로그 조회 빠름네트워크 의존, 상대적으로 느릴 수 있음
브랜치가볍고 자유로운 브랜칭/머지브랜치가 “디렉터리” 개념, 비교적 무거움
오프라인 작업가능 (대부분 작업)제한적 (서버 필요)
대용량 바이너리기본 불리 (Git LFS로 보완)비교적 유리(파일 잠금 등)
권한관리기본은 단순(서버/호스팅별로 확장)경로 단위 세밀 권한 관리 용이
이력 변경rebase, amend 등 강력(주의 필요)이력 재작성 제한적, 보수적
학습곡선다소 높음낮음(직관적)
생태계/툴매우 풍부 (GitHub/GitLab 등)안정적이나 상대적으로 적음
대표 사용처소프트웨어 개발, 협업, 오픈소스문서/디자인/대기업 중앙 통제형

 

Git 추천

브랜치 기반 개발(Feature/MR/PR) 중심의 애자일 팀

오픈소스/분산 협업, 잦은 실험·리팩토링

오프라인 환경에서 커밋/리뷰가 필요한 경우

SVN 추천

중앙 통제가 중요하고 권한을 경로 단위로 나눠야 함

대용량 바이너리(CAD, 영상, 게임 어셋 등) 많이 다룸

히스토리 재작성 금지, 감사·감리 관점이 중요한 환경


핵심 개념 차이

Git(분산형): 각 개발자 PC에 전체 이력이 복제. 로컬에서 브랜치/커밋/리셋 자유롭게 → 원격에 푸시.

SVN(중앙형): 중앙 서버가 단일 진실(SSOT). 작업은 체크아웃/업데이트/커밋 중심. 파일 **잠금(lock)**로 충돌 방지 용이.


기본 워크플로우
Git (Feature Branch + MR/PR)

git clone <url>

git switch -c feature/x

작업 → git add . && git commit -m "feat: ..."

git push -u origin feature/x

Merge Request/PR로 코드리뷰 → main 병합

태깅/릴리스: git tag v1.2.0 && git push --tags

SVN (Trunk/Branches/Tags 디렉터리)

svn checkout <url>/trunk

작업 → svn add/rename/delete

svn commit -m "..." (서버 반영)

브랜치 생성: svn copy ^/trunk ^/branches/feature-x -m "branch"

병합: svn merge ^/branches/feature-x → svn commit
 



명령어 맵핑(자주 쓰는 것)
 

작업GitSVN
최초 가져오기git clone URLsvn checkout URL
변경 가져오기git pullsvn update
변경사항 보기git statussvn status
커밋git commit (로컬) → git pushsvn commit (서버)
이전 이력 보기git log --oneline --graphsvn log
브랜치 목록git branch -a디렉터리(branches/)
브랜치 만들기git switch -c featsvn copy ^/trunk ^/branches/feat -m "..."
병합git merge / git rebasesvn merge
되돌리기git revert / git resetsvn merge -c -REV / svn revert

 

협업/품질 관점

코드리뷰

Git: 플랫폼(MR/PR)으로 템플릿, 파이프라인, 보호 브랜치 규칙을 쉽게 연계

SVN: 리뷰 툴 별도 연동(예: Crucible 등) 또는 정책 기반 커밋 훅

CI/CD

Git: GitLab/GitHub Actions 등과 자연스럽게 통합

SVN: Jenkins 등과 연동 가능하나 초기 세팅 손이 더 감

보안/권한

Git: “브랜치 보호 + MR 승인 규칙” 중심

SVN: 경로별 접근 제어(authz)로 세밀

대용량/바이너리 전략

Git: Git LFS 사용 권장(필터링, 스토리지 분리)

SVN: 원천적으로 바이너리에 비교적 관대 + 파일 잠금으로 충돌 예방

마이그레이션 팁(SVN → Git)

히스토리 유지 이관: svn2git(SubGit, git-svn 등)로 trunk/branches/tags를 정책적으로 매핑

폴더 권한 → 브랜치/Repo 분리로 재설계 (필요시 모노레포 → 멀티레포)

바이너리는 Git LFS로 이전하거나 아티팩트 스토리지/NAS로 분리

워크플로우 전환: commit 즉시 서버 반영 → PR 기반 병합 문화로 전환(리뷰 룰, 보호 브랜치 설정)

교육/가이드: rebase, squash, 충돌 해결, 태그/릴리스 전략 문서화

선택 체크리스트(결정 가이드)

브랜치 기반 개발/PR 문화가 핵심인가? → Git

중앙 통제·경로 권한·문서 위주인가? → SVN

오프라인 개발이 잦은가? → Git

대용량 바이너리와 파일 잠금이 중요한가? → SVN(+ 혹은 Git+LFS)

CI/CD를 강하게 붙일 계획인가? → Git 권장