본문 바로가기
[IT] Spring Boot (JAVA)/[개발 환경 - Eclipse] Spring Boot STS

lombok(롬복) Eclipse(이클립스), STS(Spring Tool)에 설치하기

by 오리엔탈킴 2021. 12. 7.

JAVA 프로젝트의 필수 라이브러리라 할 수 있는 Lombok(롬복)을 Windows OS - Eclipse(이클립스) / STS (Spring Tool Suite)에 설치하는 방법을 포스팅하겠습니다. Lombok은 이클립스 IDE 사용 시에는 버전 등에 영향을 많이 받아서 자동 설치는 에러가 나는 경우가 많아서 아래와 같이 수동으로 설치하시는 것이 가장 좋습니다.

 

1. Lombok 다운로드

https://projectlombok.org/download

 

Download

 

projectlombok.org

위 lombok 공식 사이트에서 설치파일(lombok.jar)을 다운로드합니다.

 

롬복 다운로드 사이트 화면
롬복 다운로드 사이트

2. Lombok 설치

CMD를 실행하여, 다운로드한 lombok.jar 파일이 있는 경로로 이동(cd 폴더 위치)합니다. 아래의 명령어와 같이 jar 파일을 실행시켜 줍니다.

 

java -jar lombok.jar

 

lombok.jar 파일을 실행시켜주면, 아래와 같이 설치 창이 뜨고, IDEs 부분에 자동으로 설치된 Eclipse와 설치 위치가 보이게 됩니다. 아래와 같이 아무것도 나오지 않는 경우, Specify location을 클릭하여 직접 Eclipse (STS) 설치 위치를 선택하면 됩니다. 이때 폴더의 위치는 이클립스 실행파일(exe)이 있는 폴더를 선택해주시면 됩니다.

 

롬복 설치 화면 - 이클립스 설치 위치 지정
이클립스 설치 위치 지정
롬복 설치 화면 - 이클립스 설치 위치 선택
이클립스 설치 위치 선택

 

그런 후 아래와 같이, Install / Update 버튼을 클릭하면 아래와 같이 Install successful 화면이 뜨면 설치는 완료된 것입니다.

 

롬복 설치 버튼 클릭 화면
롬복 설치
롬복 설치 완료 화면
롬복 설치 완료 화면

 

3. Lombok 의존성 추가

설치가 완료되셨다면 아래와 같이 Spring Boot 프로젝트에 Lombok에 대한 Depadency를 추가합니다.

Maven 프로젝트라면 pom.xml 파일에 아래와 같이 의존성을 추가 후 Maven - Update Project를 진행합니다. 

 

	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<optional>true</optional>
	</dependency>

 

Gradle 프로젝트라면 bulid.gradle 파일에 아래와 같이 의존성을 추가 후 Refresh Gradle Project를 진행합니다.

 

dependencies {
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
}

 

4. Lombok 사용법

먼저, Lombok의 가장 메인 기능은 Entity나 VO(DTO) 모델 객체를 정의할 때, Getter/Setter 메서드 코드를 @Getter 및
@Setter 어노테이션 2개로 대신하여 코드 수를 획기적으로 줄여주는 기능입니다. 또한 toString이나 생성자 함수도 별도의 코드 없이@ToString, @NoArgsConstructor, @AllArgsConstructor, @EqualsAndHashCode 어노테이션 추가로 가능하게 합니다. 그리고 이 모든 어노테이션이 @Data 하나만 정의해주면 됩니다. 

 

아래와 같이 코드를 변수마다 일일이 작성하실 필요가 없이, 필요한 어노테이션 혹은 @Data 어노테이션 하나로 객체 정의가 가능합니다.

 

- Lombok 미적용

public class TestVO {
	
	private int x;
	private final int y = 1;
	
	// Getter, Setter
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	
	// ToString
	@Override
	public String toString() {
		return "TestVO [x=" + x + ", y=" + y + ", getX()=" + getX() + ", getY()=" + getY() + ", getClass()="
				+ getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]";
	}
	
	// EqualsAndHashCode
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + x;
		result = prime * result + y;
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		TestVO other = (TestVO) obj;
		if (x != other.x)
			return false;
		if (y != other.y)
			return false;
		return true;
	}
	
	// AllArgsConstructor 
	public TestVO(int x) {
		super();
		this.x = x;
	}
	// NoArgsConstructor
	public TestVO() {
		super();
	}
	
}

 

- Lombok 적용

import lombok.Data;

@Data
public class TestVO {
	
	private int x;
	private final int y = 1;
	
}

 

추가로 많이 사용하는 기능이 @Slf4j 어노테이션으로

 

log.debug("msg");
log.error("msg");
log.info("msg");
log.trace("msg");
log.warn("msg");

 

등 로깅 코드도 간단하게 표현을 가능하게 해 줍니다.

기타 다른 기능은 Lombok 공식 페이지(https://projectlombok.org/features/all)에서 확인 가능합니다.

 

반응형

댓글