반응형

대표 이미지

1. 형상관리 개념 설명

형상관리란 소프트웨어 개발 과정 중에서 계획부터 배포까지 전 과정에 대한 관리를 의미하지만, 통상적으로는 소프트웨어 버전 관리를 의미합니다.

즉, 형상관리란 소스코드 버전관리에서 부터 코드 변경관리, 빌드와 릴리즈 관리를 포함하는 프로젝트 전반의 관리방법을 체계적으로 정의하는 관리 방법입니다. 쉽게말해 소프트웨어 소스 버전 관리를 포괄적으로 확장시켜 만든 개념입니다.

버전관리란 프로젝트에서 생성되는 각종 소스, 문서, 실행 바이너리 등과 같은 파일들을 생성부터 소멸까지 체계적으로 관리하는 것을 말하며, 여기서 버전이란 파일의 생성, 수정, 소멸에 따라 버전 관리 툴에서 관리하는 것을 의미합니다.

예를 들어 다수의 개발자가 [메인_코드.c]소스를 작성한다고 했을때, "김씨 개발자"가 최초로 코드를 생성하고 형성관리 서버에 등록을 하면, "박씨 개발자"가 소스를 수정합니다.(여기서 수정본1이 생기고) 그리고 "이씨 개발자"가 다시 수정하고,(여기서 수정본 2가 생김) 마지막으로 "강씨 개발자"가 소스를 다시 수정하는 경우(여기서 수정본 3이 생김)에 각 개발자가 수정할 때마다 [메인_코드.c]의 버전이 관리되는 것입니다.

소스코드 작업 예

 

2. 형상관리의 필요성

단순한 프로젝트나 한명의 개발자가 혼자서 모든 SW를 개발하는 경우라면 소프트웨어 버전을 개발자가 알아서 관리할 수도 있지만, 여러 명이 팀으로 개발하는 경우 개발과정에서 발생되는 모든 히스토리를 관리해야 향후에 발생할 이슈들을 처리하거나, 문제를 개선하는 등의 상황에 효율적으로 대응할 수 있습니다.

즉, 소스의 변경 내역을 추적 및 확인할 수 있어 디버깅 및 관리가 편하고, 다수의 개발자가 작업한 소스를 동기화하거나 덮어쓰기 문제 등이 해결되며, 버전 관리를 함으로써 잘못 수정된 소스를 이전 버전으로 되돌리기가 쉬우며, 개발자 개인이 별도로 소스를 백업하지 않아도 되는 장점이 발생 합니다.

형상관리의 필요성

 

3. 형상관리 서버

1. 형상관리 개념 설명에서 예를 들었던 상황을 생각해보면, 만약에 소스코드가 별도의 형상 관리 서버에서 관리되지 않고 각각의 개발자들이 메일을 주고 받으면서 소스코드가 업데이트 되고있는 상황이라고 생각해 봅시다.

처음 소스코드를 개발한 "김씨 개발자"는 메일을 통해 "박, 이, 강씨 개발자"에게 코드를 배포할거고, 수정을 해야하는 "박시 개발자"는 "김씨 개발자"의 메일을 받아다 수정 후 다시 메일로 배포를 할 것 입니다. 만약 이때, "박씨 개발자"가 배포한 메일을 미처 확인하지 못한 "이씨 개발자"가 "김씨 개발자"가 배포한 코드를 수정하고 배포하게 였고, "강씨 개발자"는 "박씨 개발자"가 메일을 배포한 이후에 "이씨 개발자"가 메일을 배포했기에, 이씨의 코드에는 박씨의 변경사항이 반영됐겠구나 생각하고 이씨의 코드만 수정하여 최종본을 배포했다면, "박시 개발자"의 수정내용이 미쳐 반영되지 못한 최종 SW가 최종 릴리즈 되어 불량을 발생 시키게 됩니다.

만약 형상관리 서버를 사용하여 소스코드가 배포되고 관리된다면 위와 같은 발생할 필요가 없는 불량을 발생 시키지 않고, 또 복잡하게 메일을 주고받으며 내려받고 다시 송부하는 귀찮은 일이 훨씬 수월해 질 것입니다.  (형상관리 서버가 준비되어 있다면, 개발자가 프로젝트를 서버에 생성하고, 서버에서 프로젝트를 다운받아 수정/반영 시키면 형상관리 서버는 이 내역을 관리해줄 것 이기 때문)

형상관리 서버

형상 관리 잘하면 다수가 참여하는 프로젝트의 많은 문제를 해결할 수 있습니다.

형상관리를 할 수 있는 프로그램 툴의 종류에는 여러가지가 존재하는데 그중에 많이 사용하는 Git에 대하여 학습하겠습니다.

참고) 저장소 용어
1) 프로젝트 저장소 : 프로젝트 파일이 저장될 장소로, 보통 하나의 프로젝트에 하나의 프로젝트 저장소를 지정하여 만듬.

2) 원격 저장소 : 형상 관리 서버에 저장될 프로젝트를 위한 저장 공간을 의미 (쉽게 말해 서버)

3) 로컬 저장소 : 개발자가 작업하는 개인 컴퓨터의 저장소

 

반응형

+ Recent posts