티스토리 뷰
혼자 개발할 때...
다음과 같은 상황이 발생했던 적이 있는가?
- 잘 작동하지 않는 코드가 있음, 코드에 여러가지 변경을 한 후에 저장함, 새로운
변경 때문에 코드가 정상 작동하지 않는다.!! (이전 코드로 돌아가고 싶을때)
- 실수로 중요한 파일을 삭제함, 몇 달 동안 작업한 수만 라인의 코드가 허공으로 사라짐
- 하드 디스크가 고장!!, 과제 마감에 임박하여 모든 것이 다 날라감
이런 경우 대비하여 어떻게 하나요?
usb를 이용하여 정기적 백업 - 백업하는것을 까먹을수도 있다.
함께 개발할 때...
- 누구의 컴퓨터에 프로젝트의"공식적"인 소스코드를 보관하지?
- 어떤 팀원이 어떤 부분을 작업하고 수정했는지 어떻게 알 수 있지?
- 다른 팀원이 소스코드에 가한 변경을 어떻게 읽고 쓸 수 있을까?
이메일? usb?
- 팀원들이 복사한 소스코드에서 같은 화일들을 수정하면 어떻게 하지?
- 실수로 중요한 파일들에 문제가 생겨버렸어 ㅠㅠ
- 중요 파일들에 대한 백업을 어떤 방식으로 유지해야 하지?
해법은?
버전 관리 시스템 (VCS : Version Control System)
- 소프트웨어의 파일들에 가해진 변경을 추적하여 관리하는 소프트웨어
간단한 예시로는 워드 프로세서의 "undo"기능이 있다.
SCM이라고도 불린다. Source Code Management System
다양한 종류의 버전관리 시스템이 소프트웨어 개발 프젝에 사용되고 있다.
- RCS, CVS, Subversion (SVN)
- Git, Mercurial
역할 :
- 모든 팀원이 접근할 수 있는 공유된 소스코드의 카피를 제공한다.
- 현재 버전과 백업 버전을 포함하여, 소스코드의 여러 버전을 관리한다.
- 팀원들이 어떠한 변경을 소스코드에 가했는지 알 수 있도록 해준다.
- 여러 팀원이 같은 소스파일에 가한 변경의 충돌을 관리해준다.
- 소프트웨어 소스코드 뿐만 아니라 다른 리소스에도 적용 가능하다.
보관소 (repositiory) : 소프트웨어의 변경사항들을 기록해주는 DB
중앙 집중식 버전 관리 시스템 : 가장 많이 쓰인다.
'IT > Embedded Software' 카테고리의 다른 글
[임베디드 SW 공학] GIT branching (0) | 2017.10.11 |
---|---|
[임베디드 SW 공학] GIT - 소개 (0) | 2017.10.11 |
[임베디드 SW 공학] Make의 재귀적 사용법 (0) | 2017.09.25 |
[임베디드 SW 공학] Make 예제 (0) | 2017.09.25 |
[임베디드 SW 공학] Make의 구조 (0) | 2017.09.25 |