Skip to content

4.6 구성 관리 및 CI/CD #1489

@jongfeel

Description

@jongfeel

4.6 구성 관리 및 CI/CD

4.6.1 구성 관리

구성 관리configuration management란 소프트웨어 개발 프로젝트에서 생성되는 다양한 산출물을 관리 대상으로 식별하고, 해당 산출물에 대한 변경 사항을 추적하는 일련의 프로세스를 의미합니다.

구성 관리 대상 자료

일반적으로 Git이나 Subversion 같은 버전 관리 시스템을 통해 관리합니다.

  • 소스 코드
  • 테스트 코드
  • 테스트 데이터
  • 설정 파일
  • 빌드 스크립트
  • 데이터베이스 자료: DDL (데이터 정의 언어), DML (데이터 조작 언어)

마크다운처럼 텍스트 기반으로 작성된 문서라면 소스 코드와 같은 리포지토리에 함께 저장하는 것도 하나의 방법입니다.
이렇게 하면 문서와 코드 간 변경을 보다 쉽게 동기화할 수 있다는 장점이 있습니다.

브랜치 관리 방법

브랜치 모델은 브랜치 관리 방식과 작업 흐름을 정의한 개념으로, Git에서는 git-flow와 GitHub Flow가 대표적인 예입니다.

4.6.2 CI/CD

이러한 시스템은 가능한 한 개발 초기부터 갖추는 것이 좋습니다.

CI

CIcontinuous integration(지속적 통합)는 주로 빌드와 테스트 과정을 자동화하는 개발 방식입니다.
개발 작업이 완료되어 브랜치를 병합할 때는 변경된 소스 코드의 품질에 문제가 없는지, 빌드가 정상적으로 수행되는지, 기존 프로그램과 통합해도 오류 없이 동작하는지 등을 자동으로 점검합니다.

  • 컴파일
  • 정적 분석
  • 단위 테스트
  • 통합 테스트
  • E2E 테스트
  • 빌드
  • 문서 생성

CI에 너무 많은 작업을 포함하면 처리 시간이 늘어나 대기 시간이 길어지고 결과적으로 개발 효율이 저하될 수 있습니다.
따라서 어떤 작업을 언제 실행할지에 대한 기준과 전략이 필요합니다.

CD

Continuous Delivery(지속적 전달) 또는 Continuous Deployment(지속적 배포)을 의미하는 CD는 릴리스 프로세스를 자동화하는 실천 방법입니다.

Metadata

Metadata

Assignees

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions