1. [S/W공학] 버전 관리 (Version Management)
ㅇ 소프트웨어 내 파일들의 변경,삭제 이력 관리
- 변경 이력 (시기,변경자,목적,변경내용 등) 기록
. 버전 변경시, 로그 기록으로, 변경 사유를 덧붙일 수도 있는 등
- 과거 특정 시점으로 복원 (언제든 이전으로 되돌릴 수 있음) 등
※ S/W 개발 프로젝트를 진행할 때, 버전 및 변경 이력을 관리하여, 협업 효율을 높이고자 함
- 버전 마다 어떤 기능이 포함되었는지 등을 구분할 필요 있음
- 여럿이 협업하는 경우, 누가,언제,무엇을 작업했는지 등에 대한 이력을 남겨 관리할 필요 있음
2. [S/W공학] S/W 버전 관리 例) 깃 / 깃허브
ㅇ 깃 (Git) : 분산형 버전 관리 시스템
- 특징
. (소스 코드 관리 도구, 형상관리 툴) : 코드의 버전 관리를 체계적으로 수행 가능
. (분산 저장 관리) : 원격 저장소, 지역 저장소에 소스 코드를 분산 저장
. (이력 기록 관리) : 누가,언제,어떤 파일을,어떻게 수정했는지 변경 이력을 기록
. (변경 이력 병합) : 하나의 소스 코드에 여러 변경 이력을 통합하는 기능을 제공
. (소프트웨어 작성에 따른 복잡도 완화)
.. 개발자 자신의 프로그램에 대한 특정시점의 스냅샷을 저장,복원 등
.. 타 개발자와 쉽게 협력(협업)도 가능
. (공개성) : 타 개발자들의 코드를 쉽게 내려받을 수 있음
- 데이터 취급 방식
. (데이터 취급 관점) 스냅샷의 연속으로 취급
. (데이터 관리 단위) 체크섬 (SHA-1 해시 이용)
.. 폴더,파일의 이름이 아닌, 식별성 있는 체크섬 ID로써 데이터를 관리
. (데이터 상태 관리) 3가지 상태로 구분 관리
.. modified (수정), staged (커밋 중), committed (커밋 완료)
- 깃 명령어 수행 환경 종류 : CLI 환경, GUI 환경
- 주요 명령어
. git init : 해당 프로젝트를 깃 지역 저장소로 지정
. git add : 수정한 파일을 스테이징 영역으로 옮김
. git commit : 지역 저장소에 저장
. git push : 지역 저장소 변경 내역을 원격 저장소에 반영
. git clone : 원격 저장소에서 지역 저장소로 프로젝트 전부 내려 받기
. git pull : 프로젝트 일부 만 내려 받기
ㅇ 깃허브 (GitHub) : 깃 프로젝트 호스팅 서비스
- 깃을 이용한 프로젝트 관리의, 원격 저장소 역할을 수행하는, 웹 호스팅 서비스
. 깃의 기본 기능 위에 다양한 웹서비스 기능을 추가 함
. 여기서, 원격 저장소(서버)는,
.. 각 개발자(클라이언트)의 소스 코드와 버전 이력을 동기화시키는 역할을 함