Lombok
위 사이트는 롬복 공식홈이다. 공식홈에도 워낙 정리가 잘 되어 있어서 일단 한번 둘러보시길 권해드린다.
롬복은 자바에서 클래스 만들 때 흔히 기계적으로 만드는 코드들을 자동으로 만들어주는 자바 유틸리티이자 라이브러리라고 할 수 있다.
getter/setter/생성자등을 어노테이션 몇개로 그냥 다 만들어준다. 예를들어 Entity같은 클래스들은 대부분 로직은 없고 생성자/게터/세터로 이루어져 있는 경우가 많다. 이럴 때 롬복에서 제공하는 어노테이션을 쓰면 코드에 필드 몇개와 어노테이션이 전부다. 킹왕짱 깔끔해진다.
더군다나 필드변수의 이름을 바꿀일이 있다면 더 효과가 좋다. 기존에는 필드이름 바꾸고 메소드 이름도 같이 바꿔줘야 해서 매우 귀찮았고 참조하고 있는 얘들도 다같이 바꿔줘야 해서 IDE의 리팩토링 기능을 일일이 써야 했는데 롬복은 그냥 필드의 이름만 바꿔주면 된다..
이클립스를 기준으로 설명하겠다. 요즘 인텔리J 많이들 쓰시던데... 난 돈이 없으니까... 못하겠고... 공식홈에 설명 잘 되어있으니 인텔리들은 그거 보시라..
공홈에서 롬복을 다운받고.. 실행을 하면 되는데... 이게 jar 파일이다. 윈도우즈 같은 경우 윈도우에 자바 깔고 다른 문제 없다면 jar파일 실행하면 바로 실행 될 것이고.. 압축프로그램 연동 때문에 압축프로그램이 실행되시는 분들은 커맨드창 열어서
java -jar lombok.jar
하면 된다. 그러면 아래 화면이 뜬다
뭔가 큰 고추가 있다. 신경쓰지말자.. 다른거 건들거 없고 중간에 내 PC에 깔려있는 IDE들이 보인다. 난 STS를 쓰고 있기 때문에 그게 보인다. 이 상태에서 install/Update 버튼 누른다. 그럼 끝이다. 물론 이클립스가 실행되어 있는 상태에서 인스톨했다면 이클립스를 재실행해줘야 한다.
Maven 프로젝트를 기본으로 하겠다. 메이븐 프로젝트 하나 만들어서 아래 링크에 있는 의존성 추가한다.
이제 몇가지 어노테이션만 알면 된다. 자주 쓰는 몇가지만 일단 설명하겠다.
- @Data
class위에 써주면 된다. 아래 어노테이션을 한번에 정의한다는 뜻이다. 아래 어노테이션은 각각 따로 써도된다.
1.@ToString
==> 이름 그대로 ToString() 메소드를 생성한다. 안에 자동적으로 모든 필드변수에 대해서 String으로 리턴하도록 자동생성한다. 기존에 ToString 만든다고 노가다 하던거 안해도 된다.
2.@EqualsAndHashCode
==> 딱 이름만 봐도 equals와 hashcode 메소드 만들어준다. 이펙티브 자바나 여타 책들 보면 이콜스 쓸 때 해시코드는 꼭 만들어주시고.. 혼자 고민하는 것보다 툴에서 제공하는거 꼭 쓰세요.. 뭐 이런말 있는데 이거 하나면 끝이다.
3.@Getter
==> 모든 필드에 대해서 자동으로 getter 메소드 생성
4.@Setter
==> 모든 non-final 필드에 대해서 자동으로 setter 메소드 생성
5. @RequiredArgsConstructor!
==> 이름 그대로 꼭 필요한 생성자는 자동 생성한다. 예를 들어 final 필드 같은 경우 생성자에서 꼭 값을 넣어줘여 하니 이런 경우에 해당이 된다.
이거 5개면 사실 뭐 거의 뭐 게임 끝인데 아래 몇가지만 더 알면 좀더 편하다.
- @Builder
이펙티브 자바에 보면 immutable class를 만들기 위해서 final 필드를 쓰면 되지만... 필드 변수가 많고 설정하는게 복잡해질 때 빌더 패턴을 써서 만들면 좋다라고 나와 있는 걸로 대충 기억난다. 특히나 요즘 같이 함수형 언어의 특징이 강조되고 있는 시기에 불변클래스 만들 일이 많은데 롬복에서는 이거 하나면 게임 끝이다. 물론 그냥 막 쓰면 안되고 빌더 디자인 패턴에 대해서 좀 미리 알고 쓰시라.. 아래 링크 보시던지..
- @Log
프로그램은 우리가 만들지만 넘들이 쓰기 때문에 꼭 필요한게 로그다. 옛날보다는 많이 편해졌지만 그래도 클래스마다 로그 팩토리 통해서 로그 객체를 가져와야 하는데 이거 좀 귀찮다. 하지만 롬복에서는 이 어노테이션 하나로 끝! 쓰는 로그마다 사용법이 조금 다를 수도 있으니 아래 링크 한번 보시던지..
뭐 이정도면 대충 설명했다.. 하지만 더 자세히 알고 싶으신 분들은 아래 링크에서 전체적으로 한번 더 훑어보기를 권해드린다. 10분이면 충분하다.
마지막으로 지금 JPA로 클래스 하나 만들던거 있는데 롬복 써서 얼마나 깔끔한지 함 보시라...
끝으로 사용 시 유의할 내용 링크 걸어둔다. 정말 좋은 글이다