profile Yoon ChaeYoung Backend

Groovy Script

» Study

개요


Groovy란

  • Java에 Python, Ruby 등의 특징을 더한 동적 객체 지향 프로그래밍 언어
  • JVM에서 실행되는 스크립트 언어
  • Java 호환 가능(Java Class 사용 가능)
  • 단순화된 문법을 지원

장점

  • 코드를 읽고 유지보수하기 편함
  • 더 많은 절차적인 코드를 작성 가능
  • 프로그램 작성과 흡사
  • 기존 파이프 라인 문법이라 친숙하고 이전 버전과 호환 가능
  • 필요한 경우 커스텀한 작업 생성이 가능하기 때문에 유연성 좋음
  • 보다 복잡한 워크 플로우 및 파이프 라인 모델링 가능

단점

  • 일반적으로 더 많은 프로그래밍이 필요
  • Groovy 언어 및 환경으로 제한된 구문 검사
  • 전통적인 Jenkins 모델과는 맞지 않음
  • 같은 작업이라면 Declarative 문법보다 잠재적으로 더 복잡

문법

문자열

문자열 표기 방법: ‘‘(작은 따옴표) OR ““(큰 따옴표)

’‘(작은 따옴표): 단순한 문자열 출력

”“(큰 따옴표): 문자열 출력, 문자열 내부에 $변수를 이용해 동적인 내용을 표시하는데에 사용 가능

’’’ ‘’’ (작은 따옴표 3개) OR “”” “”“(큰 따옴표 3개로 열고닫기): 여러 행 출력

메소드 호출

괄호 생략 가능

println ('hello')
println 'hello'
형 생략

def 사용 시 모든 타입 변수 생성 가능

String message = 'hi'
def message = 'hi'
클로저(Closure)

클로저: Java의 Lambda(람다)와 매우 유사한 성격의 기능, 어떤 메소드의 인수로 전달할 처리문

실행 방법: <클로저이름>.call() OR <클로저이름>() 으로 실행 가능

def clos1 = {
    println 'hi'
}
​
// 실행
clos1.call()
clos1()