상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 소프트웨어 개발 환경 구축

정보처리기사 공부지식

by 소란한소란 2024. 2. 9. 17:22

본문

728x90

소프트웨어 개발 환경 구축 : 형상 관리, 버전 제어 및 빌드 자동화 도구

 

소프트웨어 개발의 동적 영역에서 빌드 프로세스의 구성, 버전 제어 및 자동화를 효과적으로 관리하는 것은 원활한 프로젝트 진행을 보장하는 데 중추적인 역할을 합니다. 이러한 기본 도구와 사례의 주요 측면을 살펴보겠습니다.

  • 형상 관리 도구 (★)
    • 소프트웨어 생명주기 동안 발생하는 변경사항을 통제하기 위한 관리 방법
    • 소프트웨어의 변경사항을 체계적으로 관리하는 것
  • 형상 관리 도구 별 관리
    • 변경관리 - 소스의 변경 사항을 관리
    • 버전관리 - 변경을 관리하기 위한 효과적인 방법
    • 형상관리 - 프로젝트 진행상황, 빌드와 릴리즈까지 모두 관리할 수 있는 통합 시스템
  • 형상 관리 대상
    • 프로젝트 수행 계획서
    • 엔티티 정의서
    • 인터페이스, ERD
    • 소스코드
    • 테스트 계획서
    • 사용자/운영자 매뉴얼
  • 형상 관리 절차 (★)
    1. 형상 식별
    2. 형상 통제
    3. 형상 감사
    4. 형상 기록 / 보고
    • 흐름 : 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록 / 보고
  • 형상 식별 개념
    • 형상 관리의 시작으로 시스템을 구성하는 요소들 중 형상 관리의 대상을 구분하고 요소들 중 형상 관리의 대상을 구분하고 관리 목록의 번로를 정의하여 부여함
  • 형상 통제 개념 (★)
    • 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스 라인에
    • 반영될 수 있도록 통제
  • 형상 감사
    • 형상 항목의 변경이 계획에 따라 제대로 이뤄졌는지를 검토하고 승인
  • 형상 기록 / 보고
    • 프로젝트 팀, 회사, 클라이언트 등 에게 소프트웨어 개발 상태에 대한 보고서를 제공
  • 소프트웨어 버전 관리 도구
    • 동일한 소스코드에 대한 여러 버전을 관리하는 것
  • 소프트웨어 버전 관리 도구 유형
    1. 공유 폴더 방식(RCS, SCCS) - 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사
    2. 클라이언트 / 서버 방식(CVS, SVN) - 중앙에 버전 관리 시스템이 항시 동작
    3. 분산 저장소 방식(Git)
      1. 로컬 저장소와 원격 저장소 구조
      2. 커밋으로 내 컴퓨터(로컬)에 반영 후 푸쉬로 원격 저장소에 업로드 방식
  • 버전 관리 도구 별 특징
    • 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년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기