Spring/실습 정리

Spring Boot 4강 - @RequiredArgsConstructor로 생성자 자동 생성하기

코딩하는냥이 2025. 6. 30. 13:00
반응형

클래스를 만들 때, final 필드@NonNull 필드를 반드시 초기화해야 할 때가 많습니다.
이럴 때 Lombok의 @RequiredArgsConstructor를 사용하면,
필요한 필드만 받아서 초기화하는 생성자(constructor)를 자동으로 만들어줍니다.


📌 예제 코드

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public class HelloLombok {
    private final String hello;
    private final String lombok;

    public static void main(String[] args) {
        HelloLombok helloLombok = new HelloLombok("헬로", "롬복");

        System.out.println(helloLombok.getHello() + "\t" + helloLombok.getLombok());
    }
}

💬 코드 설명

  • @RequiredArgsConstructor
    클래스에 이 애너테이션을 붙이면,
    모든 final 필드@NonNull 필드만을 파라미터로 받는 생성자가 자동 생성됩니다.
  • private final String hello, lombok;
    final로 선언된 두 필드는 반드시 생성자를 통해 값이 할당되어야 합니다.
  • main 메서드
    • HelloLombok("헬로", "롬복")와 같이, 두 값을 생성자 인자로 전달하여 객체를 만듭니다.
    • 두 필드의 값을 출력합니다.
  • getter 메서드 사용
    예제 코드에는 getter 메서드가 명시적으로 없으므로,
    실제로 컴파일이 되려면 @Getter 애너테이션을 추가하거나,
    IDE에서 직접 getter 메서드를 생성해야 정상 동작합니다.

💻 실행 결과

헬로	롬복

(생성자에 전달된 값이 그대로 출력됩니다.)


💡포인트 정리

  • @RequiredArgsConstructor는 final 필드 초기화용 생성자를 자동으로 만들어준다.
  • 생성자를 직접 작성할 필요가 없어서,
    코드가 훨씬 간단해진다.
  • getter/setter가 필요하다면, @Getter/@Setter 애너테이션을 함께 사용하면 된다.

📌정리하자면, @RequiredArgsConstructor를 사용하면
불변성(immutable)을 유지해야 하는 클래스도 손쉽게 만들 수 있습니다.
생성자 관련 반복 코드를 줄이고, 더 안전하고 명확한 객체 생성을 도와주는 좋은 습관입니다.