본문 바로가기

좋아하는 것_매직IT/1.spring

Lombok 관련 @Builder 와 @Accessors 의미 깔끔하게 정리하기

반응형

블로그 목적 :

Lombok 관련 @Builder 와 @Accessors 내용을 깔끔하게 정리해본다.

블로그 요약

하나, Lombok이  무엇인지 알아본다.
둘, Lombok 관련 @Builder 와 @Accessors 의 주요 내용을 간단하게 정리해본다.

블로그 상세 내용

우선, Lombok 에 대해서 정리해 보면요 아래와 같은데요..
 - Lombok 은 아래와 같이 홈페이지에서 설명하고 있는데요..
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

즉, 한마디로 Project Lombok은 자동으로 편집기에 연결하고 도구를 빌드하여 Java를 향상시키는 Java 라이브러리라고 머릿속에 넣어두시면 되는데요..

좀 말이 어렵다고요 ?
 - 그럼 제가 Lombok을 사용하면서, 느낀점에 대해서 설명드리자면 아래와 같습니다.
   - Lombok 을 사용하게 되면, 지원되는 어노테이션을 통해서 반복되는 getter , setter , toString 등의 메서드 작성 코드를 줄여주는 라이브러리 정도로 정리해볼 수 있겠네요..

출처 : Project Lombok

오늘 공부및 정리해볼 내용은 아래와 같습니다.  (제가 주로 사용하는 유용한 Lombok 관련 어노테이션이죠!!)


둘중에 우선, @Builder 어노테이션에 대해서 정리해본다면 아래와 같은데요..

아래는 예시코드고요..

위와 같이 @Builder 어노테이션을 사용하시면...아래와 같이 사용이 가능하게 됩니다. 

사용 문법을 간략하게 정리하자면..
 - [ObjectName].builder().[fieldName]([fieldValue]).build();  
 
그리고, @Builder의 장점을 정리해 보면 아래와 같이 크게 2가지로 정리해 볼 수 있는데요..

하나, 필드의 순서에 상관없이 객체를 생성할 수 있다.
   (위의 예제를 보면 service , key, value, auth 순으로 필드가 정의되어있지만 builder()에서는 service, auth, key, value순으로 객체를 생성할 수 있습니다. )

둘, 원하는 필드만 파라미터로 객체를 생성할 수 있다.
  (즉, service, key 필드만으로도 객체를 생성할 수 있게됩니다.)
 

이어서, @Accessors 에 대해서도 정리해보겠습니다. 
@Setter를 이용해서 객체를 생성할 때에는 여러 줄로 setMethod를 생성해야하는 단점이 존재하게되는데요..
이러한 단점을 보완하기위해 @Accessors(chain=true)를 사용하면 됩니다. 

즉, 해당 @Accessors(chain=true) 어노테이션을 추가하면, 아래와 같이 사용가능하죠..(개인적으로 신세계더라고요)

즉, @Accessors(chain=true)의 장점을 정리해보면,
일일이 setMethod를 여러 줄로 생성할 필요 없이 위와같이 Chain형태로 이어서 원하는 setMethod를 생성할 수 있다라고 머릿속에 넣어두시면 좋을것 같네요..

그럼, 결론을 간단하게 정리하고 블로그를 마무리하도록 하겠습니다. 

결론


제가 느끼는 Lombock 에 대해서 설명드리자면 아래와 같습니다.
   - Lombok 을 사용하게 되면, 지원되는 어노테이션을 통해서 반복되는 getter , setter , toString 등의 메서드 작성 코드를 줄여주는 라이브러리 정도로 정리해볼 수 있겠네요..


오늘 공부및 정리해본 내용은 아래와 같습니다.  (제가 주로 사용하는 유용한 Lombok 관련 어노테이션이죠!!)

@Builder 어노테이션은 객체생성시 유용하고...
@Accessors(chain=true)어노테이션은 일일이 setMethod를 여러 줄로 생성할 필요 없이 위와같이 Chain형태로 이어서 원하는 setMethod를 생성할 수 있다라고 정리해볼 수 있겠네요..

오늘 블로그는 여기까지고요...
이만 줄이겠습니다. 
항상 믿고 봐주셔서 감사합니다..

오늘도 마지막까지 제 글을 끝까지 읽어주셔서 진심으로 감사드리고, 제 글이 조금이라도 여러분의 각자의 삶을 살아가시는데 도움이 되셨길 기원합니다.

앞으로도 더욱 좋은 블로그를 남기는 제가 되도록 노력하겠습니다.

​그리고, 제 글을 읽으시면 말이 됩니다.
항상 말에는 반드시 삶을 움직이는 힘이 있습니다.
제가 열심히 정성스럽게 정리한 저만의 지식과 1일 1블로그하는 제 블로그에 담긴 글들을 통해서,
여러분들의 삶과 운명을 반드시 조각하고 움직이시길 기원합니다.​

이상입니다. 감사합니다.

728x90
300x250