내 잡다한 노트

Groovy 란? 본문

DevOps/Jenkins

Groovy 란?

peanutwalnut 2024. 11. 24. 14:08

GroovyJava 플랫폼 위에서 실행되는 동적 객체 지향 프로그래밍 언어입니다. Apache Software Foundation에서 관리하며, Jenkins와 같은 자동화 도구에서 스크립트를 작성하고 워크플로우를 정의하는 데 자주 사용됩니다.

 

 

1. Groovy란?

Groovy는 다음과 같은 특징을 가진 프로그래밍 언어입니다:

  1. Java 기반 언어
    • Groovy는 Java Virtual Machine(JVM) 위에서 실행되며, Java 코드와 100% 호환됩니다.
    • Java 라이브러리를 직접 사용하거나 Java 코드와 혼합해서 사용할 수 있습니다.
  2. 동적 타입 지원
    • Java처럼 강타입 언어가 아닌 **동적 타입(dynamic typing)**을 지원하여 코드를 더 간결하게 작성할 수 있습니다.
  3. 스크립팅 언어
    • Groovy는 스크립트 기반 언어로 사용할 수 있어, 빠르게 작성 및 실행이 가능합니다.
  4. 문법 간결성
    • Groovy의 문법은 Java보다 간결하며, 반복적인 코드 작성을 줄여줍니다.
    • 예를 들어, getter와 setter 메서드, 세미콜론 등의 생략이 가능합니다.

 

 

2. Jenkins에서 Groovy의 역할

Jenkins는 Groovy를 주요 스크립트 언어로 사용합니다. Jenkins에서 Groovy를 활용하는 주요 영역은 다음과 같습니다:

(1) Pipeline Script

Jenkins Pipeline(파이프라인)은 Groovy를 사용해 작성됩니다.
Pipeline은 빌드, 테스트, 배포 단계를 정의한 코드로, CI/CD 워크플로우를 자동화합니다.

  • Declarative Pipeline (선언형 파이프라인)
    Groovy를 기반으로 간단하고 구조화된 방식으로 파이프라인을 정의합니다.
  • pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    echo 'Building...'
                }
            }
            stage('Test') {
                steps {
                    echo 'Testing...'
                }
            }
            stage('Deploy') {
                steps {
                    echo 'Deploying...'
                }
            }
        }
    }
  • Scripted Pipeline (스크립트형 파이프라인)
    Groovy 문법을 더 자유롭게 활용하며, 복잡한 로직을 포함할 수 있습니다.
  • node {
        stage('Build') {
            echo 'Building...'
        }
        stage('Test') {
            echo 'Testing...'
        }
        stage('Deploy') {
            echo 'Deploying...'
        }
    }

 

 

4. Groovy의 장점

  • 간단한 구문: Java에 비해 짧고 직관적인 코드 작성 가능.
  • 빠른 프로토타이핑: 스크립트 언어로 빠르게 실행 및 테스트 가능.
  • Java의 확장성: 기존 Java 코드와 혼용하여 사용 가능.
  • Jenkins와의 최적화된 통합: Groovy는 Jenkins Pipeline 및 설정에 적합.

 

5. Groovy의 단점

  • 퍼포먼스: 동적 언어이기 때문에 컴파일된 Java 코드보다 느릴 수 있음.
  • 러닝 커브: Groovy와 Jenkins Pipeline DSL을 처음 사용하는 경우, 문법과 구조를 이해하는 데 시간이 걸릴 수 있음.
  • 디버깅 어려움: Jenkins 환경에서 Groovy 스크립트 실행 중 발생하는 에러는 디버깅이 어렵게 느껴질 수 있음.

 

6. 왜 Jenkins에서 Groovy를 사용하나?

  1. Java 기반: Jenkins 자체가 Java로 작성되었기 때문에 Groovy와 자연스럽게 통합 가능.
  2. DSL 지원: Groovy는 Jenkins에서 사용하는 Domain-Specific Language(파이프라인 DSL)를 구현하는 데 이상적.
  3. 유연성: 선언형 파이프라인부터 복잡한 스크립트형 파이프라인까지 모두 작성 가능.
  4. 재사용성: Groovy를 활용해 공유 라이브러리와 커스텀 스크립트를 작성하여 여러 프로젝트에서 재사용 가능.

'DevOps > Jenkins' 카테고리의 다른 글

Jenkinsfile 이란?  (0) 2024.11.27
Jenkins New item 페이지  (0) 2024.11.24
Jenkins agent  (0) 2024.11.24
Jenkins 에이전트  (0) 2024.11.21
젠킨스 Jenkins  (1) 2024.11.21