brunch

매거진 SW개발

You can make anything
by writing

C.S.Lewis

by 김민석 Mar 30. 2016

롬복을 디벼보자

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로 클래스 하나 만들던거 있는데 롬복 써서 얼마나 깔끔한지 함 보시라...



끝으로 사용 시 유의할 내용 링크 걸어둔다. 정말 좋은 글이다


매거진의 이전글 Docker로 AWS에서 Springboot 시작하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari