[TIL] Java enum, Lombok(롬북)

𝙃𝙖𝙞𝙡𝙚𝙮·2021년 11월 17일
0

TIL

목록 보기
8/15
post-thumbnail

1. Java enum과 활용

Enumeration의 앞 글자로 열거라는 의미를 갖고있다.
기존에는 인터페이스나 클래스 내에서 상수를 선언함으로써 상수를 관리 하였는데 클래스 내에서 선언하는 부분은 네이밍이 겹칠 수 있고 불 필요하게 상수가 많아지는 단점이 있다.
인터페이스로 관리하는 경우 이런 부분은 줄어들지만 여전히 IDE의 지원을 적극적으로 받을 수 없고 타입 안정성이 떨어지는 단점을 가지고 있었다. 이를 보완하며 나온 것이 Enum이다.

위 정수 열거 패턴을 enum으로 변경하면 아래와 같다. (정말 깔끔하다!!)

public enum Season {
    SPRING, SUMMER, AUTUMN, WINTER
}
 
// 이하 위 코드로 인해 생략가능해짐
// public class Season {
//     static final Season SPRING = new Season("SPRING");
//     static final Season SUMMER = new Season("SUMMER");
//     static final Season AUTUMN = new Season("AUTUMN");
//     static final Season WINTER = new Season("WINTER");
//
//     private String name;
//
//     private Season(String name) {
//         this.name = name;
//     }
// }
  1. 타입 비교가 가능해 타입 세이프한 코드를 짤 수 있다. 더불어 IDE에서 타입 체크를 해주기 때문에 더욱 더 좋은 코드를 만들 수 있다. 특히, 리팩토링시 변경 범위가 최소화 됩니다. 내용의 추가가 필요하더라도, Enum 코드외에 수정할 필요가 없다.
  2. 깔끔한 소스 작성을 할 수 있어 소스 유지보수하기가 쉽다.
  3. 정수 열거 패턴의 단점들을 모두 보완해서 사용할 수 있다.

참고
https://jojoldu.tistory.com/122
https://effortguy.tistory.com/23
https://techblog.woowahan.com/2527/
https://velog.io/@kyle/%EC%9E%90%EB%B0%94-Enum-%EA%B8%B0%EB%B3%B8-%EB%B0%8F-%ED%99%9C%EC%9A%A9

2. Lombok(롬북)

롬복(Lombok)은 Java에서 반복적으로 작성되는 getters/setters나 equals, hashCode, toString 또는 생성자 관련 코드들을 간결하게 만들어주는 라이브러리다. 사실 자바를 지원하는 웬만한 IDE가 이런 코드들의 자동 생성을 지원하고 있어서 필요성을 못 느낄수도 있으나, 롬복(Lombok)은 유지 보수시에 큰 도움이 된다. 유지보수시에 클래스의 필드의 갯수와 비례해서 길어지는 getters/setters가 없으니 코드가독성이 올라가고, 필드값을 추가삭제 할 때도 getters/setters에 대한 신경을 쓰지 않아도 된다.

@AllArgsConstructor

@AllArgsConstructor는 필드값을 모두 포함한 생성자를 자동 생성

@AllArgsConstructor
public enum ClassName {
	name;
    
    @getter
    int type;
}

@NoArgsConstructor

기본생성자 자동 생성

@NoArgsConstructor
@AllArgsConstructor
public class Book {
    private String name;
    private int price;
    private String releaseDate;
}

@Getter, @Setter, @toString

참고
https://siyoon210.tistory.com/24

profile
ෆ 𝓋𝒾𝓈 𝓉𝒶 𝓋𝒾𝑒 ෆ

0개의 댓글