정보처리기사
11. 개발 환경 구축(2)
nayeonee__
2023. 3. 31. 09:09
https://www.njobler.net/product/lecture/show/prod/10810
1억뷰 N잡
[연장 미포함] 흥나게 합격달성! 정보처리기사 실기
www.njobler.net
본 강의를 듣고 내용을 정리하며 적은 게시글 입니다.
- 형상 관리 도구
- 형상관리 도구 개념
- 소프트웨어 생명주기 동안 발생하는 변경사항을 통제하기 위한 관리방법
- 소프트웨어 변경사항을 체계적으로 관리하는 것
- 필요성
- 개발 도중 소스코드를 이전 상태로 되돌릴 필요가 있을 경우
- 각 변경점에 대한 이력확인
- 등등
- 변경관리, 버전관리, 형상 관리
- 변경 관리
- 소스의 변경 상황을 관리
- 문서의 변경이력과 복원 등의 기능이 제공
- 버전 관리
- 변경을 관리하기 위한 효과적인 방법
- 체크인, 체크아웃, 릴리즈, 퍼블리싱의 과정을 버전으로 관리 할 수 있다.
- 형상 관리
- 변경 관리와 버전관리가 포함되고, 프로젝트 진행 상황, 빌드와 릴리즈까지 모두 관리할 수 있는 통합 시스템
- 변경 관리
- 형상 관리 대상
- 프로젝트 수행계획서, 요구사항 관리대장, 소프트웨어 기능 구조도
- 비용은 포함되지 않는다.
- 형상 관리 절차
- 형상 식별
- 형상 관리의 시작으로 시스템을 구성하는 요소들 중 형상 관리의 대상들을 구분하고 관리 목록의 번호를 정의하여 부여한다.
- 형상 항목은 단순히 소스파일 뿐만 아니라 산출물, 개발 이력, 개발 과정에서 작성되는 문서까지 포함
- 형상 통제
- 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스 라인에 반영될 수 있도록 통제
- 형상 통제가 이루어지기 위해서는 형상 통제 위원회(CCB)의 승인을 통한 변경 통제가 이루어져야 한다.
- 형상 감사
- 형상 항목의 변경이 계획에 따라 제대로 이루어 졌는지 검토하고 승인
- 형상 기록
- 형상 식별
- 형상관리 도구 개념
- 버전 관리 도구
- 소프트웨어 버전관리 도구 개념
- 동일한 소스코드에 대한 여러 버전을 관리하는 것
- 버전관리 도구 유형
- 공유 폴더 방식
- 매일 개발 완료 파일은 약속된 위치에 공유 폴더에 복사
- 클라이언트/서버 방식
- 중앙에 버전 관리 시스템이 항시 동작
- 분산 저장소 방식
- 로컬 저장소와 원격 저장소 구조
- 공유 폴더 방식
- 버전 관리 도구별 특징
- CVS
- 오랜 기간 사용된 형상 관리도구로, 다양한 운영체제를 지원
- 중앙에 위치한 레포지토리에 파일을 저장하고, 인가된 모든 사용자가 파일에 접근할 수 있다.
- 커밋중 오류가 발생하면 롤백되지 않는다
- 상대적으로 속도가 느리다
- 다른 개발자가 작업 중인 파일에 덮어쓰기가 방지된다.
- SVN
- CVS 의 단점을 보완하기 위해 만들어졌다.
- 최초 1회 한해 파일 원본을 저장하고, 그 이후에는 실제 파일이 아닌 원본과 차이점을 저장하는 방식
- 커밋 실패시 롤백 가능
- GIT
- 리누스 토발즈가 리눅스 커널의 개발을 위해 만들었다.
- 로컬 우선 작업을 통해 성능이 위에 도구들보다 우수하다.
- 원격 레포지토리에 장애가 있어도 버전관리가 가능하다.
- Clear Case
- IBM 에서 개발된 유료버전의 형상 관리 툴
- 서버가 부족할 때 서버를 하나씩 늘려 확장할 수 있다.
- BitKeeper
- SVN 과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 버전관리 도구
- RCS
- 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일을 잠금 처리하는 방식으로 버전 컨트롤을 수행
- CVS
- 주요 용어들
- Repository
- Checkout
- Commit
- Update
- Add
- Trunk - Root 프로젝트
- Branch - Root 프로젝트에서 파생된 프로젝트
- Merge
- Diff - 파일의 비교
- 버전관리 소프트웨어 사용방식 - 책 참고
- 유의점
- 불필요한 사용자가 소스를 수정할 수 없도록 해야한다.
- 등등
- 소프트웨어 버전관리 도구 개념
- 빌드 도구
- 빌드의 개념
- 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정
- 빌드의 단계 중 컴파일이 포함이 되어 있는데 컴파일은 빌드의 부분집합
- 빌드과정을 도와주는 도구를 빌트 툴이라고 한다.
- 빌드 자동화 도구는 지속적인 통합(Continuous Integration)을 수행할 수 있도록 도와준다.
- 빌드 자동화 도구 특징
- 빌드, 테스트, 배포를 자동으로 수행하는 도구
- 계속해서 늘어나는 라이브러리 자동 추가 및 관ㄹ리
- 소스코드를 컴파일, 테스트, 정적 분석 등을 실시하여 실행 가능한 애플리케이션으로 자동으로 생성
- 빌드 자동화 프로세스 - 책 참고
- 빌드
- 테스트
- 배포
- 빌드 자동화 도구 종류
- Make
- 유닉스 계열 운영체제에서 주로 사용되는 프로그램 빌드 도구
- Ant
- 자바 기반의 빌드 도구로 다른 빌드 도구보다 역사가 오래되었다.
- 개발자가 원하는 형태로 개발할 수 있다는 유연성에 장점이있다.
- XML 기반의 빌드 스크립트로 개발한다.
- 등등
- Maven
- 프로젝트에 필요한 모든 의존성을 리스트 형태로 Maven 에게 알려 관리할 수 있도록 돕는 방식
- Jenkins
- 자바 기반의 오픈소스로, 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴
- 서블릿 컨테이너에서 실행되는 서버 기반 도구
- Gradle
- Groovy를 기반으로 한 오픈소스 형태의 자동화 도구로 안드로이드 앱 개발 환경에서 사용
- Make
- 빌드의 개념