
158
그레이들 레시피
A.6
POGO
자바 언어에서 속성과 그에 대한
Getter
와
Setter
메서드만 가지고 있는 클래스를 ‘
Plain
Old
Java
Objects
’ 또는 ‘
POJO
’라고 부릅니다. 그루비는 이와 유사하게
POGO
를 가지고 있습니
다. [예제
A
-
12
]를 살펴봅시다.
예제
A-12
단순한
POGO
import groovy
.
transform
.
Canonical
@
Canonical
class Event
{
String name
Date when
int priority
}
이 작은 클래스에는 많은 힘이 있는데,
POGO
는 다음과 같습니다.
•
기본적으로
public
클래스입니다
.
•
속성은
기본적으로
private
입니다
.
•
메서드는
기본적으로
public
입니다
.
•
Getter
와
Setter
메서드는
각
속성에
대하여
생성되고
public
이나
private
으로
지정할
수
없습니다
.
• 기본 생성자와 맵 기반
(속성 :값 형식 )
의 생성자를 모두 지원합니다.
POGO
는
@canonical
애너테이션을 포함하여 추상 문법 트리
AST
,
Abstract
Syntax
Tree
변환을 수행
합니다.
AST
변환은 컴파일러가 생성한 문법 트리를 특별한 방식으로 컴파일 시간에 변경하는
기법입니다.
@canonical
애너테이션은 실제로
@ToString
과
@EqualsAndHashcode ...