반응형
1. 공유 폴더 방식
- 특징: 로컬 컴퓨터의 공유 폴더에 자료를 저장하고 관리.
- 작업 과정:
- 개발자들은 공유 폴더에 개발 파일을 복사.
- 담당자가 공유 폴더의 파일을 자신의 PC에서 컴파일하고 이상 여부 확인.
- 변경 사항은 데이터베이스에 기록.
- 단점: 중앙 서버 없이 수작업으로 관리되므로 효율성과 안전성이 낮음.
- 사용 도구: SCCS, RCS, PVCS, QVCS
2. 클라이언트/서버 방식
- 특징: 버전 관리 자료를 중앙 서버에서 저장하고 관리.
- 작업 과정:
- 개발자들이 서버의 자료를 자신의 PC로 복사(Check-Out)하여 작업 후 변경 내용을 서버에 반영(Check-In).
- 서버에서 모든 버전 관리가 이루어짐.
- 장점:
- 중앙 서버를 통해 효율적 협업 가능.
- 단점:
- 서버 장애 시 협업 및 버전 관리 중단.
- 사용 도구: CVS, SVN (Subversion)
3. 분산 저장소 방식
- 특징: 로컬 저장소와 원격 저장소를 함께 활용.
- 작업 과정:
- 로컬 저장소에서 작업 후 변경 사항을 우선 반영(Commit)하고, 이후 원격 저장소에 Push.
- 장점:
- 원격 저장소 문제 발생 시에도 로컬 저장소로 작업 가능.
- 로컬에서 빠른 작업 처리 가능.
- 사용 도구: Git, Bitkeeper
4. 주요 버전 관리 도구 정리
4.1. SVN (Subversion)
- 개요:
- CVS를 개선한 버전 관리 도구로 아파치 소프트웨어 재단이 개발.
- 작업은 주로 trunk 디렉터리에서 수행하며, 추가 작업은 branches에서 병합(merge)하여 관리.
- 특징:
- 커밋(Commit)할 때마다 리비전(Revision) 번호 증가.
- CVS의 단점이었던 파일/디렉터리 이름 변경 및 이동 가능.
- 오픈 소스로 무료 사용 가능.
- 명령어:
- add: 새로운 파일/디렉터리를 버전 관리 대상에 추가.
- commit: 클라이언트 소스 변경 내용을 서버에 반영.
- update: 서버 최신 내용을 클라이언트에 적용.
- checkout: 서버의 소스 파일을 클라이언트로 복사.
- merge: 다른 작업 내역을 병합.
4.2. Git
- 개요:
- 리누스 토발즈가 리눅스 커널 개발을 위해 만든 도구로, 이후 주니오 하마노가 유지 보수.
- 분산 저장소 방식으로 로컬 및 원격 저장소 활용.
- 특징:
- 스냅샷(Snapshot) 기반으로 파일 변화를 저장.
- 브랜치를 통해 다양한 기능 테스트와 협업 가능.
- 명령어:
- init: 로컬 저장소 생성.
- remote add: 원격 저장소 연결.
- add: 작업 내역을 스테이징 영역에 추가.
- commit: 로컬 저장소에 변경 내용 저장.
- push: 로컬 저장소 변경 내용을 원격 저장소에 반영.
- fetch: 원격 저장소의 변경 이력을 로컬에 가져옴.
- clone: 원격 저장소를 로컬로 복제.
- branch: 새 브랜치 생성 및 삭제(-d 옵션).
- merge: 브랜치 내역 병합.
4.3. 버전 관리 방식 비교 요약
방식저장소작업 흐름사용 도구공유 폴더 | 로컬 공유 폴더 | 파일을 공유 폴더에 복사 → 담당자가 컴파일 및 이상 확인 | SCCS, RCS, PVCS 등 |
클라이언트/서버 | 중앙 서버 | 서버 자료 Check-Out → 작업 후 Check-In | CVS, SVN |
분산 저장소 | 원격 + 로컬 | 로컬에서 Commit → 원격 저장소로 Push | Git, Bitkeeper |
Git은 협업, 성능, 유연성에서 가장 선호되는 도구입니다. Subversion(SVN)은 특정 환경에서 여전히 활용됩니다.
반응형
'정보처리기사 > SW개발' 카테고리의 다른 글
[정처기-SW 개발] 애플리케이션 테스트와 분류 (2) | 2024.12.11 |
---|---|
[정처기-SW 개발] 형상 관리 (1) | 2024.11.13 |
[정처기-SW 개발] 디지털 저작권 관리 (16) | 2024.11.12 |
[정처기-SW 개발] 소프트웨어 패키징과 릴리즈 노트 (2) | 2024.11.11 |
[정처기-SW 개발] 개발 지원 도구 (3) | 2024.11.10 |