박대신 코딩공부 2021. 11. 7. 17:02

Lombok

java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리다.

 

Lombok은 여러가지 어노테이션을 제공하고 이를 기반으로 코드를 컴파일과정에서 생성해 주는 방식으로 동작하는 라이브러리다. 즉 코딩 과정에서는 롬복과 관련된 어노테이션만 보이고 getter와 setter 메서드 등은 보이지 않지만 실제로 컴파일된 결과물(.class)에는 코드가 생성되어 있다는 뜻입니다.

 

일반 JAVA 코드 VS Lombok 적용

일반 java 코드

public class CategoryModel {
      private String id;
      private String parentId;
      private String name;
      private Long depthLevel;
      private Long seq;
      private String userYn;
      
      public CategoryModel() {}
      
      public CategoryModel(String id, String parentId, String name, Long  depthLevel, Long seq, String userYn) {
            super();
            this.id = id;
            this.parentId = parentId;
            this.name = name;
            this.depthLevel = depthLevel;
            this.seq = seq;
            this.userYn = userYn;
      }
 
      public String getId() {
            return id;
      }
      
      public void setId(String id) {
            this.id = id;
      }
      
      public String getParentId() {
            return parentId;
      }
      
      public void setParentId(String parentId) {
            this.parentId = parentId;
      }
      
      public String getName() {
            return name;
      }
      
      public void setName(String name) {
            this.name = name;
      }
      
      public Long getDepthLevel() {
            return depthLevel;
      }
      
      public void setDepthLevel(Long depthLevel) {
            this.depthLevel = depthLevel;
      }
      
      public Long getSeq() {
            return seq;
      }
      
      public void setSeq(Long seq) {
            this.seq = seq;
      }
      
      public String getUserYn() {
            return userYn;
      }
      
      public void setUserYn(String userYn) {
            this.userYn = userYn;
      }
      @Override
      public String toString() {
            return "CategoryModel [id=" + id + ", parentId=" + parentId  + ", name=" + name + ", depthLevel=" + depthLevel
                        + ", seq=" + seq + ", userYn=" + userYn + "]";
      }
      
}

Lombok 적용된 코드

@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class CategoryModel {
      private String id;
      private String parentId;
      private String name;
      private Long depthLevel;
      private Long seq;
      private String userYn;
      
}

Lombok은 복잡하고 반복되는 코드가 줄어듦으로써 코드의 가독성을 높일 수 있고 코딩 생산성 또한 높일 수 있다.

다만 Lombok이 개발자마다 호불호가 나뉘는 라이브러리로 특정 개발자들은 코드가 직접 눈에 보임으로써 직관성을 유지하는것이 좋다고 보는 의견도 있는 만큼 자신의 프로젝트나 프로젝트 리더의 성향에 따라 사용하면 좋을 것 같습니다.

Lombok 적용 방법

1. 공식 홈페이지 에서 다운로드 받는다.

파일은 이클립스가 설치된 곳으로 받는다.

 

java pom.xml에 추가해 주자

그다음 cmd 창으로 lombok.jar 파일을 실행 시키자

install / update 클릭시 완료 된다.

그다음 이클립스 재실행 및 Maven Build 및 업데이트 하고 실행하면

logBack을 사용하지 않고 lombok을 사용해서 log.info("~~"); 같은 형태로 출력을 할수가 있게 된다.