소프트웨어 개발 환경 구축 : 형상 관리, 버전 제어 및 빌드 자동화 도구
소프트웨어 개발의 동적 영역에서 빌드 프로세스의 구성, 버전 제어 및 자동화를 효과적으로 관리하는 것은 원활한 프로젝트 진행을 보장하는 데 중추적인 역할을 합니다. 이러한 기본 도구와 사례의 주요 측면을 살펴보겠습니다.
- 형상 관리 도구 (★)
- 소프트웨어 생명주기 동안 발생하는 변경사항을 통제하기 위한 관리 방법
- 소프트웨어의 변경사항을 체계적으로 관리하는 것
- 형상 관리 도구 별 관리
- 변경관리 - 소스의 변경 사항을 관리
- 버전관리 - 변경을 관리하기 위한 효과적인 방법
- 형상관리 - 프로젝트 진행상황, 빌드와 릴리즈까지 모두 관리할 수 있는 통합 시스템
- 형상 관리 대상
- 프로젝트 수행 계획서
- 엔티티 정의서
- 인터페이스, ERD
- 소스코드
- 테스트 계획서
- 사용자/운영자 매뉴얼
- 형상 관리 절차 (★)
- 형상 식별
- 형상 통제
- 형상 감사
- 형상 기록 / 보고
- 흐름 : 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록 / 보고
- 형상 식별 개념
- 형상 관리의 시작으로 시스템을 구성하는 요소들 중 형상 관리의 대상을 구분하고 요소들 중 형상 관리의 대상을 구분하고 관리 목록의 번로를 정의하여 부여함
- 형상 통제 개념 (★)
- 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스 라인에
- 반영될 수 있도록 통제
- 형상 감사
- 형상 항목의 변경이 계획에 따라 제대로 이뤄졌는지를 검토하고 승인
- 형상 기록 / 보고
- 프로젝트 팀, 회사, 클라이언트 등 에게 소프트웨어 개발 상태에 대한 보고서를 제공
- 소프트웨어 버전 관리 도구
- 동일한 소스코드에 대한 여러 버전을 관리하는 것
- 소프트웨어 버전 관리 도구 유형
- 공유 폴더 방식(RCS, SCCS) - 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사
- 클라이언트 / 서버 방식(CVS, SVN) - 중앙에 버전 관리 시스템이 항시 동작
- 분산 저장소 방식(Git)
- 로컬 저장소와 원격 저장소 구조
- 커밋으로 내 컴퓨터(로컬)에 반영 후 푸쉬로 원격 저장소에 업로드 방식
- 버전 관리 도구 별 특징
- CVS - 파일의 히스토리를 보존하기에 과거 이력 확인 가능
- SVN
- CVS의 단점 보완을 위해 만들어짐
- 최초 1회에 한해 파일 원본을 저장하고, 그 이후에는 실제 파일이 아닌 원본과 차이점을 저장하는 방식
- Git (깃)
- 원격 서버 Git Repository에 Push하지 않은 채 여러 branch 생성 가능
- 원격에 장애가 있어도 버전 관리가 가능
- Clear case
- Ditkeeper
- RCS
- 버전 관리 주요 용어
- Repository : 저장소
- Checkout : Repository에서 로컬로 프로젝트 복사
- Commit : 로컬의 변경된 내용을 Repository에 저장
- Update : Repository에 있는 내용을 로컬에 반영
- Add : 로컬에서 새로운 파일이 추가되었을 때 Repository에 등록
- Trunk : Root 프로젝트
- Branch : Root 프로젝트에서 파생된 프로젝트
- Merage : Branch에서 진행하던 작업을 Root 프로젝트와 합침
- Diff : 파일의 비교
- 빌드 도구
- 빌드의 개념 - 소스코드 파일들을 컴퓨터에서 실행할 수 있는
- 소프트웨어로 변환하는 일련의 과정
- War = Zip
- 빌드 자동화 도구
- 빌드 자동화 프로세스
- CI : 지속적인 통합
- CD : 지속적인 배포
- 빌드 → 테스트 → 배포
- 빌드 자동화 도구 종류
- Make - 유닉스 계열
- Ant - XML 기반의 빌드 스크립트
- Maven - 의존성 , (pom.xml) 라이브러리 관리
- Jenkins - 자바 계열
- Gradle
- Groovy를 기반으로 한 오픈소스 형태의 자동화 도구로 안드로이드 앱 개발 환경에서 사용
빌드 자동화 프로세스
2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!