마지막 내용을 정리하고 하루종일 문제를 풀었다.
모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것
릴리즈노트 : SW 개발 과정에서 정리된 릴리즈 정보를 최종사용자인 고객과 공유하기 위한 문서
Header(머릿말) - A : 릴리즈노트 이름, SW 이름, 릴리즈 버전, 날짜 등을 포함
그외 개요, 문제 요약, 영향도, 면책조항 연락처 등
저작물에 대해 창작자가 가지는 배타적 독점적 권리.
타인의 침해를 받지 않을 고유 권한
저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 하는 디지털 콘텐츠 관리 및 보호 기술
DRM의 구성요소 중 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 기능
사용자가 SW를 설치하는 과정에서 필요한 내용을 기록한 설명서
사용자를 기준으로 작성
개발 과정에서 SW의 변경사항을 관리하기 위해 개발된 일련의 활동
여러 버전들의 변경사항을 관리.
Git, SVN, CVS
가 대표적
형상 식별, 버전 제어, 형상 통제, 형상 감사, 형상 기록
형상 통제 : 형상 항목에 대한 변경 요구를 검토해 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업
Check-In(체크인) - B: 버전관리 항목 중 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전의 파일로 갱신하는 것.
공유 폴더 방식
버전 관리 자료가 지역 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
파일의 변경사항을 DB에 기록
클라이언트/서버 방식
버전 관리 자료가 서버에 저장되어 관리되는 방식
모든 버전 관리는 서버에서 수행
CVS, SVN이 여기에 속한다.
분산 저장소 방식
- B
하나의 원격 저장소와 분산된 개발자 PC의 지역 저장소에 함께 저장되어 관리되는 방식
개발자별로 원격 저장소의 자료를 자신의 로컬 저장소로 복사해 작업한 후 변경 내용을 로컬 저장소에 우선 반영한 다음 이를 원격 저장소에 반영.
로컬에서 버전관리가 가능해 원격 저장소에 문제가 생겨도 로컬로 작업 가능
Git이 여기에 해당.
아파치 SW 재단에서 2000년에 발표한 CVS의 단점을 개선한 SW 버전 관리 도구
리누스 토발즈가 2005년 리눅스 커널 개발에 사용할 관리도구로 개발하고, 주니오 하마노에 의해 유지보수된다.
지역저장소와 원격저장소가 존재한다.
- 명령어
add - 작업 내역을 지역 저장소에 저장하기 위해 스테이징 영역에 추가
commit - 작업 내역을 지역 저장소에 저장
branch - 새로운 브랜치를 생성
checkout - 지정한 브랜치로 이동
init - 지역 저장소를 생성
push - 로컬 -> 원격으로 반영
fetch - 원격의 변경 이력을 지역 저장소로 가져와 반영
clone - 원격 저장소의 전체 내용을 지역 저장소로 복제
빌드를 포함해 테스트 및 배로픞 자동화하는 도구
Java 기반 오픈소스.
서블릿 컨테이너에서 실행되는 서버 기반 도구
가장 많이 사용됨
SVN, Git등 대부분의 형상관리 도구와 연동이 가능
Groovy를 기반으로 한 오픈소스 형태의 자동화 도구
안드로이드 앱 개발 환경에서 사용
Java, C/C++, Python 등의 언어도 빌드 가능
DSL을 스크립트 언어로 사용