Groovy 문법

2025. 1. 22. 00:17프로그래밍/java

728x90
반응형
SMALL

Groovy 문법은 Java와 유사하지만 더 간결하고 유연하며 생산성을 높이는 기능들이 추가되어 있습니다. Groovy의 문법을 아래 주요 요소별로 정리해 보겠습니다.

 


1. 기본 사항

변수 선언

  • 타입을 명시하거나, 동적 타입으로 선언할 수 있습니다.
int x = 10 // 정적 타입
def y = 20 // 동적 타입 (타입 생략)
 

출력

println "Hello, Groovy!" // 출력: Hello, Groovy!
 

 


2. 문자열

문자열 선언

  • 싱글(') 또는 더블(") 따옴표를 사용할 수 있습니다.
def singleQuote = 'Hello'
def doubleQuote = "World"
 

문자열 보간 (String Interpolation)

  • 변수 또는 표현식을 ${}로 포함할 수 있습니다.
def name = "Groovy"
println "Hello, ${name}!" // 출력: Hello, Groovy!
 

 


3. 조건문

if-else

  • Java와 유사하지만, ()는 선택적입니다.
def age = 18
if (age >= 18) {
    println "Adult"
} else {
    println "Minor"
}

switch
  • Java보다 더 유연하며, 모든 객체를 사용할 수 있습니다.
def value = 10
switch (value) {
    case 1:
        println "One"
        break
    case [10, 20, 30]: // 리스트 매칭
        println "Matched in list"
        break
    case { it > 5 }: // 조건 람다 매칭
        println "Greater than 5"
        break
    default:
        println "Default"
}
 

 


4. 반복문

for-each

def numbers = [1, 2, 3, 4, 5]
for (num in numbers) {
    println num
}

while

def count = 5
while (count > 0) {
    println count count--
}
 

 


5. 컬렉션

리스트 (List)

def list = [1, 2, 3, 4]
println list[0] // 출력: 1

list << 5 // 값 추가
println list // 출력: [1, 2, 3, 4, 5]
 

맵 (Map)

def map = [name: "Groovy", version: "3.0"]
println map.name // 출력: Groovy

map.language = "Java"
println map // 출력: [name:Groovy, version:3.0, language:Java]
 

 


6. 클로저 (Closure)

  • 익명 함수로, 함수형 프로그래밍의 기본 단위입니다.
def greet = { name -> println "Hello, $name" }
greet("World") // 출력: Hello, World

// 매개변수가 없는 클로저
def noArgs = { println "No arguments!" }
noArgs()
 

고급 사용

  • 기본 매개변수 이름은 it입니다.
def printIt = { println it }
printIt("Groovy") // 출력: Groovy
 
  • 클로저를 반복문에서 사용:
def numbers = [1, 2, 3, 4, 5]
numbers.each { println it } // 1, 2, 3, 4, 5 출력
 

 


7. 클래스와 객체

클래스 선언

  • Java와 비슷하지만 간결합니다.
class Person {
    String name
    int age

    def sayHello() {
        println "Hello, my name is $name"
    }
}

def person = new Person(name: "Groovy", age: 25)
person.sayHello() // 출력: Hello, my name is Groovy
 

기본 getter/setter

  • Groovy는 자동으로 getter와 setter를 생성합니다.
person.name = "New Name"
println person.name // 출력: New Name
 

 


8. 예외 처리

Try-Catch-Finally

try {
    int result = 10 / 0
} catch (ArithmeticException e) {
    println "Cannot divide by zero"
} finally {
    println "Execution complete"
}

 


9. 파일 I/O

파일 읽기

def file = new File("example.txt")
file.eachLine { line -> println line }

 

파일 쓰기
new File("example.txt").write("Hello, Groovy!")
 

 


10. 기타 문법

안전 호출 연산자 (?.)

  • 객체가 null인지 확인하고 안전하게 호출.
def person = null
println person?.name // 출력: null (NullPointerException 방지)
 

엘비스 연산자 (?:)

  • 기본값을 지정할 때 사용.
def name = null
println name ?: "Default Name" // 출력: Default Name
 
스프레드 연산자 (*)
  • 리스트나 맵을 해체하거나 병합할 때 사용.
def list1 = [1, 2, 3]
def list2 = [*list1, 4, 5]
println list2 // 출력: [1, 2, 3, 4, 5]

 

 

Groovy의 장점

  • Java와 유사한 문법으로 학습이 쉬움.
  • 간결하고 유연한 코드 작성 가능.
  • 클로저와 컬렉션 처리 등 현대적 프로그래밍 패턴 지원.

이 문법들을 바탕으로 Gradle 스크립트 작성이나 스크립팅 작업을 효율적으로 수행할 수 있습니다.

728x90
반응형
LIST

'프로그래밍 > java' 카테고리의 다른 글

Spring Boot 란  (0) 2025.01.22
java 버전 중에서 2025.01.22현재 가장 안정된 버전  (0) 2025.01.22
Snapshot 버전, Release 버전의 차이  (0) 2025.01.22
Groovy 란  (0) 2025.01.21
Ant, Maven, Gradle  (0) 2025.01.21