스프링 부트(Spring Boot) 프레임워크를 사용하다보면 데이터베이스를 접근해서 가져와 Class에 값을 담게 됩니다. 그래서 이 클래스에는 getter, setter를 포함해서 toString과 같은 메소드들이 포함되어 있습니다. 이러한 변수들은 모두 private으로 접근제한이 걸려있기 때문이죠.
이때 변수가 추가된다고 하면 각각의 변수에 getter와 setter를 만들어 줘야 하고 또 필요에 따라 생성자에 추가되거나 확인하기 위한 toString 메소드에도 추가되어야 합니다.
이럴때 편하게 사용할 수 있는 라이브러리가 바로 롬복(Lombok) 입니다. 그럼 Lombok은 어떠한 기능들을 가지고 있는지 알아보도록 하겠습니다.
Lombok 어노테이션 @Getter @Setter
Lombok 라이브러리에서 가장 많이 사용하는 어노테이션이라 생각됩니다. 이 @Getter와 @Setter는 자동으로 getter메소드와 setter메소드를 생성해 주는 어노테이션입니다.
예를 들어서 String name; 이라는 변수를 생성했다면 getName(), setName() 함수를 자동으로 생성해주는 어노테이션입니다. 특정 필드에 접근자들을 자동으로 생성해주다보니 개발자가 하나씩 생성해줄 필요가 없는 것이죠. 사용법은 아래와 같습니다.
@Getter
@Setter
public class User {
private String name;
private int age;
}
눈에 보이기에는 변수 name과 age만 있는 것으로 보이지만 Outline(eclipse) 또는 Structure(Intellij)를 열어보시면 getter메소드와 setter메소드들이 생성되어 있는 모습을 보실 수 있습니다.
Lombok 어노테이션 @NoArgsContructor @AllArgsContructor
Lombok 라이브러리에서 많이 사용하는 어노테이션중 또 하나는 바로 생성자 관련 어노테이션입니다. Class를 Instance화할 때, 생성자를 이용해서 값을 초기화 해 줄 수 있죠. 이때 빈 생성자 혹은 모든 Arguments를 넣어서 초기화 해주는 생성자를 만들 수 있습니다.
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private int age;
}
위와같이 사용하면 Args가 없는 생성자와 Args가 전체인 생성자가 생성됩니다. 따라서 User라는 클래스를 이용해서 객체를 생성할때에는 다음과 같이 사용할 수 있습니다.
User userOne = new User();
User userTwo = new User("IronMan", 40);
이 역시 유용하게 쓰이는 어노테이션입니다.
Lombok 이거 하나면 된다. @Data
무조건은 아니지만 @Getter, @Setter, @ToString, @EqulasAndHashCode, @RequiredArgsConstructor를 모두 포함하는 어노테이션이 바로 @Data입니다. 사용법은 아래와 같습니다.
@Data
public class User {
private String name;
private int age;
}
어노테이션 @Data는 자주사용하는 대부분의 메소드들을 자동으로 생성해주기 때문에 이 역시 필요에따라 매우 유용하게 사용되는 어노테이션입니다.
스프링 프레이워크들은 대부분 어노테이션의 역할이 매우 큽니다. 길게 직접 구현해야 하는 기능들이 어노테이션을 통해서 자동으로 생성되고 관리되어지기 때문입니다. 그리고 이것이 Java라는 언어의 가장 큰 특징이 아닐까 생각됩니다.
지금까지 스프링 부트(Spring Boot)에서 사용하면 좋을 라이브러리중 하나인 Lombok에 대해서 알아보았습니다. 이상입니다.
Lombok 사이트 : https://projectlombok.org/
'쿤즈 Dev > Spring Boot' 카테고리의 다른 글
[Spring Boot] Mybatis 변수 사용시 #{ } 와 ${ } 의 차이 (0) | 2021.05.05 |
---|---|
[Spring Boot] Mybatis 에서 조건문 사용시 null 과 zero size string 구분 방법 (0) | 2021.03.16 |
[Spring Boot] Mybatis 동적쿼리 LIKE 사용 방법 (0) | 2021.03.12 |
[Spring Boot] 정적소스 수정 후 서버 재시작 없이 적용 방법 (0) | 2021.03.09 |
[Spring Boot] Mybatis 에서 SQL 조건문 사용 방법 (0) | 2021.03.08 |
댓글