롬복 : 자바 개발자들을 위한 오픈 소스 프로젝트
- 개발자가 반복적이고 지루한 작업을 줄이고 코드의 가독성을 높이기 위해 개발됨
- 주로 자바의 객체 지향 프로그래밍에서 사용되며, 개발자가 일반적으로 작성해야 할 코드를 자동으로 생성함.
- 롬복을 사용하면 개발자는 getter 및 setter 메서드, 생성자, equals 및 hashCode 메서드 등과 같은 보일러플레이트 코드(일반적으로 반복 작성되는 코드)를 직접 작성하지 않아도 됨.
- 롬복은 주석을 통해 어노테이션(annotation)을 제공하고, 컴파일 시점에 롬복이 이 어노테이션을 분석하여 자동으로 필요한 코드를 생성함. 이를 통해 롬복은 개발자의 생산성을 향상시키고, 코드의 가독성을 높여줌.
- 코드를 더 간결하게 작성할 수 있으며, 작성해야 할 반복적인 코드의 양을 줄여줌으로써 버그 발생 가능성도 낮출 수 있음.
- 자바의 다양한 개발 환경에서 사용할 수 있으며, 대부분의 주요 IDE(Integrated Development Environment) 및 빌드 도구와 호환됨
롬복 라이브러리 적용 방법
build.gradle에 라이브러리 및 환경 추가
plugins {
id 'org.springframework.boot' version '2.3.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
//lombok 설정 추가 시작
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
//lombok 설정 추가 끝
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
//lombok 라이브러리 추가 시작
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
//lombok 라이브러리 추가 끝
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
- Preferences(윈도우 File Settings) plugin lombok 검색 설치 실행 (재시작)
- Preferences Annotation Processors 검색 Enable annotation processing 체크 (재시작)
- 임의의 테스트 클래스를 만들고 @Getter, @Setter 확인
롬복 적용 이전 코드
@Component
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy
discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
}
롬복 적용 이후 코드
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
- 롬복 라이브러리가 제공하는 @RequiredArgsConstructor 기능을 사용하면 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다. (다음 코드에는 보이지 않지만 실제 호출 가능하다.)
'Back End > Spring' 카테고리의 다른 글
Spring - 조회한 빈이 모두 필요할때는 List와 Map 사용 (0) | 2023.07.16 |
---|---|
Spring - 조회 빈 2개 이상일때 (0) | 2023.07.14 |
Spring - 생성자 주입의 선택 (0) | 2023.07.14 |
Spring - 옵션처리 (0) | 2023.07.14 |
Spring - 다양한 의존관계 주입 방법 (0) | 2023.07.12 |