이것저것

Lombok

감자b 2024. 12. 27. 02:34

롬복이란?

Lombok 이란 반복되는 getter, setter, toString .. 등 반복되는 메서드를 annotation 형식으로 작성 해서 코드를 줄여주는 라이브러리를 의미한다.

적용 방법

  1. build.gradle에 다음과 같이 롬복 설정을 추가한다.
plugins {
	id 'java'
	id 'org.springframework.boot' version '3.3.4'
	id 'io.spring.dependency-management' version '1.1.6'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17)
	}
}

// 롬복 설정
configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	
	// 롬복 설정
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
	useJUnitPlatform()
}
  1. 롬복 플러그인 설치 (IntelliJ 구버전에만 해당)
  2. Settings → Build, Execution, Deployment → Compiler → Annotation Processors
  3. Enable annotation processing 부분 체크

대표적인 lombok annotation

@Getter, @Setter

필드에 대해 getter, setter를 작성해준다. 메서드 이름은 get필드명, set필드명이 된다.

 

@Data

모든 필드에 대해 @ToString, @EqualsAndHashCode, @Getter를 설정하고 모든 non-final 필드에 대해 @Setter, @RequiredArgsConstructor를 설정한다.

 

@NoArgsConstructor

매개변수가 없는 기본 생성자를 생성한다.

@RequiredArgsConstructor

초기화되지 않은 모든 final 필드에 대한 생성자를 생성한다.

 

@AllArgsConstructor

모든 필드에 대한 생성자를 만들어준다.

 

@Builder

Builder를 자동으로 작성해준다. 클래스에 작성하면 모든 필드에 대한 빌더를 생성하고, 원하는 필드에 대해서만 빌더를 생성하고 싶은 경우 생성자를 작성하고 그 위에 @Builder를 붙여준다.