728x90


📌   왜 롬복(Lombok)을 쓰는가?

모델 Class(VO, DTO, Entity) 를 만들 때, 생성자, 접근자, 설정자, toString() 등 매번 만들어야 하는 번거로움이 있다.

개발 초기에는 모르겠지만 하지만 잦은 수정과 필드명 변경 추가에 따라 관리가 쉽지 않아질 수 있다.

그래서 롬복(Lombok)은 자바 클래스를 만들때 자주 사용되는 getter/setter나 toString 등의 코드를 애너테이션으로 대체해서 선언하고 java 코드를 컴파일 할 때 그에 맞는 코드를 생성해주는 것이다.

 

 

 

 

 

 

기존 방식의 문제점

  1. 멤버변수를 제어하기 위해 모델 객체마다 반복적으로 메소드들을 생성해야 한다.
  2. IDE에서 generate를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야 한다.

 

 

사용 파일

 

 

 

dependencies(의존)에 롬복을 설치해 추가해준다.

 

 

 


 

 

 

📖  많이 사용하는 Annotation

 

 

@Getter, @Setter

만약 다음과 같은 필드명이 있다고 하자

@Getter 
@Setter 
public class Store extends Common {

    private String companyName; // 상호명 
    private String industryTypeCode; // 업종코드 
    private String businessCodeName; // 업태명   
    private String industryName; // 업종명(종목명) 
    private String telephone; // 전화번호 
    private String regionMoneyName; // 사용가능한 지역화폐 명 
    private boolean isBmoneyPossible; // 지류형 지역화폐 사용가능 여부 
    private boolean isCardPossible; // 카드형 지역화폐 사용가능 여부 
    private boolean isMobilePossible; // 모바일형 지역화폐 사용가능 여부 
    private String lotnoAddr; // 소재지 지번주소 
    private String roadAddr; // 소재지 도로명주소 
    private String zipCode; // 우편번호 
    private double longitude; // 경도 
    private double latitude; // 위도 
    private String sigunCode; // 시군 코드 
    private String sigunName; // 시군 이름 

}

이때 롬복 @Getter, @Setter를 이용하여 코드다이어트를 통해 가독성과 편의성을 높여줄 수 있다.

게터와 세터는 클래스 위에 선언하면 전체에 적용된다.

 

 

 

 

생성자

클래스 위에 쓴다.

  • @AllArgsConstructor : 모든 변수로 생성자 생성
  • @RequiredArgsConstructor : final 키워드나 @NonNull 이 된 멤버 변수로만 생성자 생성
  • @NoArgsConstructor : 기본 생성자 생성
@AllArgsConstructor
public class PatchUserReq {
    private String name;
    private int age;
}
@RequiredArgsConstructor
public class HelloWorld{
    // 필드 값을 생성자로 받고자 하는 경우 반드시 final 키워드를 붙여야 생성자에 포함된다.
    private final String name;
    private final int age;
}
@NoArgsConstructor
public class HelloWorld{
    private String name;
    private int age;
}

 

 

 

 

@ToString()

@ToString을 사용한다. @ToString(exclude = "필드명")처럼 특정 필드를 제외시키는 것도 가능하다.

@ToString
public class HelloWorld{
    private String name;
    private int age;
}

 

 

 

@EqualsAndHashCode

객체 비교 등의 용도로 사용되는 equals(), hashCode() 메소드의 코드를 생성해준다.

 

 

 

@Data

위에 있는 @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString 같은걸 한 번에 해준다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(위 내용은 홍팍님의 스프링 강의를 보고 공부한 내용을 정리한 글입니다)

 

 

 

 

 

 

'Spring' 카테고리의 다른 글

간단한 API 작성  (0) 2021.07.21
JPA 레포지토리, DB에 저장하기  (0) 2021.07.20
폼 (form) 데이터 주고 받기  (0) 2021.07.16
뷰 레이아웃  (0) 2021.07.16
뷰 템플릿과 MVC 패턴  (0) 2021.07.15
복사했습니다!