[java] @Getter와 @Setter 어노테이션의 사용법과 효과는 무엇인가요?

@Getter@Setter 어노테이션은 Lombok 라이브러리에서 제공하는 기능으로, 자바 코드에서 자동으로 getter와 setter 메소드를 생성해주는 역할을 합니다.

이 어노테이션을 사용하면 명시적으로 getter와 setter를 작성하는 번거로움을 줄일 수 있으며, 코드의 가독성을 향상시킬 수 있습니다. 또한, 변경 불가능한(immutable) 객체를 생성하고자 할 때 유용하게 사용될 수도 있습니다.

예를 들어, 아래와 같은 클래스를 작성한다고 가정해봅시다:

public class Person {
    private String name;
    private int age;
    
    // Getter와 Setter 메소드 작성
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
}

위와 같이 수동으로 getter와 setter를 작성하는 것은 반복적이고 번거로울 수 있습니다. 하지만, @Getter@Setter 어노테이션을 사용하면 아래와 같이 코드를 간소화할 수 있습니다:

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Person {
    private String name;
    private int age;
}

위 코드에서는 @Getter 어노테이션으로 getName()getAge() 메소드가, @Setter 어노테이션으로 setName()setAge() 메소드가 자동으로 생성됩니다.

이런식으로 어노테이션을 사용하여 getter와 setter 메소드를 자동으로 생성하면, 번거로운 작업을 줄이고 코드의 가독성을 향상시킬 수 있습니다. 참고로, Lombok은 자바 코드에서 getter와 setter 생성 외에도 다양한 기능을 제공하는데, 자세한 내용은 Lombok 공식 문서를 참고하시기 바랍니다.

참고문서: Lombok 공식 문서