728x90
📌 왜 롬복(Lombok)을 쓰는가?
모델 Class(VO, DTO, Entity) 를 만들 때, 생성자, 접근자, 설정자, toString() 등 매번 만들어야 하는 번거로움이 있다.
개발 초기에는 모르겠지만 하지만 잦은 수정과 필드명 변경 추가에 따라 관리가 쉽지 않아질 수 있다.
그래서 롬복(Lombok)은 자바 클래스를 만들때 자주 사용되는 getter/setter나 toString 등의 코드를 애너테이션으로 대체해서 선언하고 java 코드를 컴파일 할 때 그에 맞는 코드를 생성해주는 것이다.
기존 방식의 문제점
- 멤버변수를 제어하기 위해 모델 객체마다 반복적으로 메소드들을 생성해야 한다.
- 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 |