형상관리란

2021. 2. 18. 14:14개인

1. 제품의 전 수명 주기 동안 요구되는 설계 및 운용 조건에 맞도록 해당 제품의 성능 기능 및 물리적 특성을 일관성이 있도록 설정하고 유지하는 기술적 관리 활동을 말한다.

2. 소프트웨어 형상관리란 애플리케이션의 수명 주기동안 요구되는 설계 및 운용 조건에 맞도록 해당 어플리케이션의 기능을 추가 및 수정 릴리즈(Release) 할 때 애플리케이션에 각각의 버전을 부여하여 소프트웨어 개발 및 운영 중 발생하는 변경에 대하여 일관성을 유지하기 위한 관리 활동을 말한다.

 

[일관성이 맞지 않음]

git?
git이란 특정 프로젝트에서 개발되는 애플리케이션들의 소스코드 버전을 관리해주는 소스코드 관리 시스템을 말한다
git은 데이터를 저장할 공간이 있는 컴퓨터만 있으면 언제 어디서든 효과적인 버전 관리를 진행할 수 있다.
gir은 애플리케이션 개발 주기마다. snapshot을 생성하는 구조이며 언제든지 내가 설정해 놓은 시점으로 되돌아 갈 수 있다.
이러한 특징을 이용하게 되면 오류 발생에 대한 부담 없이 새로운 기능을 추가할 수 있으며 기존의 내용 또한 수정할 수 있다.

github

1. github는 git을 이용하여 관리되는 프로젝트를 hosting 할 수 있는 사이트를 말한다(저장소)
2. 여러 명이 협업하는 프로젝트의 경우 실제 물리적인 제약이 발생할 수 있다 (소스코드를 저장하는 컴퓨터는 1대 하지만 개발자는 여러 명) 
3. 프로젝트를 gitbhub에 hosting 할 경우 여러 개발자가 인터넷을 통한 접근을 통해 하나의 프로젝트를 함께 버전 관리를 진행할 수 있게 된다. 
4. hosting 사이트의 종류는 다양하며 가장 대표적인 github gitlab bitbucket 등이 존재한다. 
5. 이러한 hostingsite를 사용할 경우 전 세계 개발자와 협업을 할 수 있으며 오픈소스 개발 등을 효과적으로 진행할 수 있다.

리눅스 git 설치
yum -y install git
rpm -qa | grep git

 

windows git download 및 설치 (https://git-scm.com/downloads)

 

mac

brew 사용 ( 맥용 패키지 관리자)

 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

brew install git

 

[git reset]
1. 기본 soft 형식으로 resetdmf wlsgod (soft의 경우 최신 커밋 정보를 유지하면서 이전 커밋으로 이동하는 행위
2. 즉 다시 최신 커밋으로 이동이 가능하다( 이전 커밋으로 되돌아가고자 할 때에는 $ git reset [이전 커밋 체크섬 값]
3. 만약 최신 커밋 정보를 삭제 후 이전 커밋으로 이동하고자 할 때에는 —hard 옵션을 함께 사용하면 된다.
4. 이전 커밋으로 전환 시에는 주로 —hard 옵션을 함께 사용하여 최신 커밋 정보는 삭제하는 것이 일반적이다.

 

[git branch 사용하기]
1. branch란 메인 작업라인에서 새로운 작업라인을 구성하는 것을 말한다
2. git을 이용하여 저장소를 생성하게 되면 기본적으로 master branch 가 자동 생성되며 메인 작업라인이(배포 버전 관리) 되는 것이다. 
3. branch 개념을 사용할 경우 메인 작업라인과는 별도로 새로운 작업라인을 생성하여 작업할 수 있다.(돍립적인 작업라인 생성)
4. branch에서 만들어진 작업 결과는 master branch로 병합할 수 있으며 여러 명이 협업하는 프로젝트에서는 반드시 branch를 이용하여 작업하는 것이 좋다
5. head 포인터는 현재 내가 작업 중인 branch나 커밋을 가리키는 역할을
6. git에서는 커밋 관리를 할 때 이전 커밋 정보를 참조하고 있으며 이를 부모 커밋이라고 한다.
7. 부모 커밋은 자식 커밋에 대한 정보는 존재하지 않으며 자식 커밋은 부모 커밋의 정보와 자신의 커밋 정보를 함께 저장한다.
8.

[branch  사용 예시]
1. 기존 모든 기능이 안정적으로 동작하는 버전에서 새로운 기능을 추가할 때 
2. 기존 운영 중인 프로그램에서 버그가 발생하여 해당 버그를 수정할 때 
3. 운영중인 프로그램의 코드를 개선하고자 할 때
4. 동시에 여러 명의 개발자가 작업 후 해당 결과를 병합할 때

 

3 - way 관리 및 병합하기
기존 운영 중인 배포버전외의 또다른 브렌치를 이용하여 추가기능을 구현
기존 운영중인 배포판에서 버그가 발생하여 수정해야 하는 상황이 발생

[처리 순서] 
1. 버그를 수정할 새로운 브렌치 생성(hotfix)
2. hot fix 브렌치에서 버그 수정 및 테스트 진행
3. master 브렌치로 병합 후 배포 작업 수행
4. 새로운 기능을 개발 중인 브렌치로 병합( 충돌 발생 가능성이 높음)

 

'개인' 카테고리의 다른 글

html 이란  (0) 2021.02.18
centos8 에서 apache web server 올려보기  (0) 2021.02.02
정보보안기사 정리  (0) 2020.11.04
정보보안기사 정리  (0) 2020.11.04
kshield 주니어 4기 보안사고 분석대응 수료  (0) 2020.11.04