# 롬복과 최신 트렌드

막상 개발을 해보면, 대부분이 다 불변이고, 그래서 다음과 같이 생성자에 final 키워드를 사용하게 된다. 그런데 생성자도 만들어야 하고, 주입 받은 값을 대입하는 코드도 만들어야 한다.

롬복(Lombok)이란?

자바 클래스에서 자주 사용하는 getter, setter, 생성자 등을 어노테이션을 사용하여 반복되는 작업을 생략하도록 빌드 시점에 자동으로 생성해주는 플러그인이다.

롬복 라이브러리가 제공하는 @RequiredArgsConstructor 기능을 사용하면 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다. 롬복이 자바의 애노테이션 프로세서라는 기능을 이용 해서 컴파일 시점에 생성자 코드를 자동으로 생성해준다!

수정된 코드

```java
@Component
  @RequiredArgsConstructor
  public class OrderServiceImpl implements OrderService {
      private final MemberRepository memberRepository;
      private final DiscountPolicy discountPolicy;
}
```

최근에는 생성자를 딱 1개 두고, @Autowired 를 생략하는 방법을 주로 사용한다. 여기에 Lombok 라이브 러리의 @RequiredArgsConstructor 함께 사용하면 기능은 다 제공하면서, 코드는 깔끔하게 사용할 수 있다.

