Spring lombok

강정우·2023년 11월 16일
0

Spring-boot

목록 보기
15/73
post-thumbnail

롬복과 개발 트랜드

  • 개발을 해보면 대부분(99%)이 불변이고 1%만 불변이 아닌 경우가 있다고 한다.
    그래서 보통은 생성자에 final 키워드를 사용하게 될텐데 문제는 생성자도 만들어야하고 주입 받은 값을 대입하는 코드도 만들어야하고 타이팅할 게 한둘이 아니게 된다는 것이다.

  • 그래서 lombok을 추가해보자.
    우선 root에 보면 build.gradle을 볼 수 있는데 중간에 아래 코드를 추가해주면 된다.
java {
	sourceCompatibility = '11'
}

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

repositories {
	mavenCentral()
}
  • 이게 어노테이션프로세서를 사용하여 동작을 하는 것이다. compileOnly 설정을 annotationProcessor로 확장하도록 지시하여 Lombok이 컴파일 시에만 사용되고, 런타임에는 포함되지 않도록 할 수 있다.

따라서, build.gradle 파일에 Lombok을 설정하려면 의존성 중간에 다음 코드를 추가하면 된다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	
    // 롬복 라이브러리 추가
	compileOnly 'org.projectlombok:lombok:'
	annotationProcessor 'org.projectlombok:lombok:'

	testCompileOnly 'org.projectlombok:lombok:'
	testAnnotationProcessor 'org.projectlombok:lombok:'
	// 롬복 라이브러리 추가
    
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
  • 그리고 setting에서 pugin에 lombok이 지원되도록 설정해준 다음 annotation processors 설정도 추가적으로 잡아줘야하는데

  • 이렇게 Enable annotation processing을 꼭 켜줘야한다.

  • 롬복 기본 기능(@Getter,@Setter,@ToString, etc...)은 앞서 대충 했기 때문에 추가적으로 작성하지 않겠다.

@RequiredArgsConstructor

  • 바로 생성자 주입 코드 부분을 자동으로 작성해준다는 것이다.

  • 이름 그대로 required 즉, 필드에 final 키워드가 붙은 값들을 생성자 코드를 만들어준다는 것이다.

  • cmd + f12 ctrl + f12 를 누르면 위와같이 해당 클래스의 상세정보를 볼 수 있는데 보면 생성자 함수도 만들어져 있는 것을 확인할 수 있다.

  • 이 롬복의 강점은 필드를 수정해야할 때 빛을 발한다.
    추가를 하든~ 필드를 수정을 하든~ 따로 수정해야줘야할 코드가 없기 때문이다.

롬복이 자바의 어노테이션 프로세서라는 기능을 이용해서 컴파일 시점에 생성자 코드를 자동으로 생성해주기 때문에 실제 class를 열어보면 위 사진처럼 코드가 추가되어있는 것을 확인할 수 있었다.

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글