Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Docker
- CICD
- controller
- spring
- git
- 시계열디비
- 무중단배포
- Java8
- 완전탐색알고리즘
- 프로그래머스
- 빌드스크립트
- API
- 자바
- 알고리즘
- 빌드자동화도구
- 롬북
- 정보처리기사
- PULL방식아키텍쳐
- 서버
- 롬복사용시주의할점
- 롬복
- 정처기
- 정보처리기사필기
- 정처기공부
- 생성자
- java
- Groovy문법
- 어노테이션
- aws
- 정처기필기
Archives
- Today
- Total
우당탕탕 개발일지
[Lombok] @Data 사용법 본문
@Data 어노테이션에 포함된 기능은
@Getter / @Setter / @ToString / @EqualsAndHashCode / @RequiredArgsConstructor 이다.
많은 기능을 포함한 만큼 @Data 어노테이션 하나로 코드를 대폭 줄일 수 있다.
하지만, @Data를 사용할 때 몇가지 주의할 점이 있다.
@Data 어노테이션은
callSuper / includeFieldName / exclude와 같은 파라미터와는 같이 사용할 수 없다.
해당 파라미터를 이용할 경우엔 개별 어노테이션을 따로 다 명시해주어야한다.
/**
* @see Getter
* @see Setter
* @see RequiredArgsConstructor
* @see ToString
* @see EqualsAndHashCode
* @see lombok.Value
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Data {
/**
* If you specify a static constructor name, then the generated constructor will be private, and
* instead a static factory method is created that other classes can use to create instances.
* We suggest the name: "of", like so:
*
* <pre>
* public @Data(staticConstructor = "of") class Point { final int x, y; }
* </pre>
*
* Default: No static constructor, instead the normal constructor is public.
*
* @return Name of static 'constructor' method to generate (blank = generate a normal constructor).
*/
String staticConstructor() default "";
}
기존 프로젝트에선 @Data 어노테이션을 많이 사용하였는데 리팩토링하여 꼭 필요한 어노테이션만 사용하기로 했다.
📌 롬복은 코드의 간결성을 가져다 주는 만큼 사용하는 데 주의할 점이 많다.
https://kwonnam.pe.kr/wiki/java/lombok/pitfall#google_vignette
관련 내용으로 참고할 블로그이다.
'개발' 카테고리의 다른 글
[Lombok] @AllArgsConstructor / @NoArgsConstructor (0) | 2023.04.27 |
---|---|
Gradle(그래이들) 개념 및 특징 (0) | 2023.03.29 |
좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2022.12.15 |
[Lombok] RequiredArgsConstructor 어노테이션이란? (0) | 2022.12.06 |
[Lombok] RequiredArgsConstructor 어노테이션이란? (0) | 2022.11.28 |