본문 바로가기
프로그래밍

getter, setter 자동 생성 라이브러리 lombok

by 탁구치는 개발자 2012. 10. 23.

자바 공감 세미나에 가서 lombok 이라는 프로젝트를 알게 되었는데 이 프로젝트가 상당히 흥미로운 기능을 가지고 있다.


대게 VO(Value Object) 및 도메인 객체 사용 시 getter, setter를 생성하는데 lombok 라이브러리를 추가하여 @Data 애노테이션을 달아 주면 컴파일 시점에 getter, setter, hashCode(), toString(), 생성자를 자동으로 생성해 준다.


자동으로 생성한다고 하여 소스 코드 상에 getter, setter가 생성 되는 것이 아닌 bytecode에 생성이 된다.


@Data

public class LombokTest {


private String name;

private String id;


}


사실 VO 클래스를 사용하다 보면 getter, setter가 각 필드마다 존재하여 가독성이 상당히 떨어지는 느낌을 받았는데 위와 같이 필드명만 존재하게 되면 상당히 직관적이고, 깔끔한 코드가 될 것 같다는 생각이 든다.


마지막으로 lombok 동작 원리가 상당히 궁금하다.

다운로드 받은 lombok.jar를 더블 클릭한 후 eclipse.exe 파일 지정 후 install을 하게 되면 eclipse.ini 파일에 다음과 같은 코드가 붙는다.

-javaagent:lombok.jar

-Xbootclasspath/a:lombok.jar

위 코드로 인해 컴파일 시점에 getter, setter를 자동 생성해 주는 것 같다.

하지만 어떤 구현 원리를 가지고 생성되는지는 아직 파악하지 못하였다.


지금은 일이 바쁘니 나중에 lombok 소스를 다운로드 받아 그 원리를 알아봐야 겠다.


알아두면 나중에 상당한 도움이 될 것 같다는 생각이 든다. 지금 당장 어느 곳에 활용해야 할지 생각이 나지는 않지만..;


원리에 대해서는 차후에 다시 작성하도록 하자.