Variable 'userService' might not have been initialized - 오류

변수가 초기화되지 않았을 수 있습니다.
private final UserServiceImpl userService;
private UserServiceImpl userService;
로 변경하면 적용은 됨 작동하는지 확인 필요
@RequiredArgsConstructor
를 컨트롤러와 서비스단에 만들어주지 않아서 생긴 문제였다....쩝..
**@RequiredArgsConstructor**는 Java 언어에서 Lombok이라는 라이브러리를 통해 제공되는 어노테이션
어노테이션을 사용하면 생성자를 자동으로 생성해주는 기능을 제공!
Lombok은 반복적이고 번거로운 작업을 줄여주기 위해 개발자들이 자주 사용하는 여러 어노테이션들을 제공하는 유용한 라이브러리이다.
@RequiredArgsConstructor 어노테이션은 주로 불변(immutable) 클래스에서 사용된다. 불변 클래스란 한 번 생성된 객체가 그 상태를 변경할 수 없는 클래스를 의미한다. 이런 클래스는 객체의 무결성을 보장하고 예측 가능한 동작을 강조하는 데 유용하다.
이 어노테이션은 클래스의 final 필드들을 기반으로 생성자를 자동으로 생성한다. 클래스의 모든 final 필드를 매개변수로 받는 생성자를 생성해주며, 이를 통해 객체를 생성할 때 필수적인 값들을 지정할 수 있다.
예를 들어, 아래와 같이 @RequiredArgsConstructor 어노테이션을 사용한 경우!
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class Person {
private final String firstName;
private final String lastName;
private int age;
}
위 코드에서 @RequiredArgsConstructor 어노테이션이 적용된 Person 클래스는 **firstName**과 lastName 필드를 기반으로 생성자를 자동으로 생성한다. 생성자는 불변 필드들을 인자로 받으며, 나머지 age 필드는 생성자에 포함되지 않는다.
이렇게 생성자를 자동으로 생성하면 객체를 초기화할 때 필요한 값들을 간편하게 전달할 수 있다. 이와 함께 Lombok은 다양한 다른 어노테이션들을 제공하여 코드 작성을 더욱 간결하게 만들어준다.