Groovy 기본
Groovy란?
- JVM에서 실행되는 스크립트 언어이다.
- 문법이 Java에 매우 비슷하다.
- Java와 호환이 되며 Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다.
- 2003년에 처음 공개되었으며 2015년부터 아파치 소프트웨어 재단이 관리하고 있다.
Groovy 활용
- Gradle 스크립트는 Groovy 또는 Kotlin으로 작성되는데, Java 프로젝트에서는 주로 Groovy가 사용된다.
- 테스트 코드로도 작성에도 활용된다.
Hello World
class HelloWorld {
static void main(String[] args) {
println 'Hello World'
}
}
실행 결과:
Hello World
생략 가능한 구문들
라이브러리 추가 (Import Statement)
아래 객체는 자동으로 임포트되기에 생략할 수 있다.
import java.lang.*
import java.util.*
import java.io.*
import java.net.*
import groovy.lang.*
import groovy.util.*
import java.math.BigInteger
import java.math.BigDecimal
세미클론 (Semicolons)
Groovy에서는 세미콜론이 필수가 아니어서 생략할 수 있다.
println 'hello';
println 'hello'
메소드 (Parentheses)
Groovy에서는 메소드를 호출시에 괄호(()
)를 생략할 수 있다.
println('hello')
println 'hello'
반환 타입과 키워드 (Return Type and the return Keyword)
Groovy에서는 리턴 타입을 명시할 필요도 없고, 메소스 마지막 줄에서 리턴 키워드를 사용할 필요도 없다.
def getPi() {
3.14
}
assert getPi() in BigDecimal
assert getPi() == 3.14
Getters and Setters
Groovy에서는 Getter와 Setter를 명시적으로 정의할 필요가 없다.
class Person {
String firstName
String lastName
def getName() {
firstName + ' ' + lastName
}
static void main(args) {
def person = new Person()
person.firstName = 'Kwan Young'
person.lastName = 'Shin'
assert person.firstName == 'Kwan Young'
assert person.lastName == 'Shin'
println person.getName()
}
}
접근 제어자 (Access Modifiers)
Java에서 접근 제어자를 생략할 경우 해당 패키지내에서만 접근이 가능하게 되지만, Groovy에서는 생략될 경우에는 public
으로 인식된다.
체크 예외 (Checked Exceptions)
Java에서는 IOException
과 같은 Checked 예외를 처리하기 위해서 try/catch
문으로 감싸줘야 했지만 Groovy에서는 Checked 예외들이 RunTimeException
으로 감싸지므로 try/catch
문을 적용할 필요가 없다.
출처: https://springsource.tistory.com/85 [Rednics Blog]
데이터 타입 추론
Groovy는 변수 선언시에 데이터 타입을 지정할 수도 있지만, def
라는 키워드를 사용하여 데이터 타입을 추론 즉 생략 가능하다.
String message = 'hello'
def message = 'hello'
API
문자열 (String)
Groovy에서 문자열을 표기하는 방법은 작은 따움표('
)와 큰 따움표("
)가 있다.
-
작은 따옴표(
'
)- 단순한 문자열을 출력하는 사용된다.
-
큰 따옴표(
'
)- 문자열을 출력하는데 사용되며, 문자열 내부에
$
변수를 이용해서 동적인 내용을 표시할 수 있다.
- 문자열을 출력하는데 사용되며, 문자열 내부에
-
여래행
- 여러 줄을 사용하고 싶다면, 작운 따움표 3개로 열고 닥기(
''' '''
) 또는 큰 따움표 3개 열고 닫기(""" """
)를 사용한다.
- 여러 줄을 사용하고 싶다면, 작운 따움표 3개로 열고 닥기(
분기문
def age = 19
def person = (age < 19)? '성인': '청소년'
println("$person입니다.")
참조
최종 수정 : 2024-01-18