본문 바로가기

카테고리 없음

LomBok

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("~~"); 같은 형태로 출력을 할수가 있게 된다.