어노테이션은 자바 코드에 메타 데이터를 추가하여 코드에 특별한 의미를 부여하거나, 컴파일러와 런타임에 특정 동작을 트리거하기 위해 사용됨
public interface Mouse {
void leftClick();
void rightClick();
void scrollWheel();
}
public class LogitechMouse implements Mouse {
@Override
public void leftClick() {
// 로지텍 좌클릭 로직 구현
}
@Override
public void rightClick() {
// 로지텍 우클릭 로직 구현
}
@Override
public void scrollWheel() {
// 로지텍 스크롤휠 로직 구현
}
}

어노테이션을 활용하면 복잡한 기능도 쉽게 사용할 수 있다
롬복은 보일러 플레이트 코드를 줄여주는 라이브러리로 자동으로 보일러 플레이트 코드를 생성하여 코드의 가독성과 유지보수성을 높여줌
Lombok은 어노테이션 기반으로 동작하며, 주로 컴파일 시점에 소스 코드를 변환하여 필요한 메서드를 자동으로 생성함
getter/setter 메서드, 생성자, toString 메서드 등과 같이 반복적으로 작성되는 코드를 뜻함

롬복을 사용하여 보일러 플레이트 코드를 줄임!
Getter와 Setter를 직접 구현하면 코드량이 굉장히 많아지게 되는데 Lombok의 @Getter와 @Setter 어노테이션을 사용하면 쉽게 구현 가능
@Getter
@Setter
public class User {
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;
}
**/
}
toString() 메서드를 자동으로 생성한다.@ToString
public class User {
private String name;
private int age;
}
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private int age;
}
@Slf4j
public class UserService {
public void logMessage() {
log.info("This is a log message");
}
}