Jenkins — CI/CD 의 오픈소스 표준
Entity (인물·조직)lectureverified2026-05-09

Jenkins — CI/CD 의 오픈소스 표준

#vch#lecture-intro#C-se-tool#se-g5

Jenkins — CI/CD 의 오픈소스 표준

1. 요약

Jenkins 는 2004년 Sun Microsystems 의 Kohsuke Kawaguchi 가 Hudson 으로 시작한 지속적 통합 (CI) 자동화 도구 다. 2010년 Oracle 이 Sun 을 인수하면서 프로젝트 통제 갈등이 발생, 2011년 1월 11일 커뮤니티 투표를 거쳐 Jenkins 로 포크 (1월 29일 승인). 첫 Jenkins 릴리스 1.396 은 2011년 2월 11일 (Hudson 1.395 에서 이름만 변경).

2. 배경 (이전 도구의 한계)

XP의 Continuous Integration 관행 (1999) 은 좋았지만 수동 이었다 — 개발자가 매번 통합 빌드를 돌려야 했다. CruiseControl (2001) 같은 초기 도구도 있었지만 XML 설정이 복잡 했다. Kawaguchi 의 통찰: Java 서블릿 컨테이너 한 개에 웹 UI 로 모든 빌드를 관리 하면 누구나 쓸 수 있다.

3. 핵심 개념·표기법

Jenkins 의 핵심:

  • Job (Build) — 빌드 단위
  • Pipeline — 빌드 → 테스트 → 배포 단계 명세 (Jenkinsfile, Groovy DSL)
  • Plugin Ecosystem — 1,800+ 플러그인 (GitHub, Slack, AWS 등)
  • Master / Agent — 분산 빌드

Declarative Pipeline (Jenkinsfile):

pipeline {
  agent any
  stages {
    stage('Build') { steps { sh 'make' } }
    stage('Test')  { steps { sh 'make test' } }
    stage('Deploy'){ steps { sh 'make deploy' } }
  }
}

4. 언어·OS 매핑 (★ 강의 핵심)

시대환경Jenkins 활용
2004~10Hudson, JavaSun 사내 도구
2011~15Jenkins, 모든 언어★ CI 산업 표준
2015~Kubernetes 시대Jenkins X — 컨테이너 친화
2018~GitHub Actions, GitLab CI클라우드 SaaS 로 점차 이동
2024~+ AILLM 이 Jenkinsfile 자동 생성

★ Jenkins 는 언어 무관 — Java·Python·Node·Go·C++·Rust 모두 빌드. 이것이 20년 살아남은 이유.

5. 현대까지의 영향

  • CircleCI, Travis CI (2011~) — SaaS CI
  • GitHub Actions (2018) — Git 통합 CI
  • GitLab CI — DevOps 통합 플랫폼
  • Jenkins X (2018) — Kubernetes-native Jenkins
  • Tekton, ArgoCD — Cloud-native CI/CD
  • AI 자동 파이프라인 — LLM 이 yaml 작성

6. 주요 인물·사건

연도사건
2004Kawaguchi (Sun), Hudson 시작
2010Oracle, Sun 인수 — 프로젝트 통제 갈등
2011 1월커뮤니티 투표 — Hudson → Jenkins 포크
2011 2월Jenkins 1.396 첫 릴리스
2011Kawaguchi, O'Reilly Open Source Award
2018Jenkins X — Kubernetes 친화
2018~GitHub Actions 출시 — 점차 SaaS 우세

7. 강의 활용

"빌드 자동화가 CI/CD 가 되고, CI/CD 가 GitOps 가 되고, GitOps 가 AI 자동 배포가 된다" 의 진화. 자동화의 핵심: 코드 변경이 일어나면 즉시 검증되어야 한다 — 이 원칙은 AI 시대에도 동일 — LLM 이 코드를 만들면 Jenkins 같은 자동 검증 파이프라인이 그것을 항상 검증해야 한다.

출처

그룹 시리즈

synthesis/group-se_g5 (시대 그룹 종합 카드)