[개발환경]Lombok 라이브러리 사용

Inung_92·2023년 1월 10일
1

개발환경

목록 보기
1/7
post-thumbnail

Lombok이란?

Java 라이브러리로 반복되는 getter/setter, toStrign() 등의 반복 메서드 작성 코드를 줄여주는 라이브러리

model클래스 및 Entity 같은 도메인 클래스 등은 수많은 멤버변수를 보유한다. 이에 대응하는 각종 메서드를 여러개 만들 수 밖에 없는데 이러한 코드들은 코드 자체가 반복 소스코드이며, 많을 시 코드의 가독성이 떨어질 수 있다. 이와 같은 상황들을 해결하기 위해서 lombok을 사용하는 것이다.
lombok은 여러가지 @어노테이션을 제공하고 이를 기반으로 반복 소스코드를 컴파일 과정에서 생성해주는 방식으로 동작하는 라이브러리이다. 즉, 코딩을 진행하는 과정에서 lombok과 관련된 어노테이션만 보이고 반복 메서드 등은 실제로 컴파일된 결과물(.class)에만 생성이 되어 있다.

어노테이션(Annotation) : 소스코드에 추가해 사용할 수 있는 메타 데이터의 일종


Lombok의 장단점

장점

  • 어노테이션 기반의 코드 자동생성을 통한 생산성 향상
  • 반복 코드 간소화를 통해 가독성 및 유지보수성 향상
  • getter/setter 외 빌더 패턴이나 로그 생성 등 다양한 방면 활용 가능

단점

  • 코드가 눈에 직접 보이지 않기 때문에 직관성이 떨어짐(개발툴의 아웃라인 기능을 통해 해소가능)
  • API설명 및 내부동작을 이해하는데 시간이 다소 걸릴 수 있음
  • 편하다는 이유로 무작위로 사용한다면 여러가지 예외문제가 발생할 가능성이 높아짐

사용과 미사용의 차이

일반 Java코드와 lombok을 사용한 경우가 어떻게 다른지 보자. 먼저 Java 코드로 표현한 DTO이다.

public class DTO{
	private int age;
    private String name;
    private String job;
    
    //멤버변수와 1:1대응하는 getter/setter 코드작성
   	public void setAge(int age){
    	this.age = age;
    };
    public int getAge(){
    	return age;
    };
    public void setName(String name){
    	this.name = name;
    };
    public String getName(){
    	return name;
    };
    public void setJob(String job){
    	this.job = job;
    };
    public String getJob(){
    	return job;
    };
}

위 코드를 lombok을 이용하면 다음과 같이 간소화 할 수 있다.

import lombok.*;

@Data
public class DTO{
	private int age;
    private String name;
    private String job;
}

@Data 어노테이션을 활용하면 @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 자동으로 완성시켜준다. 불필요한 경우에는 필요한 어노테이션만 명시하여 사용하도록 하자.

이처럼 lombok을 활용하면 엄청날 수도 있는 양의 코드를 간소화시키는 것이 가능하다.


Lombok 설치 및 적용

이제부터 lombok을 설치하는 방법과 적용하는 방법을 알아보자. 참고로 필자의 개발환경은 macOS, eclipse, maven을 활용하고 있다.

우선 필자는 lombok을 직접 다운로드 받는 방식이 아니라 maven에 등록하여 사용하였다. 메인홈페이지에서 을 받도록 하자.(버전 : 1.18.24)

https://projectlombok.org/setup/maven

위에서 그림과 같이 해당 부분을 복사해준 상태로 이클립스에 등록된 pom.xml 파일에 등록해주자. 아래 그림에서 해당 파일을 더블클릭하여 편집할 수 있도록 한다.

파일을 열면 아래 그림과 같이 나올 것이다. 그러면 복사해둔 lombok의 dependency를 등록해주고 저장을 하자.


프로젝트 태그가 닫히는 부분 바로 위쪽에 넣어주면된다. 이 상태로 저장을 하면 maven 라이브러리에 lombok의 jar가 적용된 것이 보일 것이다.

위 그림처럼 나온다면 정상적으로 적용이 된 것이다. 이제 한번 lombok을 사용해보자.
클래스 생성은 평상 시와 동일하게 진행해주면 된다. 아래 예시를 보자.

Gallery라는 클래스에 멤버변수를 선언해주고 클래스 선언부 상단에 @Data 어노테이션을 작성해주면 된다. import하는 것도 잊지말자. 그 후 아웃라인에서 해당 클래스에 생성된 메서드를 보면 코드에 작성되지 않은 메서드들이 들어왔는 것이 확인된다.

추가 설명

혹시라도 위 방법으로 실행이 되지 않는 사람들은 아래 방법을 통해 lombok을 설정해주자.

https://projectlombok.org/download
위 경로를 통해 lombok.jar 파일을 다운받아준다.

위처럼 터미널 또는 CMD를 이용하여 해당 디렉토리로 이동하여 준다.

작성하기 귀찮다면 이렇게 드래그해주어도 가능하다.

해당 디렉토리로 접속하였으면 아래 명령어를 입력하여 lombok.jar를 실행하여주자.

java -jar lombok.jar

명령어가 정상 작동한다면 아래와 같이 lombok이 실행될 것이다. 자동으로 컴퓨터에 설치되어있는 이클립스를 찾아주니 특별한 이유가 없다면 그냥 install을 눌러주면 된다.

설치가 완료되면 'install success'라는 문구가 나올 것이다.

여기까지 완료되었다면 다시 실행해보자 잘 작동할 것이다.


마무리

lombok을 사용하기 전에는 멤버변수에 대응하는 메서드들을 각각 작성해줘서 상당히 피로감도 높았다. 하지만 그런 고통의 시간이 있었기 때문에 Lombok이 더욱 소중히 여겨진다고 생각한다. 언제나 그렇듯 개발을 하는데 있어서 라이브러리, 프레임워크를 사용하는 것도 중요하지만 그것들의 기초가 되는 부분을 먼저 경험한 뒤 사용하는 것이 중요하다고 생각한다.(그래도 편해서 좋다...)

profile
서핑하는 개발자🏄🏽

0개의 댓글