본문 바로가기
PM으로 성장하기/개발 공부

빌드, 배포, 리포지토리, CI, CD, Jenkins

by 고양이 고씨 2023. 5. 10.

젠킨스가 무엇인지 알기 위해서는 빌드, 배포, 리포지토리, CI, CD 까지 이해해야 한다. 이번 기회에 정말 자주 듣고 사용하는 빌드, 배포, 리포지토리라는 단어와 CI, CD, 젠킨스까지 구글링하여 찾아본 내용을 정리해보았다.
 

빌드(Build)

배포를 하기 위한 준비 과정으로, 서버에 올릴 수 있는 상태로 만드는 것을 뜻한다. 컴파일 된 코드를 실행할 수 있는 상태로 만드는 것이다.
 

배포(Deploy)

개발을 완료하고 테스트 후 유저가 사용할 수 있도록 서버에 반영하는 것을 뜻한다. 빌드가 완성한 실행 파일을 사용자가 접근할 수 있는 환경에 배치시키는 것이다.
 

리포지토리(Repository, Repo)

리포지토리는 개발자가 애플리케이션 소스 코드에 대한 변경을 수행, 관리하는 데 사용하는 중앙화된 스토리지이다. 기본 코드를 손상시키지 않고 코드를 여러 번 변경할 수 있어, 두 명 이상의 개발자가 동일한 부분을 편집할 때 병합 충돌을 줄일 수 있다. 그 유명한 GitHub이 리포지토리이다.
 

CI와 CD

CI(Continuous integration)는 빌드/테스트 자동화를 말한다. 특정 브랜치에 새로 커밋될 때, 이를 빌드하고 테스트하는 과정을 자동화한 것이다. 빌드하고 테스트한 이후, 테스트에 통과된 경우 리포지토리에 병합한다.
CD(Continuous Delivery/Continuous Deployment)는 배포 자동화를 말한다. 빌드 후 문제가 없다고 판단되면 이를 배포하게 되는데, 이 과정을 자동화한 것이다. 리포지토리에 업로드 된 것을 고객이 사용가능한 프로덕션 환경까지 자동으로 배포한다.
 

젠킨스(Jenkins)

젠킨스는 CI/CD툴 중 하나로 빌드, 테스트, 배포 프로세스를 자동화하기 위해 지속적인 통합(Continuous integration), 지속적 배포(Continuous delivery) 환경을 구축하기 위한 도구이다.
개발자는 개발 작업 이외에도 다양한 작업을 수행하는데, 젠킨스는 이를 지원하기 위해 약 1400개의 플러그인을 갖고 있다고 한다. 일상적인 개발 작업(프로젝트 빌드, 테스트 실행, 정적 코드 분석, 배포)을 자동화하기 위해 플러그인은 플랫폼, UI, 관리, 소스코드 관리, 빌드 관리의 역할을 지원한다. 과거에는 일정시간마다 빌드를 실행했다면, 젠킨스는 버전관리 시스템과 연동하여 소스의 커밋을 감지하면 자동으로 빌드가 작동한다. 또한 2개 이상의 모듈로 구성되는 프로젝트의 경우 순차적으로 빌드를 하기 위해 빌드 파이프라인 구성이 필요한데, 젠킨스로 이를 제어할 수 있다. 


참고자료
젠킨스란 무엇인가, CI(Continuous Integration) 서버의 이해, https://www.itworld.co.kr/news/107527
[Jenkins] 젠킨스란?, https://narup.tistory.com/179
[배경 지식] 컴파일, 빌드, 배포 개념 및 CI/CD 개념 정리, https://velog.io/@choi-ju12g/%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EB%B9%8C%EB%93%9C-%EB%B0%B0%ED%8F%AC-%EA%B0%9C%EB%85%90-%EB%B0%8F-CICD-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC
CI/CD 개념 및 각종 플랫폼 정리, https://velog.io/@skyni/CICD-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EA%B0%81%EC%A2%85-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%A0%95%EB%A6%AC
Repo란 무엇인가요?, https://aws.amazon.com/ko/what-is/repo/
빌드란? 그리고 Jenkins(젠킨스)란? 써야하는 이유, https://krksap.tistory.com/1377

728x90

댓글