티스토리 뷰

Spring Boot

롬복(Lombock) 어노테이션

LuxuryCoding 2021. 5. 6. 17:07
728x90

 SpringBoot 프로젝트에 적용하면서 알고 넘어가야 하는 Lombock 어노테이션에 대해 확실히 정리를 하려고 글을 작성해요

롬복(Lombock) 왜 쓸까?

롬복에 대해 정리를 하자면 Java에서 반복적으로 작성되는 equals, hashCode, toString , getter/setter 메서드 ex) getName , setName 등 만들어주게 되는데 생성자 관련 코드를 간결하게 만들어주는 라이브러리!!! , 사실 인텔리 제이나 이클립스 등 IDE를 사용하면 getter, setter 메서드를 쉽게 구현할 수 있다. (자동 생성이 가능하다는 의미) 이래서 필요성을 못 느꼈었다 더 좋다 롬복이... 가장 큰 이유는 유지 보수 시에 큰 도움이 된다. 필요한 클래스의 필드에 따라 일일이 getter setter를 생성하지 않으니 가독성이 훨씬 좋아지는 거 같다

getter/setter 작성

public class Product {
    private String productName;
    private int price;

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
}

롬복 @Getter @Setter 사용

@Getter
@Setter
public class Product {
    private String productName;
    private int price;
}
  • 확실히 코드 가독성이 좋아지죠?

@NoArgsConstructor @AllArgsConstructor

  • @NoArgsConstructor : 기본 생성자를 자동 생성
  • @AllArgsContructor : 필드 값을 모두 포함한 생성자를 자동 생성해준다.

롬복을 사용하지 않고 기본생성자와, 모든 필드를 받는 생성자를 작성한 코드

@NoArgsConstructor(access = AccessLevel.PROTECTED) 
@AllArgsContructor
public class Product {
    private String productName;
    private int productPrice;

    public Product(String productName, int productPrice) {
        this.productName = productName;
        this.productPrice = productPrice;
    }
}

👍 롬복에 @NoArgsConstructor @AllArgsConstructor 사용 코드

 

  • Spring Boot 프로젝트를 진행하다 보면 @NoArgsConstructor(access = AccessLevel.PROTECTED) 어노테이션 안에 access~라는 코드가 들어간 걸 볼 수 있다 이건 왜 쓸까? Entity 나 Dto를 사용하게 되면 자주 쓰이는데 기본 생성자의 접근 제어를 protected로 설정 해 논다는 뜻이다. 설정을 하면 무분별한 객체 생성에 대해 한번 더 체크할 수 있어서 사용한다

👍 Lombock @Anotation

  • @RequiredArgsContructor 생성자를 자동 생성하지만, 필드 명의 위에 @NonNull로 표기된 경우만 생성자의 매개변수로 받는다
  • @Data : 어노테이션들의 조합 @Data를 쓰게 되면 @Getter @Setter @ToString @EqualsAndHashCode @RequiredArgsConstructor를 쓴 것과 마찬가지이다 이 어노테이션은 웬만하면 쓰지 말자 스스로 필요한 걸 명시해주는 게 좋아요 @Data를 쓰게 되면 변하기 쉬운 (Mutable) 데이터 클래스를 만들어준다. 

'Spring Boot' 카테고리의 다른 글

Spring Boot + Redis 적용  (2) 2022.03.22
JUnit5 Test Code 작성  (0) 2021.12.17
Spring Boot 프로젝트 생성하기  (0) 2021.06.27
Vue.js ,Springboot 로 구현하는 다중 파일 업로드 심화  (0) 2021.05.04
Spring boot File upload  (1) 2021.03.09
댓글
최근에 달린 댓글
최근에 올라온 글
Total
Today
Yesterday
«   2025/09   »
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