안녕하세요 여러분 베하입니다!
훌쩍 겨울이 다가왔네요! 다들 올해는 잘 보내고 계신가요?
오늘 이야기 할 주제는 스프링 부트에서 자주 사용되는 Lombok 어노테이션입니다!
스프링 부트와 롬복(Lombok)은 자바 기반의 개발을 더 간편하고 효율적으로 만들어주는 강력한 기술 스택 중 하나입니다. 특히 롬복은 번거로운 코드를 자동으로 생성해주는 어노테이션들을 제공하여 개발자의 생산성을 높여줍니다. 이제 본격적으로 들어가볼까요?
롬복(Lombok)이란?
롬복은 자바에서의 반복적이고 상투적인 코드 작성을 줄여주기 위한 프로젝트입니다. 롬복은 어노테이션을 사용하여 Getter, Setter, toString 등의 메서드를 자동으로 생성해줍니다. 이를 통해 코드의 가독성을 향상시키고, 수정이 필요할 때마다 반복되는 작업을 최소화할 수 있습니다. 개발자에게 아주 편리한 기능이 됩니다.
롬복 어노테이션 종류
1. @Data
@Data 어노테이션은 Getter, Setter, equals, hashCode, 그리고 toString을 한 번에 추가해줍니다. 이는 보통 POJO(Plain Old Java Object) 클래스에서 자주 사용됩니다.
@Data
public class Person {
private String name;
private int age;
}
2. @Getter / @Setter
@Getter과 @Setter 어노테이션은 각각 Getter와 Setter를 생성해줍니다. 필요한 경우에는 특정 필드에 대해서만 적용할 수 있습니다.
@Getter
@Setter
public class Book {
private String title;
private String author;
}
위와 같이 어노테이션을 붙여주었다면 아래와 같이 자동으로 생성된 접근자와 설정자를 사용할 수 있답니다.
testBook.setTitle("2023년 10월에 일어난 일");
String author = testBook.getAuthor();
3. @NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor
@NoArgsConstructor는 파라미터가 없는 기본 생성자를 생성하며, @AllArgsConstructor는 모든 필드를 파라미터로 받는 생성자를 생성합니다. @RequiredArgsConstructor는 final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 생성합니다.
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class Car {
private String make;
private String model;
@NonNull
private String user;
}
Car car = new Car();
Car car2 = new Car("user1");
Car car3 = new Car("2023-10", "현대", "user1");
4. @Builder
@Builder 어노테이션은 빌더 패턴을 적용하여 객체를 생성할 수 있게 합니다. 이는 가독성과 코드 작성 편의성을 높여줍니다.
@Builder
public class Computer {
private String brand;
private String model;
}
롬복의 장점
- 코드 간결성: 롬복을 사용하면 반복되는 코드를 줄일 수 있어 가독성이 향상되고, 코드 작성 시간을 단축시킬 수 있습니다.
- 유지보수 용이성: 롬복이 자동으로 생성하는 코드는 변경이 필요한 경우 롬복 어노테이션만 수정하면 되므로 유지보수가 용이합니다.
- 가독성 향상: 롬복을 사용하면 코드 중복이 줄어들어 가독성이 향상됩니다.
- 불필요한 Getter/Setter 작성 감소: 롬복의 @Data 어노테이션을 사용하면 Getter와 Setter를 일일이 작성하지 않아도 됩니다.
마무리
스프링 부트와 롬복은 자바 개발을 보다 효율적이고 간편하게 만들어주는 도구입니다. 롬복의 각종 어노테이션을 통해 불필요한 코드를 줄이고, 가독성을 향상시키며, 개발 생산성을 높일 수 있습니다. 특히, 스프링 부트 프로젝트에서 롬복을 함께 사용하면 좀 더 깔끔하고 간결한 코드를 작성할 수 있다는 장점이 있습니다!
이렇게 Lombok 어노테이션에 대해 이야기를 해보았는데요, 이미 사용하고 계신 분들은 개념을 다시 잡고, 처음 보시는 분들은 새롭게 유용한 코드를 만들어봅시다!
그럼 다음 시간에 만나요 안녕!!
'Programming' 카테고리의 다른 글
Go 언어에서의 포인터 활용: 메모리 관리와 데이터 공유 (0) | 2023.10.27 |
---|---|
안드로이드 프레임 워크에 대하여 (1) | 2023.10.27 |
[Django/React] 장고와 리액트 연동 (1) (0) | 2023.10.20 |
[Java] 프록시 패턴(Proxy Pattern)이란? (0) | 2023.10.13 |
Understanding Interfaces in Go (1) | 2023.10.13 |
댓글