일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Linux
- java
- codingtest
- 프로그래머스
- 로그인
- css
- 리눅스
- 싱글톤
- security
- 코딩테스트
- 시큐리티로그인
- javascript
- 시큐리티 로그아웃
- JAVA11
- gradle
- sql
- 시큐리티 로그인
- 반복문
- programmers
- 소스트리
- input태그
- html
- 목록
- 스프링 부트
- 2차원배열
- springSecurity
- StyleSheet
- Spring boot
- springboot
- 시큐리티
Archives
- Today
- Total
JAVAIARY
12장 제품 소프트웨어 패키징 : 버전 관리, 빌드 자동화 도구 본문
6. 소프트웨어 버전 등록(형상관리)
1) 소프트웨어 패키징의 형상관리
- 형상관리(SCM; Software Configuration Management)
개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동 - 개발의 전 단계(All)에 적용되는 활동이며, 유지보수 단게에서도 수행됨
- 개발 전체 비요을 줄이고, 개발과정의 여러 방해요인이 최소화 되도록 보증하는 것을 목적으로 함.
2) 형상 관리 기능
- 형상 식별 : 브랜치의 ID, 이름 등으로 식별
- 버전 제어
- 형상 통제
- 형상 감사 : 정상적으로 변경이 되었는지 확인
- 형상 기록
3) 소프트웨어 버전 등록 관련 주요 기능
- 저장소(Repository)
- 가져오기(Import) : 저장소 기준임
- 체크아웃(Check-out)
- 체크인(Check-in)
- 커밋(Commit)
- 동기화(Update)
7. 소프트웨어 버전 관리 도구
1) 공유 폴더 방식
- 버전 관리 자료가 지역 컴퓨터에 공유 폴더에 저장되어 관리되는 방식
- 파일을 잘못 복사하거나 다른 위치로 복사하는 것에 대비하기 위해 파일의 변경 사항을 데이터베이스에 기록하여 관리한다.
- 종류 : SCCS, RCS, PVCS, QVCS 등
2) 클라이언트 / 서버 방식
- 버전 관리 자료가 서버에 저장되어 관리되는 방식
- 서버에 문제가 생기면 서버가 복구되기 전까지 다른 개발자와의 협업 및 버전 관리 작업은 중단됨
- 종류 : CVS, SVN(Subversion), SVSNT, Clear Case, CMVC, Perforce 등
3) 분산 저장소 방식
- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 지역 저장소에 함께 저장되어 관리되는 방식
- 지역 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 지역 저장소의 잘를 이용하여 작업 가능
- 종류 : Git, GNU arch, DCVS, Bazaar, Mecurial, TeamWare, Bitkeeper, Plastic SCM 등
4) SubVersion(서브버젼, SVN)
- CVS를 개선한 것. 아파치 소프트웨어 재단에서 2000년에 발표
- 클라이언트/서버 구조로 , 서버(저장소)에는 최신 버전의 파일&변경사항이 관리됨
- 소스가 오픈되어 있어 무료로 사용 가능
- CVS의 단점이었던 파일,디렉터리의 이름변경, 이동 등이 가능
- 주요 명령어 : add, commit, update, checkout, lock/unlock, import, export, info, diff, merge
5) Git(깃)
- 리누스 토발즈가 2005년 리눅스 커널 개발에 사용할 관리도구로 개발
- 분산 버전 관리 시스템으로 2개의 저장소(지역 저장소, 원격 저장소)가 존재
- 버전 관리가 지역 저장소에서 진행되므로 버전 관리가 신속하게 처리되고,
원격 저장소나 네트워크에 문제가 있어도 작업이 가능하다. - 주요 명령어 : add, commit, branch, checkout, merge, init, remote add, push, fetch, clone, fork
8. 빌드 자동화 도구
1) 빌드 자동화 도구
- 빌드를 포함하여 테스트 및 배포를 자동화하는 도구
- 애자일(Agile)과 같은 지속적인 통합 개발 환경에서 유용하게 활용됨
- Ant, Make, Maven, Gradle, Jenkins 등이 있음
2) Jenkins
- JAVA 기반의 오픈소스로 가장 많이 사용됨
- 서블릿 컨테이너에서 실행되는 서버 기반 도구
- SVN, Git 등 대부분의 형상 관리 도구와 연동 가능
- 친숙한 Web GUI 제공으로 사용이 쉽다.
3) Gradle
- Groovy 기반 오픈소스 자동화도구
- 안드로이드 앱 개발 환경에 최적화 되어 있음
- 안드로이드 뿐만 아니라 플러그인 설정을 통해 JAVA, C/C++, Python 등의 언어 빌드 가능
- Groovy를 사용해 만든 DSL(Domain Specific Language)을 스크립트 언어로 사용
'정보처리기사' 카테고리의 다른 글
기억장치 (1) | 2023.07.18 |
---|---|
운영체제(Operating System) (0) | 2023.07.16 |
12장 제품 소프트웨어 패키징 (0) | 2023.07.15 |