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 |