
★ 형상 관리(SCM)이란 개발 과정에서 소프트웨어의 변경 사항을 관리하는 일련의 활동입니다. 형상 관리는 소프트웨어 개발의 전 단계에서 실시됩니다. 형상 관리 기능은 다음과 같습니다.
- 형상 식별
- 버전 제어
- 형상 통제 : 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업 ★
- 형상 감사
- 형상 기록
소프트웨어의 버전 등록 과정
버전 등록 과정 | 설명 |
Import 가져오기 | 개발자가 저장소(Repository)에 신규로 파일을 추가 |
Check-Out 인출 | 다른 개발자가 저장소의 파일을 자신의 작업 공간으로 인출 |
Commit 예치 | 인출한 파일을 수정한 후 저장소에 예치 |
Update 동기화 | 또 다른 개발자가 자신의 작업 공간을 동기화 |
Diff 차이 | 변경된 파일의 차이를 확인하며 최종적으로 파일의 갱신(Check-In)을 완료함 |
소프트웨어 버전 관리 도구
공유 폴더 방식 | 클라이언트/서버 방식 | 분산 저장소 방식 |
버전 관리 자료가 지역 컴퓨터의 공유 폴더에 저장되어 관리되는 방식 | 버전 관리 자료가 서버에 저장되어 관리되는 방식 |
버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 지역 저장소에 함께 저장되어 관리되는 방식 |
SCCS, RCS, PVCS, QVCS | CVS, SVN, CVSNT, Clear Case, CMVC, Perforce |
Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM |
※ SVN(Subversion, 서브버전)은 CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 발표하였습니다. 소스가 오픈되어 있습니다.
※ Git(깃)은 리누스 토발즈가 개발하고 이후 주니오 하마노에 의해 유지 보수되고 있습니다.
SVN과 Git의 주요 명령어
SVN 명령어 | 설명 | Git 명령어 | 설명 |
add | 새로운 파일을 등록 | add | 스테이징 영역에 추가 |
commit | 클라이언트의 파일을 서버 파일에 적용 | commit | 작업 내역을 지역 저장소에 저장 |
update | commit 이력을 클라이언트의 파일에 적용 | branch | 새 브랜치를 생성 |
checkout | 서버에서 클라이언트로 받아옴 | checkout | 지정한 브랜치로 이동 |
lock/unlock | 서버의 파일을 잠그거나 해제 | init | 지역 저장소를 생성 |
import | 빈 서버 저장소에 맨 처음 파일을 저장 | remote add | 원격 저장소에 연결 |
export | 서버에서 순수한 소스 파일만을 받아옴 | push | 지역 저장소의 내용을 원격 저장소에 반영 |
info | 정보 표시 | fetch | 원격 저장소의 내용을 지역 저장소에 반영 |
diff | 이전 리비전과의 차이 표시 | clone | 원격 저장소의 전체 내용을 지역 저장소로 복제 |
merge | 다른 디렉터리의 버전 관리 내역을 병합 | fork | 지정 원격 저장소의 내용을 내 원격 저장소로 복제 |
merge | 두 브랜치를 병합 |
Git 명령어 활용
순서 | 설명 | 명령어 |
계정 설정 | 사용자 이름과 사용자 이메일 등록 | $ git config --global user.name "길동" |
지역 저장소 생성 | 개발이 진행될 폴더에 가서 지역 저장소 생성 | $ git init |
변경 내역을 지역 저장소에 저장 | 작업 내역을 스테이징 영역에 추가 | $ git add --all |
작업 내역을 지역 저장소에 저장 | $ git commit -m "첫 번째 커밋 완료" | |
병합 | 새 브랜치 생성 | $ git branch new_test |
commit 포인터를 새 브랜치로 이동 | $ git checkout new_test | |
현재 폴더의 변경 내역을 새 브랜치에 저장 | $ git add Test05.java $ git commit -m "두 번째 커밋 완료" |
|
commit 포인터를 마스터 브랜치로 이동 | $ git checkout master | |
새 브랜치의 commit 내역을 마스터 브랜치에 병합한 후 새 브랜치 제거 | $ git merge new_test $ git branch --d new_test |
|
지역 저장소의 버전 관리 내역을 원격 저장소에 저장 |
원격 저장소(abc)의 위치를 별명으로 지정 | $ git remote add abc https://github.com/kyk/remotetest.git |
지역 저장소의 변경 내역을 원격 저장소에 저장 | $ git push abc master |
'etc. > 정보처리기사' 카테고리의 다른 글
디지털 저작권 관리 (0) | 2021.09.30 |
---|---|
빌드 자동화 도구 (0) | 2021.09.30 |
소프트웨어 설치 매뉴얼 / 소프트웨어 사용자 매뉴얼 (0) | 2021.09.30 |
★ 소프트웨어 패키징 / 릴리즈 노트 (0) | 2021.09.30 |
데이터 표준화 (0) | 2021.09.30 |

★ 형상 관리(SCM)이란 개발 과정에서 소프트웨어의 변경 사항을 관리하는 일련의 활동입니다. 형상 관리는 소프트웨어 개발의 전 단계에서 실시됩니다. 형상 관리 기능은 다음과 같습니다.
- 형상 식별
- 버전 제어
- 형상 통제 : 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업 ★
- 형상 감사
- 형상 기록
소프트웨어의 버전 등록 과정
버전 등록 과정 | 설명 |
Import 가져오기 | 개발자가 저장소(Repository)에 신규로 파일을 추가 |
Check-Out 인출 | 다른 개발자가 저장소의 파일을 자신의 작업 공간으로 인출 |
Commit 예치 | 인출한 파일을 수정한 후 저장소에 예치 |
Update 동기화 | 또 다른 개발자가 자신의 작업 공간을 동기화 |
Diff 차이 | 변경된 파일의 차이를 확인하며 최종적으로 파일의 갱신(Check-In)을 완료함 |
소프트웨어 버전 관리 도구
공유 폴더 방식 | 클라이언트/서버 방식 | 분산 저장소 방식 |
버전 관리 자료가 지역 컴퓨터의 공유 폴더에 저장되어 관리되는 방식 | 버전 관리 자료가 서버에 저장되어 관리되는 방식 |
버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 지역 저장소에 함께 저장되어 관리되는 방식 |
SCCS, RCS, PVCS, QVCS | CVS, SVN, CVSNT, Clear Case, CMVC, Perforce |
Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM |
※ SVN(Subversion, 서브버전)은 CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 발표하였습니다. 소스가 오픈되어 있습니다.
※ Git(깃)은 리누스 토발즈가 개발하고 이후 주니오 하마노에 의해 유지 보수되고 있습니다.
SVN과 Git의 주요 명령어
SVN 명령어 | 설명 | Git 명령어 | 설명 |
add | 새로운 파일을 등록 | add | 스테이징 영역에 추가 |
commit | 클라이언트의 파일을 서버 파일에 적용 | commit | 작업 내역을 지역 저장소에 저장 |
update | commit 이력을 클라이언트의 파일에 적용 | branch | 새 브랜치를 생성 |
checkout | 서버에서 클라이언트로 받아옴 | checkout | 지정한 브랜치로 이동 |
lock/unlock | 서버의 파일을 잠그거나 해제 | init | 지역 저장소를 생성 |
import | 빈 서버 저장소에 맨 처음 파일을 저장 | remote add | 원격 저장소에 연결 |
export | 서버에서 순수한 소스 파일만을 받아옴 | push | 지역 저장소의 내용을 원격 저장소에 반영 |
info | 정보 표시 | fetch | 원격 저장소의 내용을 지역 저장소에 반영 |
diff | 이전 리비전과의 차이 표시 | clone | 원격 저장소의 전체 내용을 지역 저장소로 복제 |
merge | 다른 디렉터리의 버전 관리 내역을 병합 | fork | 지정 원격 저장소의 내용을 내 원격 저장소로 복제 |
merge | 두 브랜치를 병합 |
Git 명령어 활용
순서 | 설명 | 명령어 |
계정 설정 | 사용자 이름과 사용자 이메일 등록 | $ git config --global user.name "길동" |
지역 저장소 생성 | 개발이 진행될 폴더에 가서 지역 저장소 생성 | $ git init |
변경 내역을 지역 저장소에 저장 | 작업 내역을 스테이징 영역에 추가 | $ git add --all |
작업 내역을 지역 저장소에 저장 | $ git commit -m "첫 번째 커밋 완료" | |
병합 | 새 브랜치 생성 | $ git branch new_test |
commit 포인터를 새 브랜치로 이동 | $ git checkout new_test | |
현재 폴더의 변경 내역을 새 브랜치에 저장 | $ git add Test05.java $ git commit -m "두 번째 커밋 완료" |
|
commit 포인터를 마스터 브랜치로 이동 | $ git checkout master | |
새 브랜치의 commit 내역을 마스터 브랜치에 병합한 후 새 브랜치 제거 | $ git merge new_test $ git branch --d new_test |
|
지역 저장소의 버전 관리 내역을 원격 저장소에 저장 |
원격 저장소(abc)의 위치를 별명으로 지정 | $ git remote add abc https://github.com/kyk/remotetest.git |
지역 저장소의 변경 내역을 원격 저장소에 저장 | $ git push abc master |
'etc. > 정보처리기사' 카테고리의 다른 글
디지털 저작권 관리 (0) | 2021.09.30 |
---|---|
빌드 자동화 도구 (0) | 2021.09.30 |
소프트웨어 설치 매뉴얼 / 소프트웨어 사용자 매뉴얼 (0) | 2021.09.30 |
★ 소프트웨어 패키징 / 릴리즈 노트 (0) | 2021.09.30 |
데이터 표준화 (0) | 2021.09.30 |