Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] Lombok의 대표적인 Annotation과 역할 본문
Lombok이란?
Lombok은 자바 언어의 반복적이고 장황한 코드를 줄여주는 라이브러리로, 프로젝트의 코드 가독성을 높이고 개발 생산성을 향상시킵니다. 대표적인 Annotation과 그 역할에 대해 알아보겠습니다.
Gradle 설치하기
생략...
dependencies {
.....
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
.....
}
생략...
@Getter / @Setter
필드에 대한 Getter와 Setter 메서드를 자동으로 생성합니다. 보일러플레이트 코드를 줄여주어 코드의 가독성을 높입니다.
Lombok을 사용하지 않은 경우
public class PersonWithoutLombok {
private String name;
private int age;
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;
}
}
Lombok을 사용한 경우
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
public class Person {
private String name;
private int age;
}
@ToString
클래스의 모든 필드를 포함한 문자열 표현을 생성합니다. 주로 디버깅 용도로 사용됩니다. toString() 메서드를 자동으로 생성합니다. 객체의 문자열 표현을 반환합니다.
예제:
import lombok.ToString;
@ToString
public class Person {
private String name;
private int age;
}
@AllArgsConstructor / @NoArgsConstructor
모든 필드를 인자로 받는 생성자와 파라미터가 없는 기본 생성자를 자동으로 생성합니다. 주로 객체를 생성하고 초기화하는 데 사용됩니다.
예제:
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private int age;
}
@Data
@Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한번에 적용하는 대표적인 Annotation입니다.
예제:
import lombok.Data;
@Data
public class Person {
private String name;
private int age;
}
@Builder
빌더 패턴을 자동으로 생성하여 객체를 생성할 때 더욱 편리하게 만들어줍니다. 복잡한 객체를 생성하는 코드를 간결하게 만듭니다.
예제:
import lombok.Builder;
@Builder
public class Person {
private String name;
private int age;
}
위의 Lombok Annotation들은 코드를 간결하게 작성할 수 있도록 도와줍니다. 반복적이고 장황한 코드를 줄여 개발 생산성을 향상시킵니다.
'프로그래밍' 카테고리의 다른 글
HTTP와 HTTPS의 차이: 웹 보안의 필수 요소 (0) | 2024.03.12 |
---|---|
SSL(Secure Sockets Layer) 이해하기: 데이터 보안의 핵심 (0) | 2024.03.12 |
[Java/자바] Spring @SpringBootTest: 스프링 부트 애플리케이션 통합 테스트 (0) | 2024.03.12 |
[Java/자바] Spring @ResponseBody: HTTP 응답 데이터 직접 제어하기 (0) | 2024.03.12 |
[Java/자바] Spring @ModelAttribute: 메서드 파라미터와 모델 속성의 바인딩 (0) | 2024.03.12 |