CI/CD



CI: Continuous Integration (지속적 통합)

여러 개발자들이 동일한 애플리케이션의 각각의 기능을 동시에 작업, 개발자들은 코드 변경 사항을 공유 브랜치나 트렁크로 재병합하는 작업으로 통합.

CD: Continous Development, Deploy (지속적 개발, 배포)

지속적 제공은 코드 변경 사항 병합부터 빌드 제공에 이르는 단계 + 테스트 자동화와 코드 릴리즈 자동화가 포함.


  • CI/CD Pipeline

    build - test- merge - bugtest - release - deploy


CI/CD는 새로운 코드의 통합으로 인한 개발 및 운영에 발생하는 문제(integration hell)을 해결하기 위한 솔루션이다. 형상관리(버전관리)를 위해서 CI, CD를 하는 방법은 git, docker, SVN 등 여러 방법이 있다.

이 중에서 git과 SVN을 비교



GIT vs SVN

GIT

분산관리식

local에서 Commit을 하면 local 저장소에 반영, local저장소에서 push를 하면 원격저장소에 반영. local에서 fetch -> merge -> push의 과정을 가지며, 충돌날 확률이 적다.


SVN

중앙집중식

local에서 Commit을 하면 중앙저장소에 바로 반영. (중앙 서버 소스코드를 로컬에 직접 내려받아 작업하고, 결과물을 커밋하여 서버에 올리는 방식)직관적인 반면 충돌이 일어날 확률이 높다.



명령어 참조

  SVN GIT
중앙서버 내용 받기 update pull
스테이지 영역에 추가   add
로컬저장소 저장   commit
로컬저장소로 내려받기   fetch
로컬저장소에서 합치기   merge
중앙서버로 반영 commit push